Example #1
0
class PandABoxTablePartTest(unittest.TestCase):
    def setUp(self):
        self.process = Mock()
        self.control = Mock()
        fields = OrderedDict()
        fields["NREPEATS"] = (7, 0)
        fields["INPUT_MASK"] = (32, 32)
        fields["TRIGGER_MASK"] = (48, 48)
        fields["TIME_PH_A"] = (95, 64)
        self.control.get_table_fields.return_value = fields
        self.meta = TableMeta("Seq table")
        self.o = PandABoxTablePart(self.process,
                                   self.control,
                                   self.meta,
                                   block_name="SEQ1",
                                   field_name="TABLE",
                                   writeable=True)

    def test_init(self):
        self.assertEqual(
            list(self.meta.elements),
            ["NREPEATS", "INPUT_MASK", "TRIGGER_MASK", "TIME_PH_A"])
        self.assertIsInstance(self.meta.elements.NREPEATS, NumberArrayMeta)
        self.assertEqual(self.meta.elements.NREPEATS.dtype, "uint8")
        self.assertEqual(self.meta.elements.NREPEATS.tags,
                         ["widget:textinput"])
        self.assertIsInstance(self.meta.elements.INPUT_MASK, BooleanArrayMeta)
        self.assertEqual(self.meta.elements.INPUT_MASK.tags,
                         ["widget:checkbox"])
        self.assertIsInstance(self.meta.elements.TRIGGER_MASK,
                              BooleanArrayMeta)
        self.assertEqual(self.meta.elements.TRIGGER_MASK.tags,
                         ["widget:checkbox"])
        self.assertIsInstance(self.meta.elements.TIME_PH_A, NumberArrayMeta)
        self.assertEqual(self.meta.elements.TIME_PH_A.dtype, "uint32")
        self.assertEqual(self.meta.elements.TIME_PH_A.tags,
                         ["widget:textinput"])

    def test_list_from_table(self):
        table = Table(self.meta)
        table.append([32, True, True, 4294967295])
        table.append([0, True, False, 1])
        table.append([0, False, False, 0])
        l = self.o.list_from_table(table)
        self.assertEqual(l, [32, 0x10001, 4294967295, 0, 0x1, 1, 0, 0x0, 0])

    def test_table_from_list(self):
        l = [32, 0x10001, 4294967295, 0, 0x1, 1, 0, 0x0, 0]
        table = self.o.table_from_list(l)
        self.assertEqual(list(table.NREPEATS), [32, 0, 0])
        self.assertEqual(table.INPUT_MASK, [True, True, False])
        self.assertEqual(table.TRIGGER_MASK, [True, False, False])
        self.assertEqual(list(table.TIME_PH_A), [4294967295, 1, 0])
class PandABoxTablePartTest(unittest.TestCase):
    def setUp(self):
        self.process = Mock()
        self.control = Mock()
        fields = OrderedDict()
        fields["NREPEATS"] = (7, 0)
        fields["INPUT_MASK"] = (32, 32)
        fields["TRIGGER_MASK"] = (48, 48)
        fields["TIME_PH_A"] = (95, 64)
        self.control.get_table_fields.return_value = fields
        self.meta = TableMeta("Seq table")
        self.o = PandABoxTablePart(
            self.process, self.control, self.meta,
            block_name="SEQ1", field_name="TABLE", writeable=True)

    def test_init(self):
        self.assertEqual(list(self.meta.elements), [
            "nrepeats", "inputMask", "triggerMask", "timePhA"])
        self.assertIsInstance(self.meta.elements.nrepeats, NumberArrayMeta)
        self.assertEqual(self.meta.elements.nrepeats.dtype, "uint8")
        self.assertEqual(self.meta.elements.nrepeats.tags, ["widget:textinput"])
        self.assertIsInstance(self.meta.elements.inputMask, BooleanArrayMeta)
        self.assertEqual(self.meta.elements.inputMask.tags, ["widget:checkbox"])
        self.assertIsInstance(self.meta.elements.triggerMask, BooleanArrayMeta)
        self.assertEqual(self.meta.elements.triggerMask.tags, ["widget:checkbox"])
        self.assertIsInstance(self.meta.elements.timePhA, NumberArrayMeta)
        self.assertEqual(self.meta.elements.timePhA.dtype, "uint32")
        self.assertEqual(self.meta.elements.timePhA.tags, ["widget:textinput"])

    def test_list_from_table(self):
        table = Table(self.meta)
        table.append([32, True, True, 4294967295])
        table.append([0, True, False, 1])
        table.append([0, False, False, 0])
        l = self.o.list_from_table(table)
        self.assertEqual(l,
                         [32, 0x10001, 4294967295,
                         0, 0x1, 1,
                         0, 0x0, 0])

    def test_table_from_list(self):
        l = [32, 0x10001, 4294967295,
             0, 0x1, 1,
             0, 0x0, 0]
        table = self.o.table_from_list(l)
        self.assertEqual(list(table.nrepeats), [32, 0, 0])
        self.assertEqual(table.inputMask, [True, True, False])
        self.assertEqual(table.triggerMask, [True, False, False])
        self.assertEqual(list(table.timePhA), [4294967295, 1, 0])
Example #3
0
 def setUp(self):
     self.process = Mock()
     self.control = Mock()
     fields = OrderedDict()
     fields["NREPEATS"] = (7, 0)
     fields["INPUT_MASK"] = (32, 32)
     fields["TRIGGER_MASK"] = (48, 48)
     fields["TIME_PH_A"] = (95, 64)
     self.control.get_table_fields.return_value = fields
     self.meta = TableMeta("Seq table")
     self.o = PandABoxTablePart(self.process,
                                self.control,
                                self.meta,
                                block_name="SEQ1",
                                field_name="TABLE",
                                writeable=True)
Example #4
0
 def _make_table(self, field_name, field_data):
     group_tag = self._make_group("parameters")
     tags = [widget("table"), group_tag, config()]
     meta = TableMeta(field_data.description, tags)
     part = PandABoxTablePart(self.process,
                              self.control,
                              meta,
                              self.block_name,
                              field_name,
                              writeable=True)
     self._add_part(field_name, part)
 def setUp(self):
     self.process = Mock()
     self.control = Mock()
     fields = OrderedDict()
     fields["NREPEATS"] = (7, 0)
     fields["INPUT_MASK"] = (32, 32)
     fields["TRIGGER_MASK"] = (48, 48)
     fields["TIME_PH_A"] = (95, 64)
     self.control.get_table_fields.return_value = fields
     self.meta = TableMeta("Seq table")
     self.o = PandABoxTablePart(
         self.process, self.control, self.meta,
         block_name="SEQ1", field_name="TABLE", writeable=True)