def testconvert_toomany_detector(self): # Base options ops = Options(name="Test") ops.detectors['trajectories'] = TrajectoryDetector(False) ops.detectors['trajectories2'] = TrajectoryDetector(True) ops.limits.add(ShowersLimit(100)) # Convert opss = self.converter.convert(ops) # Test self.assertEqual(2, len(opss))
def testconvert_nolimit(self): # Base options ops = Options(name="Test") ops.detectors['trajectories'] = TrajectoryDetector(False) # Convert opss = self.converter.convert(ops) # Test self.assertEqual(0, len(opss))
def testexport(self): # Create ops = Options(name='test1') ops.beam.energy_eV = 30e3 ops.detectors['trajectories'] = TrajectoryDetector(False) ops.limits.add(ShowersLimit(100)) # Export opss = self.c.convert(ops) self.e.export(opss[0], self.tmpdir)
def setUp(self): TestCase.setUp(self) self.outputdir = tempfile.mkdtemp() self.workdir = tempfile.mkdtemp() ops = Options('test') ops.detectors['traj'] = TrajectoryDetector(False) ops.limits.add(ShowersLimit(1)) self.ops = Converter().convert(ops)[0] self.worker = Worker(program)
def testconvert_pencilbeam(self): # Base options ops = Options(name="Test") ops.beam = PencilBeam(1234) ops.limits.add(ShowersLimit(100)) ops.detectors['trajectories'] = TrajectoryDetector(False) # Convert opss = self.converter.convert(ops) # Test self.assertEqual(1, len(opss)) self.assertAlmostEqual(1234, opss[0].beam.energy_eV, 4) self.assertAlmostEqual(0.0, opss[0].beam.diameter_m, 4) self.assertEqual(5, len(opss[0].models))
def test_detector_trajectory(self): # Create ops = Options(name='test1') ops.beam.energy_eV = 20e3 ops.detectors['trajectories'] = TrajectoryDetector(50) # Import resultcontainer = self.i.import_(ops, self.testdata) # Test result = resultcontainer['trajectories'] self.assertEqual(559, len(result)) trajectory = list(result)[0] self.assertTrue(trajectory.is_primary()) self.assertFalse(trajectory.is_secondary()) self.assertIs(ELECTRON, trajectory.particle) self.assertIs(NO_COLLISION, trajectory.collision) self.assertEqual(EXIT_STATE_ABSORBED, trajectory.exit_state) self.assertEqual(577, len(trajectory.interactions)) self.assertEqual(5, trajectory.interactions.shape[1])
def test_detector_trajectory(self): # Create ops = Options(name='test1') ops.beam.energy_eV = 20e3 ops.detectors['trajectories'] = TrajectoryDetector(50) # Import filepath = os.path.join(self.testdata, 'gold_15kev.cas') results = self.i.import_cas(ops, filepath) # Test result = results['trajectories'] self.assertEqual(14689, len(result)) trajectory = list(result)[0] self.assertTrue(trajectory.is_primary()) self.assertFalse(trajectory.is_secondary()) self.assertIs(ELECTRON, trajectory.particle) self.assertIs(NO_COLLISION, trajectory.collision) self.assertEqual(EXIT_STATE_ABSORBED, trajectory.exit_state) self.assertEqual(851, len(trajectory.interactions)) self.assertEqual(5, trajectory.interactions.shape[1])
def testconvert_pencilbeam(self): # Base options ops = Options(name="Test") ops.beam = PencilBeam(1234) ops.limits.add(ShowersLimit(100)) ops.detectors['trajectories'] = TrajectoryDetector(False) # Convert with warnings.catch_warnings(record=True) as ws: opss = self.converter.convert(ops) # 7 warning: # PencilBeam -> GaussianBeam # Set default models (6) self.assertEqual(1, len(opss)) self.assertEqual(7, len(ws)) # Test self.assertAlmostEqual(1234, opss[0].beam.energy_eV, 4) self.assertAlmostEqual(0.0, opss[0].beam.diameter_m, 4) self.assertEqual(6, len(opss[0].models))