def testGetDistanceBetweenDevices(self):
     section = LinacAbstractSection("test", None, None, 600)
     self.assertEqual(section.numberOfDevices(), 0)
     self.assertEqual(section.getDistanceBetweenDevices(), 600)
     dev1 = Device("dev1", None, None)
     section.addDevice(dev1)
     self.assertEqual(section.getDistanceBetweenDevices(), 300)
     dev2 = Device("dev2", None, None)
     section.addDevice(dev2)
     self.assertEqual(section.getDistanceBetweenDevices(), 200)
Exemple #2
0
 def testAddDevice(self):
     device = Device("abcde", None, None)
     section = Section("test", "grey")
     self.assertEqual(section.numberOfDevices(), 0)
     section.addDevice(device)
     self.assertEqual(section.numberOfDevices(), 1)
     self.assertEqual(section.devices[0], device)
     self.assertEqual(device.numberInSection, 0)
     otherDevice = Device("other", None, None)
     section.addDevice(otherDevice)
     self.assertEqual(otherDevice.numberInSection, 1)
Exemple #3
0
 def testGetDevice(self):
     dev1 = Device("foo", None, None)
     dev2 = Device("bar", None, None)
     section = Section("test", "grey")
     self.assertEqual(section.numberOfDevices(), 0)
     section.addDevice(dev1)
     section.addDevice(dev2)
     self.assertEqual(section.numberOfDevices(), 2)
     self.assertEqual(section.getDevice(0), dev1)
     self.assertNotEqual(section.getDevice(0), dev2)
     self.assertEqual(section.getDevice(1), dev2)
     self.assertEqual(section.getDevice(3), None)
Exemple #4
0
    def testSectionName(self):
        device = Device("I-TL/VAC/I-TL-CAB02-VAC-IPCU1", None, None)
        self.assertEqual(device.getSectionName(), "I-TL")

        device = Device("I-S00/MAG/I-S00-MAG-COBX2", None, None)
        self.assertEqual(device.getSectionName(), "I-S00")

        device = Device("I-K01/VAC/I-K01CAB05-VAC-IPCU1", None, None)
        self.assertEqual(device.getSectionName(), "I-K01")

        device = Device("R1-SGA/MAG/CAB1R1-SGA4-MAG-PS04", None, None)
        self.assertEqual(device.getSectionName(), "R1-SGA")
Exemple #5
0
    def testSubsystemName(self):
        device = Device("I-TL/VAC/I-TL-CAB02-VAC-IPCU1", None, None)
        self.assertEqual(device.subsystemName, "VAC")

        device = Device("I-S00/MAG/I-S00-MAG-COBX2", None, None)
        self.assertEqual(device.subsystemName, "MAG")

        device = Device("I-K01/RF/I-K01CAB03-RF-LLRFL1", None, None)
        self.assertEqual(device.subsystemName, "RF")

        device = Device("I-S00/DIA/I-S00-DIA-SCRN1", None, None)
        self.assertEqual(device.subsystemName, "DIA")
    def testAssignDevicesBeforeDrawing(self):
        section = self.linac.addSection("I-K01", None, 200)
        subsection = section.addSubsection("I-K01A", None, 50)
        firstDevice = Device("I-K01/ab/cd", None, [12, 20])
        secondDevice = Device("I-K01A/ef/gh", None, [5, 20])
        thirdDevice = Device("I-K01A/ij/kl", None, [15, 20])
        self.linac.addDevice(firstDevice)
        self.linac.addDevice(secondDevice)
        self.linac.addDevice(thirdDevice)

        self.assertEqual(firstDevice.section, section)
        self.linac.assignDevicesBeforeDrawing()
        self.assertEqual(firstDevice.section, subsection)
 def testAddDevice(self):
     device = Device("ABC/MAG/device123", None, None)
     anotherDevice = Device("ABC/VAC/dev7", None, None)
     self.linac.addSection("ABC")
     section = self.linac.getSection("ABC")
     self.assertEqual(section.numberOfDevices(), 0)
     self.assertEqual(section.getDevice(0), None)
     self.linac.addDevice(device)
     self.assertEqual(section.getDevice(0), device)
     self.assertEqual(section.getDevice(1), None)
     self.linac.addDevice(anotherDevice)
     self.assertEqual(section.getDevice(1), anotherDevice)
     self.assertEqual(section.numberOfDevices(), 2)
