public void testTableRowParsing() { StagingTable table = new StagingTable(); table.setId("test_table"); table.setColumnDefinitions(new List <IColumnDefinition>() { new StagingColumnDefinition("key1", "Input 1", ColumnType.INPUT) }); table.setRawRows(new List <List <String> >()); table.getRawRows().Add(new List <String>() { ",1,2,3" }); table.getRawRows().Add(new List <String>() { "1,2,3," }); StagingDataProvider.initTable(table); Assert.AreEqual(2, table.getTableRows().Count); //StagingTableRow List <ITableRow> tablerows = table.getTableRows(); StagingTableRow row = (tablerows[0] as StagingTableRow); Assert.AreEqual(4, row.getInputs()["key1"].Count); row = (tablerows[1] as StagingTableRow); Assert.AreEqual(4, row.getInputs()["key1"].Count); }
public void testPadStart() { Assert.IsNull(StagingDataProvider.padStart(null, 1, '0')); Assert.AreEqual(StagingDataProvider.padStart("123", 1, '0'), "123"); Assert.AreEqual(StagingDataProvider.padStart("123", 3, '0'), "123"); Assert.AreEqual(StagingDataProvider.padStart("123", 4, '0'), "0123"); Assert.AreEqual(StagingDataProvider.padStart("1", 5, '0'), "00001"); }
public void testCachedSiteAndHistology() { StagingDataProvider provider = getProvider(); Assert.IsTrue(provider.getValidSites().Count > 0); Assert.IsTrue(provider.getValidHistologies().Count > 0); // site tests List <String> validSites = new List <String>() { "C000", "C809" }; List <String> invalidSites = new List <String>() { "C727", "C810" }; foreach (String site in validSites) { Assert.IsTrue(provider.getValidSites().Contains(site)); } foreach (String site in invalidSites) { Assert.IsFalse(provider.getValidSites().Contains(site)); } // hist tests List <String> validHist = new List <String>() { "8000", "8002", "8005", "8290", "9992" }; List <String> invalidHist = new List <String>() { "8006", "9993" }; foreach (String hist in validHist) { Assert.IsTrue(provider.getValidHistologies().Contains(hist)); } foreach (String hist in invalidHist) { Assert.IsFalse(provider.getValidHistologies().Contains(hist)); } }
public void testSplitValues() { Assert.AreEqual(0, StagingDataProvider.splitValues(null).Count); Assert.AreEqual(1, StagingDataProvider.splitValues("").Count); Assert.AreEqual(1, StagingDataProvider.splitValues("*").Count); Assert.AreEqual(1, StagingDataProvider.splitValues("1 2 3").Count); Assert.AreEqual(1, StagingDataProvider.splitValues("23589258625086").Count); Assert.AreEqual(2, StagingDataProvider.splitValues("A,B").Count); Assert.AreEqual(2, StagingDataProvider.splitValues(" A , B ").Count); Assert.AreEqual(2, StagingDataProvider.splitValues("A , B").Count); Assert.AreEqual(10, StagingDataProvider.splitValues("A,B,C,D,E,F,G,H,I,J").Count); List <Range> ranges = StagingDataProvider.splitValues(",1,2,3,4"); Assert.AreEqual(5, ranges.Count); Assert.AreEqual("", ranges[0].getLow()); Assert.AreEqual("", ranges[0].getHigh()); ranges = StagingDataProvider.splitValues(" ,1,2,3,4"); Assert.AreEqual(5, ranges.Count); Assert.AreEqual("", ranges[0].getLow()); Assert.AreEqual("", ranges[0].getHigh()); ranges = StagingDataProvider.splitValues("1,2,3,4,"); Assert.AreEqual(5, ranges.Count); Assert.AreEqual("", ranges[4].getLow()); Assert.AreEqual("", ranges[4].getHigh()); ranges = StagingDataProvider.splitValues("1,2,3,4, "); Assert.AreEqual(5, ranges.Count); Assert.AreEqual("", ranges[4].getLow()); Assert.AreEqual("", ranges[4].getHigh()); ranges = StagingDataProvider.splitValues("1,11,111-222"); Assert.AreEqual(3, ranges.Count); Assert.AreEqual("1", ranges[0].getLow()); Assert.AreEqual("1", ranges[0].getHigh()); Assert.AreEqual("11", ranges[1].getLow()); Assert.AreEqual("11", ranges[1].getHigh()); Assert.AreEqual("111", ranges[2].getLow()); Assert.AreEqual("222", ranges[2].getHigh()); ranges = StagingDataProvider.splitValues("88,90-95,99"); Assert.AreEqual(3, ranges.Count); Assert.AreEqual("88", ranges[0].getLow()); Assert.AreEqual("88", ranges[0].getHigh()); Assert.AreEqual("90", ranges[1].getLow()); Assert.AreEqual("95", ranges[1].getHigh()); Assert.AreEqual("99", ranges[2].getLow()); Assert.AreEqual("99", ranges[2].getHigh()); ranges = StagingDataProvider.splitValues("p0I-"); Assert.AreEqual(1, ranges.Count); Assert.AreEqual("p0I-", ranges[0].getLow()); Assert.AreEqual("p0I-", ranges[0].getHigh()); ranges = StagingDataProvider.splitValues("N0(mol-)"); Assert.AreEqual(1, ranges.Count); Assert.AreEqual("N0(mol-)", ranges[0].getLow()); Assert.AreEqual("N0(mol-)", ranges[0].getHigh()); // test numeric ranges ranges = StagingDataProvider.splitValues("1-21"); Assert.AreEqual(1, ranges.Count); Assert.AreEqual("1", ranges[0].getLow()); Assert.AreEqual("21", ranges[0].getHigh()); ranges = StagingDataProvider.splitValues("21-111"); Assert.AreEqual(1, ranges.Count); Assert.AreEqual("21", ranges[0].getLow()); Assert.AreEqual("111", ranges[0].getHigh()); }
public void testExtraInput() { StagingTable table = new StagingTable(); table.setId("test_table"); StagingColumnDefinition def1 = new StagingColumnDefinition(); def1.setKey("input1"); def1.setName("Input 1"); def1.setType(ColumnType.INPUT); StagingColumnDefinition def2 = new StagingColumnDefinition(); def2.setKey("result1"); def2.setName("Result1"); def2.setType(ColumnType.ENDPOINT); table.setColumnDefinitions(new List <IColumnDefinition>() { def1, def2 }); table.setRawRows(new List <List <String> >()); table.getRawRows().Add(new List <String>() { "1", "MATCH" }); table.getRawRows().Add(new List <String>() { "2", "VALUE:{{extra1}}" }); table.getRawRows().Add(new List <String>() { "{{extra2}}", "MATCH" }); table.getRawRows().Add(new List <String>() { "{{ctx_year_current}}", "MATCH" }); table.getRawRows().Add(new List <String>() { "5", "VALUE:{{ctx_year_current}}" }); table.getRawRows().Add(new List <String>() { "6", "MATCH:{{match_extra}}" }); table.getRawRows().Add(new List <String>() { "7", "ERROR:{{error_extra}}" }); StagingDataProvider.initTable(table); HashSet <String> hash1 = new HashSet <String>() { "extra1", "extra2" }; HashSet <String> hash2 = table.getExtraInput(); // since context variables are not user-supplied, they should not be included in the extra input Assert.IsTrue(hash1.SetEquals(hash2)); table.setRawRows(new List <List <String> >()); table.getRawRows().Add(new List <String>() { "{{ctx_year_current}}", "MATCH" }); StagingDataProvider.initTable(table); Assert.IsNull(table.getExtraInput()); }