diff options
Diffstat (limited to 'src/test/ElementTest.cc')
-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; } |