Exemplo n.º 1
0
    def test_push_float_params(self) -> None:
        dummy_hardware = DummySequencingHardware()
        sequencer = Sequencer(dummy_hardware)

        ps = {'foo': 1, 'bar': 7.3}
        elem = DummySequencingElement()
        sequencer.push(elem, ps)
        self.assertFalse(sequencer.has_finished())
        sequencer.build()
        self.assertIsInstance(elem.parameters['foo'], ConstantParameter)
        self.assertIsInstance(elem.parameters['bar'], ConstantParameter)
Exemplo n.º 2
0
 def test_build_path_o2_m2_i1_t_i2_tt_m2_i0_i0_two_elements_custom_block_one_element_main_block(self) -> None:
     dummy_hardware = DummySequencingHardware()
     sequencer = Sequencer(dummy_hardware)
             
     ps = {'foo': ConstantParameter(1), 'bar': ConstantParameter(7.3)}
     
     target_block = InstructionBlock()
     elem2 = DummySequencingElement(False)
     sequencer.push(elem2, ps, target_block)
     
     elem1 = DummySequencingElement(False)
     sequencer.push(elem1, ps, target_block)
     
     elem_main = DummySequencingElement(False)
     sequencer.push(elem_main, ps)
     
     block = sequencer.build()
     
     self.assertTrue(sequencer.has_finished())
     self.assertIs(target_block, elem1.target_block)
     self.assertEqual(ps, elem1.parameters)
     self.assertEqual(1, elem1.requires_stop_call_counter)
     self.assertEqual(1, elem1.build_call_counter)
     self.assertIs(target_block, elem2.target_block)
     self.assertEqual(ps, elem2.parameters)
     self.assertEqual(1, elem2.requires_stop_call_counter)
     self.assertEqual(1, elem2.build_call_counter)
     self.assertIs(block, elem_main.target_block)
     self.assertEqual(ps, elem_main.parameters)
     self.assertEqual(1, elem_main.requires_stop_call_counter)
     self.assertEqual(1, elem_main.build_call_counter)
Exemplo n.º 3
0
    def test_build_path_o2_m1_i2_tf_m2_i1_f_i1_f_two_elements_main_block_last_requires_stop_add_one_element_requires_stop_new_block(self) -> None:
        dummy_hardware = DummySequencingHardware()
        sequencer = Sequencer(dummy_hardware)
    
        ps = {'foo': ConstantParameter(1), 'bar': ConstantParameter(7.3)}
        
        new_block = InstructionBlock()
        new_elem = DummySequencingElement(True)
        
        elem1 = DummySequencingElement(False, (new_block, [new_elem]))
        elem2 = DummySequencingElement(True)
        sequencer.push(elem2, ps)
        sequencer.push(elem1, ps)

        block = sequencer.build()
        
        self.assertFalse(sequencer.has_finished())
        self.assertIs(block, elem1.target_block)
        self.assertEqual(ps, elem1.parameters)
        self.assertEqual(1, elem1.requires_stop_call_counter)
        self.assertEqual(1, elem1.build_call_counter)
        self.assertEqual(ps, elem2.parameters)
        self.assertEqual(2, elem2.requires_stop_call_counter)
        self.assertEqual(0, elem2.build_call_counter)
        self.assertEqual(ps, new_elem.parameters)
        self.assertEqual(1, new_elem.requires_stop_call_counter)
        self.assertEqual(0, new_elem.build_call_counter)
Exemplo n.º 4
0
 def test_build_path_o1_m1_i1_f_single_element_requires_stop_main_block(self) -> None:
     dummy_hardware = DummySequencingHardware()
     sequencer = Sequencer(dummy_hardware)
 
     elem = DummySequencingElement(True)
     ps = {'foo': ConstantParameter(1), 'bar': ConstantParameter(7.3)}
     sequencer.push(elem, ps)
     block = sequencer.build()
     
     self.assertFalse(sequencer.has_finished())
     self.assertEqual(ps, elem.parameters)
     self.assertEqual(1, elem.requires_stop_call_counter)
     self.assertEqual(0, elem.build_call_counter)
Exemplo n.º 5
0
 def test_build_path_o1_m2_i1_f_i0_one_element_custom_block_requires_stop(self) -> None:
     dummy_hardware = DummySequencingHardware()
     sequencer = Sequencer(dummy_hardware)
 
     elem = DummySequencingElement(True)
     ps = {'foo': ConstantParameter(1), 'bar': ConstantParameter(7.3)}
     target_block = InstructionBlock()
     sequencer.push(elem, ps, target_block)
     block = sequencer.build()
     
     self.assertFalse(sequencer.has_finished())
     self.assertEqual(ps, elem.parameters)
     self.assertEqual(1, elem.requires_stop_call_counter)
     self.assertEqual(0, elem.build_call_counter)
Exemplo n.º 6
0
 def test_build_path_no_loop_nothing_to_do(self) -> None:
     dummy_hardware = DummySequencingHardware()
     sequencer = Sequencer(dummy_hardware)
     
     block = sequencer.build()
     self.assertTrue(sequencer.has_finished())