Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
0
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)
Ejemplo n.º 3
0
 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)
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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)
Ejemplo n.º 8
0
    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"
        )