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");
        }
Example #3
0
        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());
        }