public void CsvComparisonErrorsMissingTest() { var expectedCsv = CsvTable.Parse("SimpleExpected.csv"); var actualCsv = CsvTable.Parse("SimpleActualMissing.csv"); var comparison = new CsvComparison(expectedCsv, actualCsv, Tolerance.Parse("2%;0.001")); var expected = comparison.ExpectedTable; Assert.AreEqual(2, expected.RowCount, "Expected RowCount"); var actual = comparison.ActualTable; Assert.AreEqual(1, actual.RowCount, "Actual RowCount"); Assert.AreEqual(4, comparison.ErrorCount(), "Error Count = 2"); var query = comparison.Query(); var errorRow = query[0] as Collection <object>; Assert.AreEqual("B1", QueryValue(errorRow, "Cell")); Assert.AreEqual("Missing", QueryValue(errorRow, "Issue")); errorRow = query[1] as Collection <object>; Assert.AreEqual("B2", QueryValue(errorRow, "Cell")); Assert.AreEqual("Missing", QueryValue(errorRow, "Issue")); errorRow = query[2] as Collection <object>; Assert.AreEqual("A3", QueryValue(errorRow, "Cell")); Assert.AreEqual("Missing", QueryValue(errorRow, "Issue")); errorRow = query[3] as Collection <object>; Assert.AreEqual("B3", QueryValue(errorRow, "Cell")); Assert.AreEqual("Missing", QueryValue(errorRow, "Issue")); }
public void CsvComparisonWrongHeaderTest() { var desiredHeaders = new Collection <Collection <object> > { new Collection <object> { "Wrong" } }; var csvComparison = new CsvComparison(null, null, null); var _ = csvComparison.DoTable(desiredHeaders); }
public void CsvComparisonDifferenceQueryTest() { var baseTable = CreateTestTable("100.0", "100.0", "100.0", "100.0"); var compareTable = CreateTestTable("102.1", "100.5", "97.5", "105.1"); var csvComparison2 = new CsvComparison(baseTable, compareTable, Tolerance.Parse("2%")); Assert.AreEqual(3, csvComparison2.ErrorCount(), "Error count 2%"); var csvComparison5 = new CsvComparison(baseTable, compareTable, Tolerance.Parse("5%")); Assert.AreEqual(1, csvComparison5.ErrorCount(), "Error count 5%"); var difference = new CsvComparisonDifference(csvComparison2, csvComparison5); Assert.AreEqual(2, difference.ErrorCount, "Error Count difference"); var expectedDifference = new List <List <string> > { new List <string> { "B2", "2", "Attr1", "2 (B)", "Stream1", "102.1 != 100", "2.1" }, new List <string> { "B4", "4", "Attr3", "2 (B)", "Stream1", "97.5 != 100", "2.5" } }; var i = 0; foreach (Collection <object> row in difference.Query()) { Assert.AreEqual(expectedDifference[i][0], CsvComparisonTest.QueryValue(row, "Cell"), $"Query Entry #{i}.Cell"); Assert.AreEqual(expectedDifference[i][1], CsvComparisonTest.QueryValue(row, "Row No"), $"Query Entry #{i}.RowNo"); Assert.AreEqual(expectedDifference[i][2], CsvComparisonTest.QueryValue(row, "Row Name"), $"Query Entry #{i}.Row"); Assert.AreEqual(expectedDifference[i][3], CsvComparisonTest.QueryValue(row, "Column No"), $"Query Entry #{i}.ColumnNo"); Assert.AreEqual(expectedDifference[i][4], CsvComparisonTest.QueryValue(row, "Column Name"), $"Query Entry #{i}.Column"); Assert.AreEqual(expectedDifference[i][5], CsvComparisonTest.QueryValue(row, "Value"), $"Query Entry #{i}.Value"); Assert.AreEqual(expectedDifference[i][6], CsvComparisonTest.QueryValue(row, "Delta"), $"Query Entry #{i}.Delta"); i++; } i = 0; foreach (Collection <object> row in difference.DoTable(null).Skip(1)) { Assert.AreEqual("report:" + expectedDifference[i][0], row[0], $"Table Entry #{i}.Cell"); Assert.AreEqual("report:" + expectedDifference[i][1], row[1], $"Table Entry #{i}.RowNo"); Assert.AreEqual("report:" + expectedDifference[i][2], row[2], $"Table Entry #{i}.Row"); Assert.AreEqual("report:" + expectedDifference[i][3], row[3], $"Table Entry #{i}.ColumnNo"); Assert.AreEqual("report:" + expectedDifference[i][4], row[4], $"Table Entry #{i}.Column"); Assert.AreEqual("fail:" + expectedDifference[i][5], row[5], $"Table Entry #{i}.Value"); Assert.AreEqual("fail:" + expectedDifference[i][6], row[6], $"Table Entry #{i}.Delta"); i++; } Assert.AreEqual(expectedDifference.Count, difference.ErrorCount, "Table ErrorCount"); }
public void CsvComparisonErrorsSurplusTest() { var expectedCsv = CsvTable.Parse("SimpleExpected.csv"); var actualCsv = CsvTable.Parse("SimpleActualSurplus.csv"); var comparison = new CsvComparison(expectedCsv, actualCsv, Tolerance.Parse("2%;0.001")); Assert.AreEqual(3, comparison.ErrorCount(), "Error Count = 3"); var query = comparison.Query(); var errorRow = query[0] as Collection <object>; Assert.AreEqual("C1", QueryValue(errorRow, "Cell")); Assert.AreEqual("Surplus", QueryValue(errorRow, "Issue")); errorRow = query[1] as Collection <object>; Assert.AreEqual("C2", QueryValue(errorRow, "Cell")); Assert.AreEqual("Surplus", QueryValue(errorRow, "Issue")); errorRow = query[2] as Collection <object>; Assert.AreEqual("A4", QueryValue(errorRow, "Cell")); Assert.AreEqual("Surplus", QueryValue(errorRow, "Issue")); }
public void CsvComparisonErrorsStreamDataTest() { var baseCsv = CsvTable.Parse("StreamData1.csv"); Console.WriteLine($"Base: columns={baseCsv.ColumnCount}; rows={baseCsv.RowCount}"); var newCsv = CsvTable.Parse("StreamData2.csv"); Console.WriteLine($"New: columns={newCsv.ColumnCount}; rows={newCsv.RowCount}"); var comparison = new CsvComparison(baseCsv, newCsv, Tolerance.Parse("2%;0.001")); Assert.AreEqual(1, comparison.ErrorCount(), "Error Count = 1"); var query = comparison.Query(); var errorRow = query[0] as Collection <object>; Assert.AreEqual("H2", QueryValue(errorRow, "Cell")); Assert.AreEqual("2", QueryValue(errorRow, "Row No")); Assert.AreEqual("Total Liquid Mole Fraction", QueryValue(errorRow, "Row Name")); Assert.AreEqual("8 (H)", QueryValue(errorRow, "Column No")); Assert.AreEqual("A11", QueryValue(errorRow, "Column Name")); Assert.AreEqual("0.01 != 0", QueryValue(errorRow, "Value")); Assert.AreEqual("0.01", QueryValue(errorRow, "Delta")); Assert.IsTrue(string.IsNullOrEmpty(QueryValue(errorRow, "Delta %").ToString())); }
public void CsvComparisonParseExists() => Assert.IsNull(CsvComparison.Parse(null));
public void TestInitialize() { _baseHeaders = new[] { "Key", "Stream1", "Stream2", "Stream3" }; _baseData = new Collection <string[]> { new[] { "Attr1", "1.0", "100", "3.9E+03" }, new[] { "Attr2", "2.0", "n/a", "n/a" }, new[] { "Attr3", "", "Vapor", "Liquid" } }; _baseTable = new CsvTable(_baseHeaders); foreach (var entry in _baseData) { _baseTable.Data.Add(entry); } _actualHeaders = new[] { "Key", "Stream1", "Stream2" }; _actualdata = new Collection <string[]> { new[] { "Attr1", "1.0", "101.1" }, new[] { "Attr4", "n/a", "0" } }; _expectedResult = new List <List <string> > { new List <string> { "D1", "1", "Key", "4 (D)", "Stream3", "[Stream3] missing", "" }, new List <string> { "C2", "2", "Attr1", "3 (C)", "Stream2", "101.1 != 100", "1.1 %" }, new List <string> { "D2", "2", "Attr1", "4 (D)", "Stream3", "[3900] missing", "" }, new List <string> { "A3", "3", "Attr2", "1 (A)", "Key", "[Attr4] expected [Attr2]", "" }, new List <string> { "B3", "3", "Attr2", "2 (B)", "Stream1", "[n/a] expected [2]", "" }, new List <string> { "C3", "3", "Attr2", "3 (C)", "Stream2", "[0] expected [n/a]", "" }, new List <string> { "D3", "3", "Attr2", "4 (D)", "Stream3", "[n/a] missing", "" }, new List <string> { "A4", "4", "Attr3", "1 (A)", "Key", "[Attr3] missing", "" }, new List <string> { "B4", "4", "Attr3", "2 (B)", "Stream1", "[] missing", "" }, new List <string> { "C4", "4", "Attr3", "3 (C)", "Stream2", "[Vapor] missing", "" }, new List <string> { "D4", "4", "Attr3", "4 (D)", "Stream3", "[Liquid] missing", "" } }; _actualTable = new CsvTable(_actualHeaders); foreach (var entry in _actualdata) { _actualTable.Data.Add(entry); } _csvComparison = new CsvComparison(_baseTable, _actualTable, Tolerance.Parse("1%")); }