trf++/test/mag_field
diff -N AbstractMagneticField_t.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ AbstractMagneticField_t.cpp 8 Aug 2011 19:02:38 -0000 1.1
@@ -0,0 +1,10 @@
+
+#include "mag_field/AbstractMagneticField.hpp"
+
+// a pure virtual class, how can I test?
+
+int main(){
+
+ return 0;
+
+}
trf++/test/mag_field
diff -N ConstantMagneticField_t.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ ConstantMagneticField_t.cpp 8 Aug 2011 19:02:38 -0000 1.1
@@ -0,0 +1,19 @@
+
+#include "mag_field/ConstantMagneticField.hpp"
+
+using std::cout;
+using std::endl;
+
+int main(){
+
+ ConstantMagneticField cmf1(1.111);
+
+ cout<<cmf1.set_magnitude(2.222)<<endl;
+ cout<<cmf1.field(SpacePoint())<<endl;
+ cout<<cmf1.fieldgradient(SpacePoint())<<endl;
+ cout<<cmf1.fieldvalid(SpacePoint())<<endl;
+
+ cout<<cmf1<<endl;
+
+ return 0;
+}
trf++/test/mag_field
diff -N MagFieldMgr_t.cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ MagFieldMgr_t.cpp 8 Aug 2011 19:02:38 -0000 1.1
@@ -0,0 +1,84 @@
+#include "mag_field/MagFieldMgr.hpp"
+#include "mag_field/ConstantMagneticField.hpp"
+#include <iostream>
+#include <cassert>
+
+using std::cout;
+using std::endl;
+
+int main() {
+
+ cout << "Begin Testing MagFieldMgr" << endl;
+
+ MagFieldMgr* mgr = MagFieldMgr::get_instance();
+
+ assert(mgr != 0 );
+
+ MagFieldMgr* mgr1 = MagFieldMgr::get_instance();
+
+ assert( mgr == mgr1 );
+
+ assert( !mgr->isFieldValid() );
+
+ ConstantMagneticField* pfield= new ConstantMagneticField(2.);
+
+ assert(mgr->counter() == 0 );
+
+ mgr->reset_field(pfield);
+
+ assert( mgr->counter() == 1 );
+ assert( mgr->isFieldValid() );
+
+ AbstractMagneticField** pptr = mgr->get_field();
+
+ CartesianPoint x1(0.,0.,0.);
+ CartesianPoint y1(0.,0.,0.);
+
+ const SpacePointVector& fx1 = (*pptr)->field(x1);
+ const SpacePointVector& fy1 = (*pptr)->field(y1);
+
+ assert( fx1 == fy1 );
+
+ assert( fx1.v_z() == 2. );
+
+ // create a new field...
+ pfield= new ConstantMagneticField(1.);
+
+ // send it to the manager...
+ mgr->reset_field(pfield);
+
+ assert(mgr->counter() == 2 );
+
+ // the pointer should have been automatically updated...
+ const SpacePointVector& fx2 = (*pptr)->field(x1);
+
+ assert( fx1 != fx2 );
+
+ assert( fx2.v_z() == 1. );
+
+
+ AbstractMagneticField** pptr1 = mgr->get_field();
+ AbstractMagneticField** pptr2 = mgr->get_field();
+ AbstractMagneticField** pptr3 = pptr2;
+
+
+
+ assert( (*pptr1)->field(x1).v_z() == 1. );
+ assert( (*pptr2)->field(x1).v_z() == 1. );
+ assert( (*pptr3)->field(x1).v_z() == 1. );
+
+ mgr1->reset_field(new ConstantMagneticField(3.));
+
+
+
+
+
+ assert( (*pptr)->field(x1).v_z() == 3. );
+ assert( (*pptr1)->field(x1).v_z() == 3. );
+ assert( (*pptr2)->field(x1).v_z() == 3. );
+ assert( (*pptr3)->field(x1).v_z() == 3. );
+ assert( mgr1->counter() == 3 );
+
+ cout << "done with tests" << endl;
+
+}