From 624e4453871cba23dc850cebdf0551db1c2165f5 Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Mon, 13 Sep 2021 10:15:59 +0200
Subject: [PATCH] Improved Testperformance of AssertHelper (string.Format only
 when it is really needed)

---
 VectoCore/VectoCoreTest/Utils/AssertHelper.cs | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/VectoCore/VectoCoreTest/Utils/AssertHelper.cs b/VectoCore/VectoCoreTest/Utils/AssertHelper.cs
index 0d5ffdf3bf..e2097afeff 100644
--- a/VectoCore/VectoCoreTest/Utils/AssertHelper.cs
+++ b/VectoCore/VectoCoreTest/Utils/AssertHelper.cs
@@ -68,8 +68,8 @@ namespace TUGraz.VectoCore.Tests.Utils
 		public static void AreRelativeEqual(SI expected, SI actual,
 			double toleranceFactor = DoubleExtensionMethods.ToleranceFactor, string message = null)
 		{
-			Assert.IsTrue(actual.HasEqualUnit(expected),
-				$"Wrong SI Units: expected: {expected.ToBasicUnits()}, actual: {actual.ToBasicUnits()}");
+			if (!actual.HasEqualUnit(expected))
+				Assert.IsTrue(actual.HasEqualUnit(expected), "Wrong SI Units: expected: {0}, actual: {1}", expected.ToBasicUnits(), actual.ToBasicUnits());
 			AreRelativeEqual(expected.Value(), actual.Value(), toleranceFactor: toleranceFactor, message: message);
 		}
 
@@ -104,15 +104,12 @@ namespace TUGraz.VectoCore.Tests.Utils
 			Assert.IsFalse(expected.HasValue ^ actual.HasValue, "Both Values have to be null or not null.");
 
 			if (double.IsNaN(expected.Value)) {
-				Assert.IsTrue(double.IsNaN(actual.Value),
-					$"Actual value is not NaN. Expected: {expected}, Actual: {actual}{message}");
+				Assert.IsTrue(double.IsNaN(actual.Value), "Actual value is not NaN. Expected: {0}, Actual: {1}{2}", expected, actual, message);
 				return;
 			}
 
 			var ratio = expected == 0 ? Math.Abs(actual.Value) : Math.Abs(actual.Value / expected.Value - 1);
-			Assert.IsTrue(ratio < toleranceFactor, string.Format(CultureInfo.InvariantCulture,
-				"Given values are not equal. Expected: {0}, Actual: {1}, Difference: {3} (Tolerance Factor: {2}){4}",
-				expected, actual, toleranceFactor, expected - actual, message));
+				Assert.IsTrue(ratio < toleranceFactor, "Given values are not equal. Expected: {0}, Actual: {1}, Difference: {3} (Tolerance Factor: {2}){4}", expected, actual, toleranceFactor, expected - actual, message);
 		}
 
 		public static void PublicPropertiesEqual(Type t, object expected, object actual, string[] ignoredProperties = null)
@@ -121,7 +118,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 				BindingFlags.Instance | BindingFlags.Public |
 				BindingFlags.FlattenHierarchy;
 			var properties = t.GetProperties(flags);
-			
+
 			foreach (var prop in properties) {
 				if (ignoredProperties != null && ignoredProperties.Contains(prop.Name)) {
 					continue;
@@ -157,7 +154,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 					if (expectedEnumerable.Length > 0) {
 						IterateElements(expectedEnumerable, actualEnumerable, ignoredProperties);
 					}
-				} else if(propertyType == typeof(TableData)) {
+				} else if (propertyType == typeof(TableData)) {
 					TableDataEquals(expectedVal as TableData, actualVal as TableData);
 				} else {
 					PublicPropertiesEqual(propertyType, expectedVal, actualVal, ignoredProperties);
@@ -179,7 +176,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 			}
 
 			//foreach (DataRow row in expected.Rows) {
-			for (var i = 0 ; i< expected.Rows.Count; i++) {
+			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) {
@@ -197,7 +194,7 @@ namespace TUGraz.VectoCore.Tests.Utils
 		private static void IterateElements(IEnumerable<object> expected, IEnumerable<object> actual, string[] ignoredProperties = null)
 		{
 			foreach (var entry in expected.Zip(actual, Tuple.Create)) {
-				PublicPropertiesEqual(entry.Item1.GetType() ,entry.Item1, entry.Item2, ignoredProperties);
+				PublicPropertiesEqual(entry.Item1.GetType(), entry.Item1, entry.Item2, ignoredProperties);
 			}
 		}
 	}
-- 
GitLab