diff --git a/S7.Net.UnitTest/S7.Net.UnitTest.csproj b/S7.Net.UnitTest/S7.Net.UnitTest.csproj
index 487efa8..0a14d88 100644
--- a/S7.Net.UnitTest/S7.Net.UnitTest.csproj
+++ b/S7.Net.UnitTest/S7.Net.UnitTest.csproj
@@ -80,6 +80,7 @@
+
diff --git a/S7.Net.UnitTest/TypeTests/ClassTests.cs b/S7.Net.UnitTest/TypeTests/ClassTests.cs
new file mode 100644
index 0000000..ba99c2c
--- /dev/null
+++ b/S7.Net.UnitTest/TypeTests/ClassTests.cs
@@ -0,0 +1,33 @@
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using S7.Net.Types;
+
+namespace S7.Net.UnitTest.TypeTests
+{
+ [TestClass]
+ public class ClassTests
+ {
+ [TestMethod]
+ public void GetClassSizeTest()
+ {
+ Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(1, 1)), 6);
+ Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(2, 15)), 6);
+ Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(2, 16)), 6);
+ Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(2, 17)), 8);
+ Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(3, 15)), 8);
+ Assert.AreEqual(Class.GetClassSize(new TestClassUnevenSize(3, 17)), 10);
+ }
+
+ private class TestClassUnevenSize
+ {
+ public bool Bool { get; set; }
+ public byte[] Bytes { get; set; }
+ public bool[] Bools { get; set; }
+
+ public TestClassUnevenSize(int byteCount, int bitCount)
+ {
+ Bytes = new byte[byteCount];
+ Bools = new bool[bitCount];
+ }
+ }
+ }
+}