def testInstrumentConstruction(self): """Testing the default construction of the class.""" # Construct the object. my_instrument = Instrument("myInstrument") my_instrument.add_calculator(self.calculator1) my_instrument.add_calculator(self.calculator2)
def test_CalculationInstrument(tmpdir): """PlusCalculator test function, the native output of MinusCalculator is a python dictionary""" input1 = NumberData.from_dict({"number": 1}, "input1") input2 = NumberData.from_dict({"number": 2}, "input2") input_collection = [input1, input2] # This could also be allowed. input_collection = DataCollection(input1, input2) calculator1 = PlusCalculator("plus", input_collection, output_keys=["plus_result"]) calculator2 = MinusCalculator("minus", input_collection, output_keys=["minus_result"]) input_collection = DataCollection(calculator1.output["plus_result"], calculator2.output["minus_result"]) calculator3 = ArrayCalculator("array", input_collection, output_keys=["array_result"]) calculation_instrument = Instrument("calculation_instrument") instrument_path = tmpdir / "calculation_instrument" calculation_instrument.add_calculator(calculator1) calculation_instrument.add_calculator(calculator2) calculation_instrument.add_calculator(calculator3) calculation_instrument.set_instrument_base_dir(str(instrument_path)) calculation_instrument.run() print(calculator3.output.get_data()) calculator3.output.write(str(tmpdir / "final_result.txt"), AD.TXTFormat) calculator3.output.write(str(tmpdir / "final_result.h5"), AD.H5Format)
def testEditCalculator(self): """Testing edit calculator""" my_instrument = Instrument("myInstrument") my_instrument.add_calculator(self.calculator1) my_instrument.parameters["test1"]["plus_times"] = 10 my_instrument.parameters["test1"]["plus_times"] = 15 energy1 = my_instrument.calculators["test1"].parameters["plus_times"].value self.assertEqual(energy1, 15)
def testListParams(self): """Testing listing parameters""" my_instrument = Instrument("myInstrument") my_instrument.add_calculator(self.calculator1) my_instrument.add_calculator(self.calculator2) my_instrument.list_parameters()
def testListCalculator(self): """Testing list calculators""" # Construct the object. my_instrument = Instrument("myInstrument") my_instrument.add_calculator(self.calculator1) my_instrument.add_calculator(self.calculator2) my_instrument.list_calculators()
def testRemoveCalculator(self): """Testing remove calculator""" my_instrument = Instrument("myInstrument") my_instrument.add_calculator(self.calculator1) my_instrument.add_calculator(self.calculator2) self.assertEqual(len(my_instrument.calculators), 2) my_instrument.remove_calculator(self.calculator1.name) self.assertEqual(len(my_instrument.calculators), 1)
def testAddMaster(self): """Testing remove calculator""" my_instrument = Instrument("myInstrument") my_instrument.add_calculator(self.calculator1) my_instrument.add_calculator(self.calculator2) links = {"test1": "plus_times", "test2": "plus_times"} my_instrument.add_master_parameter("plus_times", links) my_instrument.master["plus_times"] = 10 tims1 = my_instrument.calculators["test1"].parameters["plus_times"].value tims2 = my_instrument.calculators["test2"].parameters["plus_times"].value self.assertEqual(tims1, 10) self.assertEqual(tims2, 10)
def testSetBasePath(self): """Testing setup base path for calculators""" my_instrument = Instrument("myInstrument") my_instrument.add_calculator(self.calculator1) my_instrument.add_calculator(self.calculator2) my_instrument.set_instrument_base_dir("test") self.assertEqual( my_instrument.calculators["test1"].base_dir, "test/PlusCalculator" ) self.assertEqual( my_instrument.calculators["test2"].base_dir, "test/PlusCalculator" )