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)
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)
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)
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")
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)
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()
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)
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)
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)
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)
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)
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)
def testGenerateSimpleName(self): device = Device("I-K01/VAC/I-K01CAB05-VAC-IPCU1", None, None) self.assertEqual(device.generateSimpleName(), "ik01vacik01cab05vacipcu1")
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)
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")