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));
예제 #7
0
        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%"));
        }