diff --git a/src/pathsim_flight/icons/CAStoEAS.svg b/src/pathsim_flight/icons/CAStoEAS.svg
new file mode 100644
index 0000000..e6469ed
--- /dev/null
+++ b/src/pathsim_flight/icons/CAStoEAS.svg
@@ -0,0 +1 @@
+
diff --git a/src/pathsim_flight/icons/CAStoMach.svg b/src/pathsim_flight/icons/CAStoMach.svg
new file mode 100644
index 0000000..e6469ed
--- /dev/null
+++ b/src/pathsim_flight/icons/CAStoMach.svg
@@ -0,0 +1 @@
+
diff --git a/src/pathsim_flight/icons/CAStoTAS.svg b/src/pathsim_flight/icons/CAStoTAS.svg
new file mode 100644
index 0000000..e6469ed
--- /dev/null
+++ b/src/pathsim_flight/icons/CAStoTAS.svg
@@ -0,0 +1 @@
+
diff --git a/src/pathsim_flight/icons/EAStoTAS.svg b/src/pathsim_flight/icons/EAStoTAS.svg
new file mode 100644
index 0000000..e6469ed
--- /dev/null
+++ b/src/pathsim_flight/icons/EAStoTAS.svg
@@ -0,0 +1 @@
+
diff --git a/src/pathsim_flight/icons/ISAtmosphere.svg b/src/pathsim_flight/icons/ISAtmosphere.svg
new file mode 100644
index 0000000..bdac52a
--- /dev/null
+++ b/src/pathsim_flight/icons/ISAtmosphere.svg
@@ -0,0 +1 @@
+
diff --git a/src/pathsim_flight/icons/JSBSimWrapper.svg b/src/pathsim_flight/icons/JSBSimWrapper.svg
new file mode 100644
index 0000000..4c56caf
--- /dev/null
+++ b/src/pathsim_flight/icons/JSBSimWrapper.svg
@@ -0,0 +1 @@
+
diff --git a/src/pathsim_flight/icons/MachtoCAS.svg b/src/pathsim_flight/icons/MachtoCAS.svg
new file mode 100644
index 0000000..e6469ed
--- /dev/null
+++ b/src/pathsim_flight/icons/MachtoCAS.svg
@@ -0,0 +1 @@
+
diff --git a/src/pathsim_flight/icons/TAStoCAS.svg b/src/pathsim_flight/icons/TAStoCAS.svg
new file mode 100644
index 0000000..e6469ed
--- /dev/null
+++ b/src/pathsim_flight/icons/TAStoCAS.svg
@@ -0,0 +1 @@
+
diff --git a/tests/test_icons.py b/tests/test_icons.py
new file mode 100644
index 0000000..6fab108
--- /dev/null
+++ b/tests/test_icons.py
@@ -0,0 +1,31 @@
+import unittest
+import xml.etree.ElementTree as ET
+
+from pathsim.blocks import Block
+
+import pathsim_flight
+
+
+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_flight).values()
+ if isinstance(obj, type)
+ and issubclass(obj, Block)
+ and obj.__module__.startswith("pathsim_flight")
+ ]
+ 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()