diff --git a/VECTO/MainModule.vb b/VECTO/MainModule.vb
index ae7a4e1282019286494abc54de08ecc3d44c953b..25f0781d0d35175f7b3a506b8dd531e240f94c57 100644
--- a/VECTO/MainModule.vb
+++ b/VECTO/MainModule.vb
@@ -60,9 +60,12 @@ Module MainModule
 	End Function
 
 	Public Function GetRelativePath(filePath As String, basePath As String) As String
-		If (String.IsNullOrEmpty(filePath) OrElse String.IsNullOrEmpty(basePath)) Then
+		If (String.IsNullOrEmpty(filePath)) then
 			Return ""
 		End If
+        If (string.isnullOrempty(basePath)) Then
+            Return filePath
+        End If
 		If (Path.GetDirectoryName(filePath).StartsWith(basePath, StringComparison.OrdinalIgnoreCase)) Then
 			Return Path.GetFullPath(filePath).Substring(basePath.Length + If(basePath.EndsWith("\"), 0, 1))
 		End If
diff --git a/VectoCore/VectoCoreTest/Utils/AssertHelper.cs b/VectoCore/VectoCoreTest/Utils/AssertHelper.cs
index c0f2f2f39435d283ab523f3fe611bdb17526b241..6fbbabf2fe62b0bcfcb8da811d750b3daa7d0e15 100644
--- a/VectoCore/VectoCoreTest/Utils/AssertHelper.cs
+++ b/VectoCore/VectoCoreTest/Utils/AssertHelper.cs
@@ -32,6 +32,7 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using System.Data;
 using System.Diagnostics;
 using System.Globalization;
 using System.Linq;
@@ -153,8 +154,8 @@ namespace TUGraz.VectoCore.Tests.Utils
 					if (expectedEnumerable.Length > 0) {
 						IterateElements(expectedEnumerable, actualEnumerable, ignoredProperties);
 					}
-				} else if(propertyType == typeof(TableData)) { 
-					// todo!
+				} else if(propertyType == typeof(TableData)) {
+					TableDataEquals(expectedVal as TableData, actualVal as TableData);
 				} else {
 					PublicPropertiesEqual(propertyType, expectedVal, actualVal, ignoredProperties);
 				}
@@ -162,6 +163,36 @@ namespace TUGraz.VectoCore.Tests.Utils
 
 		}
 
+		private static void TableDataEquals(TableData expected, TableData actual)
+		{
+			Assert.NotNull(expected);
+			Assert.NotNull(actual);
+
+			Assert.AreEqual(expected.Columns.Count, actual.Columns.Count);
+			Assert.AreEqual(expected.Rows.Count, actual.Rows.Count);
+
+			foreach (DataColumn expectedCol in expected.Columns) {
+				Assert.NotNull(actual.Columns[expectedCol.ColumnName]);
+			}
+
+			//foreach (DataRow row in expected.Rows) {
+			for (var i = 0 ; i< expected.Rows.Count; i++) {
+				var expectedRow = expected.Rows[i];
+				var actualRow = actual.Rows[i];
+				foreach (DataColumn col in expected.Columns) {
+					var value = expectedRow[col];
+					if (value is ConvertedSI) {
+						Assert.AreEqual((value as ConvertedSI).Value, (actualRow[col] as ConvertedSI).Value);
+					}
+					if (value.GetType().IsPrimitive) {
+						Assert.AreEqual(value, actualRow[col]);
+					}
+				}
+			}
+			//CollectionAssert.AreEqual(expected.Rows, actual.Rows);
+
+		}
+
 		private static void IterateElements(IEnumerable<object> expected, IEnumerable<object> actual, string[] ignoredProperties = null)
 		{
 			foreach (var entry in expected.Zip(actual, Tuple.Create)) {