public void testInitAllTables() { foreach (String id in _STAGING.getTableIds()) { StagingTable table = _STAGING.getTable(id); Assert.IsNotNull(table); Assert.IsNotNull(table.getAlgorithm()); Assert.IsNotNull(table.getVersion()); Assert.IsNotNull(table.getName()); } }
public void testExternalLoad() { Assert.AreEqual("testing", _STAGING.getAlgorithm()); Assert.AreEqual("99.99", _STAGING.getVersion()); Assert.AreEqual(1, _STAGING.getSchemaIds().Count); Assert.AreEqual(62, _STAGING.getTableIds().Count); StagingSchema schema = _STAGING.getSchema("urethra"); Assert.IsNotNull(schema); Assert.AreEqual("testing", schema.getAlgorithm()); Assert.AreEqual("99.99", schema.getVersion()); StagingTable table = _STAGING.getTable("ajcc_descriptor_codes"); Assert.IsNotNull(table); Assert.AreEqual("testing", table.getAlgorithm()); Assert.AreEqual("99.99", table.getVersion()); Assert.AreEqual(6, table.getTableRows().Count); HashSet <String> involved = _STAGING.getInvolvedTables("urethra"); Assert.AreEqual(62, involved.Count); Assert.IsTrue(involved.Contains("mets_eval_ipa")); StagingData data = new StagingData(); data.setInput("site", "C680"); data.setInput("hist", "8000"); data.setInput("behavior", "3"); data.setInput("grade", "9"); data.setInput("year_dx", "2013"); data.setInput("cs_input_version_original", "020550"); data.setInput("extension", "100"); data.setInput("extension_eval", "9"); data.setInput("nodes", "100"); data.setInput("nodes_eval", "9"); data.setInput("mets", "10"); data.setInput("mets_eval", "9"); // perform the staging _STAGING.stage(data); Assert.AreEqual(StagingData.Result.STAGED, data.getResult()); Assert.AreEqual("urethra", data.getSchemaId()); Assert.AreEqual(0, data.getErrors().Count); Assert.AreEqual(37, data.getPath().Count); // check output Assert.AreEqual("129", data.getOutput("schema_number")); Assert.AreEqual("020550", data.getOutput("csver_derived")); // AJCC 6 Assert.AreEqual("70", data.getOutput("stor_ajcc6_stage")); // AJCC 7 Assert.AreEqual("700", data.getOutput("stor_ajcc7_stage")); // Summary Stage Assert.AreEqual("7", data.getOutput("stor_ss77")); Assert.AreEqual("7", data.getOutput("stor_ss2000")); }
// Initialize data provider private void init(Stream inStream) { HashSet <String> algorithms = new HashSet <String>(); HashSet <String> versions = new HashSet <String>(); using (ZipArchive archive = new ZipArchive(inStream, ZipArchiveMode.Read)) { foreach (ZipArchiveEntry entry in archive.Entries) { if ((entry.Name.Length == 0) || (!entry.Name.EndsWith(".json"))) { continue; } if (entry.FullName.StartsWith("tables")) { String s = extractEntry(entry); StagingTable table = new StagingTable(); table = Newtonsoft.Json.JsonConvert.DeserializeObject <StagingTable>(s); if (DebugSettings.DEBUG_LOADED_TABLES) { Debug.WriteLine("Table: "); Debug.WriteLine(table.GetDebugString(" ")); } initTable(table); algorithms.Add(table.getAlgorithm()); versions.Add(table.getVersion()); _tables[table.getId()] = table; } else if (entry.FullName.StartsWith("schemas")) { String s = extractEntry(entry); StagingSchema schema = new StagingSchema(); schema = Newtonsoft.Json.JsonConvert.DeserializeObject <StagingSchema>(s); if (DebugSettings.DEBUG_LOADED_SCHEMAS) { Debug.WriteLine("Schema: "); Debug.WriteLine(schema.GetDebugString(" ")); } initSchema(schema); algorithms.Add(schema.getAlgorithm()); versions.Add(schema.getVersion()); _schemas[schema.getId()] = schema; } } } // verify that all the algorithm names and versions are consistent if (algorithms.Count != 1) { throw new System.InvalidOperationException("Error initializing provider; only a single algorithm should be included in file"); } if (versions.Count != 1) { throw new System.InvalidOperationException("Error initializing provider; only a single version should be included in file"); } HashSet <String> .Enumerator enumAlg = algorithms.GetEnumerator(); HashSet <String> .Enumerator enumVer = versions.GetEnumerator(); enumAlg.MoveNext(); enumVer.MoveNext(); _algorithm = enumAlg.Current; _version = enumVer.Current; GenerateSchemaIds(); GenerateTableIds(); // finally, initialize any caches now that everything else has been set up invalidateCache(); }