Exemple #8
0
    def testCheckingConditions(self):
        deviceWithoutIcon = Device("A/B/C", None, None)
        deviceWithoutIcon.section = True
        with self.assertRaises(Exception):
            deviceWithoutIcon.checkNecessaryConditions()

        deviceWithoutSection = Device("D/E/F", Icon("test"), None)
        with self.assertRaises(Exception):
            deviceWithoutSection.checkNecessaryConditions()

        deviceWithWrongSubsystem = Device("GHI", Icon("test"), None)
        deviceWithWrongSubsystem.section = True
        with self.assertRaises(Exception):
            deviceWithWrongSubsystem.checkNecessaryConditions()
Exemple #9
0
    def testSortDevices(self):
        firstDevice = Device("First", None, [184, 99])
        secondDevice = Device("Second", None, [964, 80])
        section = Section("test", None)

        section.addDevice(secondDevice)
        section.addDevice(firstDevice)

        self.assertEqual(section.getDevice(0), secondDevice)
        self.assertEqual(section.getDevice(0).numberInSection, 0)
        self.assertEqual(section.getDevice(1).numberInSection, 1)
        section.sortDevices()
        self.assertEqual(section.getDevice(0), firstDevice)
        self.assertEqual(section.getDevice(0).numberInSection, 0)
        self.assertEqual(section.getDevice(1).numberInSection, 1)
Exemple #10
0
 def testConfiguration(self):
     coord = (12, 13.901)
     icon = Icon("test/path")
     device = Device("name", icon, coord)
     self.assertEqual(device.icon, icon)
     self.assertEqual(device.realCoordinates, coord)
     self.assertEqual(device.name, "name")
    def testGetAllDevicesSorted(self):
        section = self.linac.addSection("A", None, 100)
        subsection = section.addSubsection("A-1", None, 20)

        firstDevice = Device("first", None, [301, 222])
        secondDevice = Device("second", None, [154, 222])
        thirdDevice = Device("third", None, [101, 222])
        fourthDevice = Device("fourth", None, [55, 30])
        subsection.addDevice(firstDevice)
        subsection.addDevice(secondDevice)
        section.addDevice(thirdDevice)
        section.addDevice(fourthDevice)

        devices = self.linac.getAllDevicesSorted()
        self.assertEqual(
            devices, [fourthDevice, thirdDevice, secondDevice, firstDevice])
        self.assertEqual(devices[0].numberInSection, 0)
        self.assertEqual(devices[2].numberInSection, 0)
        self.assertEqual(devices[3].numberInSection, 1)
Exemple #12
0
    def testSortDevicesRecursively(self):
        section = LinacSection("A", None, 100)
        subsection = section.addSubsection("A01", None, 50)
        firstDevice = Device("first", None, [301,222])
        secondDevice = Device("second", None, [154,222])
        thirdDevice = Device("third", None, [101,222])
        fourthDevice = Device("fourth", None, [55, 30])
        subsection.addDevice(firstDevice)
        subsection.addDevice(secondDevice)
        section.addDevice(thirdDevice)
        section.addDevice(fourthDevice)

        devices = section.getAllDevices()
        self.assertEqual(devices[0], thirdDevice)
        self.assertEqual(devices[2], firstDevice)

        section.sortDevicesRecursively()
        devices = section.getAllDevices()
        self.assertEqual(devices[0], fourthDevice)
        self.assertEqual(devices[2], secondDevice)
Exemple #13
0
    def testAssigningSvgCoordinate(self):
        device = Device("abc/testDevice", None, None)
        self.assertEqual(device.svgCoordinateX, None)

        linac = Linac()
        linac.addSection("abc")
        linac.addDevice(device)
        device.assignSvgCoordinatesForLinacDevice()
        testSection = linac.getSection("abc")
        sectionStartCoordinate = testSection.startCoordinate
        distanceBetweenDevices = testSection.getDistanceBetweenDevices()

        self.assertEqual(device.svgCoordinateX,
                         sectionStartCoordinate + distanceBetweenDevices)
