From e6037e878b300b4dfc21b2497c3b580d67bee21e Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 6 Dec 2017 16:33:16 +0100
Subject: [PATCH] also compare tabledata

---
 VECTO/MainModule.vb                           |  5 ++-
 VectoCore/VectoCoreTest/Utils/AssertHelper.cs | 35 +++++++++++++++++--
 2 files changed, 37 insertions(+), 3 deletions(-)

diff --git a/VECTO/MainModule.vb b/VECTO/MainModule.vb
index ae7a4e1282..25f0781d0d 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 c0f2f2f394..6fbbabf2fe 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)) {
-- 
GitLab