diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-05-01 14:07:41 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-05-01 14:07:41 +0000 |
commit | 2ade21c3d97189d26f9dc18e2e805a0b05a4eaaf (patch) | |
tree | de48758990e96b1fec8a6e097656bb0b59dfa4fc /src/test | |
parent | 9b765d14760bddc1caac167e938670031d70a864 (diff) | |
download | vhc-2ade21c3d97189d26f9dc18e2e805a0b05a4eaaf.tar.gz vhc-2ade21c3d97189d26f9dc18e2e805a0b05a4eaaf.tar.bz2 vhc-2ade21c3d97189d26f9dc18e2e805a0b05a4eaaf.zip |
Changements importants dans l'accelerateur. Nous travaillons maintenant avec une list au lieu d'un vector. Ceci pour pouvoir supprimer une particule a temps constant qui aurait heurte le bord d'un element. On ne peut donc plus acceder a un element quelconque de la liste mais il faut l'iterer!
Mais comme, de toutes facons, on ne fait que d'iterer sur une liste lors d'une simulation deterministe ceci convient. Peut-etre il faudra adapter cette conception pour une simulation monte-carlo.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/ElementTest.cc | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/src/test/ElementTest.cc b/src/test/ElementTest.cc index a17e0bb..45e0041 100644 --- a/src/test/ElementTest.cc +++ b/src/test/ElementTest.cc @@ -7,8 +7,11 @@ #include <iostream> #include <assert.h> +#include "exceptions.h" +#include "CurvedElement.h" #include "Dipole.h" #include "FODO.h" +#include "Quadrupole.h" #include "Vector3D.h" using namespace std; @@ -25,22 +28,38 @@ int main() { cout << *fodo << endl; delete fodo; fodo = NULL; -/* - CurvedElement* c = new CurvedElement(Vector3D(0,1,0), Vector3D(1,0,0), 0.2, 1); - cout << *c << endl; - delete c; c = NULL; - //test d'initialisation illegale bool caught = false; try { - CurvedElement(Vector3D(0,0,0), Vector3D(1,0,0), 0.2, 1.0 / 0.4); + Dipole(Vector3D(0,0,0), Vector3D(1,0,0), 0.2, 1.0 / 0.4, Vector3D(1,2,3)); // ^ le rayon de courbure est trop petit } catch (Exception& e) { caught = true; }; assert(caught); -*/ + Quadrupole* fq = new Quadrupole(Vector3D(0,0,0), Vector3D(1, 0, 0), 0.1, 1.2); + + //containement test + assert(fq->isBefore(Vector3D(-0.1,0,0))); + assert(fq->isBefore(Vector3D(-0.1,0.2,0))); + assert(fq->isBefore(Vector3D(-0.1,3,5))); + + assert(fq->isBeside(Vector3D(0.1,0.2,0))); + assert(fq->isBeside(Vector3D(0.3,0,3))); + assert(fq->isBeside(Vector3D(0.5,-2,-4))); + + assert(fq->isAfter(Vector3D(1.1,0,0))); + assert(fq->isAfter(Vector3D(1.3,0.3,-0.2))); + assert(fq->isAfter(Vector3D(1.001,-0.04,0.02))); + + assert(fq->contains(Vector3D(0.5,0,0))); + assert(fq->contains(Vector3D(0.99,0.1, 0))); + assert(fq->contains(Vector3D(0.1,0.02,-0.02))); + + delete fq; fq = NULL; + + return 0; } |