class TestTlogFluence(TestCase): def setUp(self): self.log = MachineLog() self.log.load_demo_trajectorylog() def test_fluence(self): fluence = self.log.fluence fluence.gamma.calc_map() self.assertAlmostEqual(fluence.gamma.pass_prcnt, 100, delta=0.1) self.assertAlmostEqual(fluence.gamma.avg_gamma, 0.001, delta=0.005) self.assertAlmostEqual(fluence.gamma.histogram()[0][0], 240000, delta=100) def test_plotting(self): # raise error if map hasn't yet been calc'ed. with self.assertRaises(AttributeError): self.log.fluence.actual.plot_map() self.log.fluence.actual.calc_map() self.log.fluence.actual.plot_map() def test_saving_plots(self): self.log.fluence.gamma.calc_map() save_file('test.png', self.log.fluence.gamma.save_map) def test_subbeam_data(self): """Test accessing the subbeam data.""" expected_vals = [310, 180, 3.7, 3.4, 3.8, 3.9] for item, expval in zip(('gantry_angle', 'collimator_angle', 'jaw_x1', 'jaw_x2', 'jaw_y1', 'jaw_y2'), expected_vals): val = getattr(self.log.subbeams[0], item) self.assertAlmostEqual(val.actual, expval, delta=0.1)
def test_mlc(self): mlc = self.log.axis_data.mlc self.assertTrue(mlc.hdmlc) self.assertEqual(mlc.num_leaves, 120) self.assertEqual(mlc.num_pairs, 60) self.assertEqual(mlc.num_snapshots, 1021) log_no_exclusion = MachineLog() log_no_exclusion.load_demo_trajectorylog(exclude_beam_off=False) self.assertEqual(log_no_exclusion.axis_data.mlc.num_snapshots, 5200)
class Test_Tlog_Fluence(TestCase): def setUp(self): self.log = MachineLog() self.log.load_demo_trajectorylog() def test_fluence(self): fluence = self.log.fluence fluence.gamma.calc_map() self.assertAlmostEqual(fluence.gamma.pass_prcnt, 100, delta=0.1) self.assertAlmostEqual(fluence.gamma.avg_gamma, 0.001, delta=0.005) self.assertAlmostEqual(fluence.gamma.histogram()[0][0], 240000, delta=100)