diff options
author | Jakob Odersky <jodersky@gmail.com> | 2011-04-03 20:50:45 +0000 |
---|---|---|
committer | Jakob Odersky <jodersky@gmail.com> | 2011-04-03 20:50:45 +0000 |
commit | 199fd6d577b914d083db9dd845e0b7f94960eac3 (patch) | |
tree | 157a3c0edeac68f00f5ce048fba237061d02aa53 /src/test | |
parent | b0f200e3b07f3963d609d536e6abdde24b96ec21 (diff) | |
download | vhc-199fd6d577b914d083db9dd845e0b7f94960eac3.tar.gz vhc-199fd6d577b914d083db9dd845e0b7f94960eac3.tar.bz2 vhc-199fd6d577b914d083db9dd845e0b7f94960eac3.zip |
Essais graphiques, modifications du VisitorPattern.
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/ElementTest.cc | 6 | ||||
-rw-r--r-- | src/test/VisitorTest.cc | 64 |
2 files changed, 70 insertions, 0 deletions
diff --git a/src/test/ElementTest.cc b/src/test/ElementTest.cc index e4e82c9..a17e0bb 100644 --- a/src/test/ElementTest.cc +++ b/src/test/ElementTest.cc @@ -8,6 +8,7 @@ #include <iostream> #include <assert.h> #include "Dipole.h" +#include "FODO.h" #include "Vector3D.h" using namespace std; @@ -19,6 +20,11 @@ int main() { Dipole* d = new Dipole(Vector3D(0,0,0), Vector3D(1,2,0), 0.2, 0.2, Vector3D::Null, NULL); cout << *d << endl; delete d; d = NULL; + + FODO* fodo = new FODO(Vector3D(0,0,0), Vector3D(1, 0,0), 0.2, 0.2, 3); + 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; diff --git a/src/test/VisitorTest.cc b/src/test/VisitorTest.cc new file mode 100644 index 0000000..8dcf4c4 --- /dev/null +++ b/src/test/VisitorTest.cc @@ -0,0 +1,64 @@ +/* + * VisitorTest.cc + * + * Created on: Apr 3, 2011 + * Author: jakob + */ + +#include <iostream> +#include <vector> +#include "Element.h" +#include "CompositeElement.h" +#include "StraightElement.h" +#include "CurvedElement.h" +#include "Quadrupole.h" +#include "Dipole.h" +#include "FODO.h" +#include "ElementVisitor.h" +#include "Vector3D.h" +using namespace std; +using namespace vhc; + +class PrintVisitor: public ElementVisitor { +public: + + virtual void visit(StraightElement* straight) { + cout << "A straight element." << endl; + } + + virtual void visit(Quadrupole* quadrupole) { + cout << "A quadrupole." << endl; + } + + virtual void visit(CurvedElement* curved) { + cout << "A curved element." << endl; + } + + virtual void visit(Dipole* dipole) { + cout << "A dipole." << endl; + } + + +}; + +int main() { + PrintVisitor pv; + Dipole* dp = new Dipole (Vector3D::Null, Vector3D::i, 0.2, 0.5); + Quadrupole* qp = new Quadrupole(Vector3D::Null, Vector3D::i, 0.2, 2); + FODO* fodo = new FODO(Vector3D::Null, Vector3D::i, 0.2, 0.25, 2.0); + vector<Element*> elements; + elements.push_back(dp); + elements.push_back(qp); + elements.push_back(fodo); + + for (int i = 0; i < elements.size(); ++i) { + elements[i]->accept(pv); + } + + for (int i = 0; i < elements.size(); ++i) { + delete elements[i]; + elements[i] = NULL; + } + + return 0; +} |