class TestParameter(TestCase): def setUp(self): TestCase.setUp(self) getter = lambda geometry: geometry.inclusion_diameter_m setter = lambda geometry, val: setattr(geometry, 'inclusion_diameter_m', val) self.param = Parameter(getter, setter, 200e-9, 150e-9, 300e-9) def tearDown(self): TestCase.tearDown(self) def testgetter(self): geometry = Inclusion(pure(29), pure(30), 250e-9) self.assertAlmostEqual(250e-9, self.param.getter(geometry), 13) def testsetter(self): geometry = Inclusion(pure(29), pure(30), 250e-9) self.param.setter(geometry, 160e-9) self.assertAlmostEqual(160e-9, geometry.inclusion_diameter_m, 13) def testinitial_value(self): self.assertAlmostEqual(200e-9, self.param.initial_value, 13) def testconstraints(self): constraints = self.param.constraints self.assertAlmostEqual(150e-9, constraints[0], 13) self.assertAlmostEqual(300e-9, constraints[1], 13)
def setUp(self): TestCase.setUp(self) geometry = MultiLayers(pure(29)) geometry.add_layer(Material("AuPd", {79: 0.5, 46: 0.5}), 100e-9) baseops = Options() baseops.detectors['xray'] = PhotonIntensityDetector((0, 1), (0, 3)) meas = Measurement(baseops) meas.add_kratio(Ka(29), 0.2470, 0.004) getter = lambda geometry: geometry.layers[0].thickness_m setter = lambda geometry, val: setattr(geometry.layers[0], 'thickness_m', val) param = Parameter(getter, setter, 100e-9, 10e-9, 500e-9) self.exp = Experiment(geometry, [meas], [param])
def setUp(self): TestCase.setUp(self) getter = lambda geometry: geometry.inclusion_diameter_m setter = lambda geometry, val: setattr(geometry, 'inclusion_diameter_m', val) self.param = Parameter(getter, setter, 200e-9, 150e-9, 300e-9)
baseops.beam.diameter_m = 50e-9 baseops.detectors['xray'] = PhotonIntensityDetector.annular( radians(40.0), radians(5.0)) baseops.limits.add(ShowersLimit(1000)) meas1 = Measurement(baseops) meas1.add_kratio(Ka(6), 0.5, standard=Material('Fe3C', composition_from_formula('Fe3C'))) def setter1(geometry, val): geometry.inclusion_material.composition = {26: val, 6: '?'} param1 = Parameter(setter1, 0.95, 0.0, 1.0) def setter2(geometry, val): geometry.inclusion_diameter_m = val param2 = Parameter(setter2, 200e-9, 150e-9, 250e-9) inclusion_material = Material('CrC', {26: 0.95, 6: 0.05}) geometry = Inclusion(pure(26), inclusion_material, 200e-9) exp = Experiment(geometry, [meas1], [param1, param2]) runner = LocalRunner(NISTMonte, '/tmp', nbprocesses=1) optimizer = LevenbergMarquardtOptimzier()