Exemple #14
0
    def testGetAllDevices(self):
        section = LinacSection("I-K00", None, 0)

        firstDevice = Device("test1", None, None)
        secondDevice = Device("test2", None, None)
        thirdDevice = Device("test3", None, None)
        fourthDevice = Device("test4", None, None)

        section.addSubsection("I-K01A", None, 100)
        section.addSubsection("I-K01B", None, 100)
        firstSubsection = section.getSubsection("I-K01A")
        secondSubsection = section.getSubsection("I-K01B")

        firstSubsection.addDevice(firstDevice)
        section.addDevice(secondDevice)
        secondSubsection.addDevice(thirdDevice)
        firstSubsection.addDevice(fourthDevice)

        allDevices = section.getAllDevices()
        self.assertTrue(firstDevice in allDevices)
        self.assertTrue(secondDevice in allDevices)
        self.assertTrue(thirdDevice in allDevices)
        self.assertTrue(fourthDevice in allDevices)
        self.assertEqual(len(allDevices), 4)
    def __init__(self, config_file="config.yaml", device_init=True):
        self.FILE_FOLDER = "./files/"
        self.SRC_FOLDER = "./src/"

        with open(self.SRC_FOLDER+config_file, "r") as fp:
            self.config = yaml.safe_load(fp)

        self.test_config = self.config["test"]
        self.test_file = self.test_config["test_script"]
        self.input_points_header = self.test_config.get("input_points_header", "Simulation (controller) Inputs")
        self.conditions_header = self.test_config.get("conditions_header", "Result Time")
        self.output_points_header = self.test_config.get("output_points_header", "Expected Controller BACnet Outputs")

        if device_init:
            self.controller = Device(device_config=self.config["device"])

            self.map_file = self.test_config["point_map"]
            self.init_device(mapping_file=self.map_file)

            self.init_test_sequence(filename=self.test_file, ip_header=self.input_points_header, cond_header=self.conditions_header, op_header=self.output_points_header, point_prop=self.point_properties)
Exemple #16
0
    def testDrawDevice(self):
        icon = Icon("symbol-quadrupole.svg")
        device = Device("I-K01/VAC/I-K01CAB05-VAC-IPCU1", icon, (113, 122))
        linac = Linac()
        linac.addSection("I-K01")
        linac.addDevice(device)

        blankSVGpath = 'blank.svg'
        svgTree = etree.parse(blankSVGpath)
        svgRoot = svgTree.getroot()
        svgFile = svg.SVG()
        svgFile.setSvg(svgRoot)

        device.updateSvg()
        vacNode = svgFile.getSubsystemZoomNode("VAC")
        deviceNode = svgFile.getElementById("ik01vacik01cab05vacipcu1",
                                            vacNode)
        self.assertEqual(
            deviceNode.attrib["{http://www.w3.org/1999/xlink}href"],
            "#symbol-quadrupole")
        descriptionNode = svgFile.getElementById(
            "ik01vacik01cab05vacipcu1Desc", deviceNode)
        self.assertEqual(descriptionNode.text,
                         "device=I-K01/VAC/I-K01CAB05-VAC-IPCU1")
 def setUp(self):
     self.device = Device()
     self.device2 = Device("Jumpy Whale")
 def testAddDeviceToSubsection(self):
     section = self.linac.addSection("I-S01", None, 200)
     subsection = section.addSubsection("I-S01B", None, 50)
     device = Device("I-S01B/ab/cd", None, [0, 20])
     self.linac.addDevice(device)
     self.assertEqual(device.section, subsection)
Exemple #19
0
 def testGenerateSimpleName(self):
     device = Device("I-K01/VAC/I-K01CAB05-VAC-IPCU1", None, None)
     self.assertEqual(device.generateSimpleName(),
                      "ik01vacik01cab05vacipcu1")
Exemple #20
0
    def testLinacElement(self):
        device = Device("I-K01/VAC/I-K01CAB05-VAC-IPCU1", None, None)
        self.assertEqual(device.isLinacElement(), True)

        device = Device("R1-SGA/MAG/R1-SGACAB14-MAG-PS04", None, None)
        self.assertEqual(device.isLinacElement(), False)
Exemple #21
0
    def testShortName(self):
        firstDevice = Device("I-K01/VAC/I-K01CAB05-VAC-IPCU1", None, None)
        secondDevice = Device("R1-SGA/MAG/R1-SGACAB14-MAG-PS04", None, None)

        self.assertEqual(firstDevice.getShortName(), "IPCU1")
        self.assertEqual(secondDevice.getShortName(), "PS04")