summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorJakob Odersky <jodersky@gmail.com>2011-04-03 20:50:45 +0000
committerJakob Odersky <jodersky@gmail.com>2011-04-03 20:50:45 +0000
commit199fd6d577b914d083db9dd845e0b7f94960eac3 (patch)
tree157a3c0edeac68f00f5ce048fba237061d02aa53 /src/test
parentb0f200e3b07f3963d609d536e6abdde24b96ec21 (diff)
downloadvhc-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.cc6
-rw-r--r--src/test/VisitorTest.cc64
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;
+}