From 3478e372c910715ce837210cb87442baeb0e5e26 Mon Sep 17 00:00:00 2001 From: Milan Rother Date: Thu, 5 Nov 2026 13:37:30 +0100 Subject: [PATCH 1/2] Add block icons --- src/pathsim_rf/icons/NetlistCircuit.svg | 1 + src/pathsim_rf/icons/NetlistStateSpace.svg | 1 + src/pathsim_rf/icons/RFAmplifier.svg | 1 + src/pathsim_rf/icons/RFMixer.svg | 1 + src/pathsim_rf/icons/RFNetwork.svg | 1 + src/pathsim_rf/icons/TransmissionLine.svg | 1 + tests/test_icons.py | 29 ++++++++++++++++++++++ 7 files changed, 35 insertions(+) create mode 100644 src/pathsim_rf/icons/NetlistCircuit.svg create mode 100644 src/pathsim_rf/icons/NetlistStateSpace.svg create mode 100644 src/pathsim_rf/icons/RFAmplifier.svg create mode 100644 src/pathsim_rf/icons/RFMixer.svg create mode 100644 src/pathsim_rf/icons/RFNetwork.svg create mode 100644 src/pathsim_rf/icons/TransmissionLine.svg create mode 100644 tests/test_icons.py diff --git a/src/pathsim_rf/icons/NetlistCircuit.svg b/src/pathsim_rf/icons/NetlistCircuit.svg new file mode 100644 index 0000000..809a165 --- /dev/null +++ b/src/pathsim_rf/icons/NetlistCircuit.svg @@ -0,0 +1 @@ + diff --git a/src/pathsim_rf/icons/NetlistStateSpace.svg b/src/pathsim_rf/icons/NetlistStateSpace.svg new file mode 100644 index 0000000..809a165 --- /dev/null +++ b/src/pathsim_rf/icons/NetlistStateSpace.svg @@ -0,0 +1 @@ + diff --git a/src/pathsim_rf/icons/RFAmplifier.svg b/src/pathsim_rf/icons/RFAmplifier.svg new file mode 100644 index 0000000..f1691c5 --- /dev/null +++ b/src/pathsim_rf/icons/RFAmplifier.svg @@ -0,0 +1 @@ + diff --git a/src/pathsim_rf/icons/RFMixer.svg b/src/pathsim_rf/icons/RFMixer.svg new file mode 100644 index 0000000..4a46e35 --- /dev/null +++ b/src/pathsim_rf/icons/RFMixer.svg @@ -0,0 +1 @@ + diff --git a/src/pathsim_rf/icons/RFNetwork.svg b/src/pathsim_rf/icons/RFNetwork.svg new file mode 100644 index 0000000..2b291e7 --- /dev/null +++ b/src/pathsim_rf/icons/RFNetwork.svg @@ -0,0 +1 @@ + diff --git a/src/pathsim_rf/icons/TransmissionLine.svg b/src/pathsim_rf/icons/TransmissionLine.svg new file mode 100644 index 0000000..7379917 --- /dev/null +++ b/src/pathsim_rf/icons/TransmissionLine.svg @@ -0,0 +1 @@ + diff --git a/tests/test_icons.py b/tests/test_icons.py new file mode 100644 index 0000000..d482d13 --- /dev/null +++ b/tests/test_icons.py @@ -0,0 +1,29 @@ +import unittest +import xml.etree.ElementTree as ET + +from pathsim.blocks import Block + +import pathsim_rf + + +class TestIcons(unittest.TestCase): + """Every block of the toolbox has an icon, read by Block.icon().""" + + def test_blocks_have_icons(self): + blocks = [ + obj for obj in vars(pathsim_rf).values() + if isinstance(obj, type) and issubclass(obj, Block) + and obj.__module__.startswith("pathsim_rf") + ] + self.assertGreater(len(blocks), 0) + + for cls in blocks: + with self.subTest(block=cls.__name__): + icon = cls.icon() + self.assertIsNotNone(icon) + root = ET.fromstring(icon) + self.assertEqual(root.get("viewBox"), "0 0 96 64") + + +if __name__ == "__main__": + unittest.main() From 62034f6a7b2ab46f73afaf3f83240551089fad5b Mon Sep 17 00:00:00 2001 From: Milan Rother Date: Thu, 5 Nov 2026 13:52:15 +0100 Subject: [PATCH 2/2] Format the icon test --- tests/test_icons.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/test_icons.py b/tests/test_icons.py index d482d13..add9845 100644 --- a/tests/test_icons.py +++ b/tests/test_icons.py @@ -11,8 +11,10 @@ class TestIcons(unittest.TestCase): def test_blocks_have_icons(self): blocks = [ - obj for obj in vars(pathsim_rf).values() - if isinstance(obj, type) and issubclass(obj, Block) + obj + for obj in vars(pathsim_rf).values() + if isinstance(obj, type) + and issubclass(obj, Block) and obj.__module__.startswith("pathsim_rf") ] self.assertGreater(len(blocks), 0)