public void TestCaltransBad() { string errorMessage = null; string warningMessage = null; string csvFilePath = @"C:\Projects\NCHRP 08-103\CALTRANS_PROJECTS.csv"; string xmlFilePath = @"C:\Projects\NCHRP 08-103\CALTRANS_PROJECTS.xml"; DEAContext context = new DEAContext("DEAContext", "Project"); bool ok = context.AddVariable("Cost", "I", out errorMessage); if (ok) { ok = context.AddVariable("Goal 1", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Goal 2", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Goal 3", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Goal 4", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Goal 5", "O", out errorMessage); } if (ok) { ok = context.UploadCsvFile(csvFilePath, out warningMessage, out errorMessage); } if (ok) { ok = context.RunDEA(out errorMessage); } if (ok) { ok = context.SaveToXmlFile(xmlFilePath, out errorMessage); } Assert.IsTrue(ok, errorMessage); }
public void TestVADataUnconstrained() { string errorMessage = null; string warningMessage = null; string csvFilePath = @"C:\Projects\NCHRP 08-103\VA_TEST.csv"; string xmlFilePath = @"C:\Projects\NCHRP 08-103\VA_TEST.xml"; string xmlFilePath2 = @"C:\Projects\NCHRP 08-103\VA_TEST-2.xml"; bool ok = true; DEAContext context = new DEAContext("DEAContext", "Project"); ok = context.AddVariable("Cost", "I", 1.0e-6, out errorMessage); if (ok) { ok = context.AddVariable("Congestion", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Safety", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Accessibility", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Environmental Quality", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Economic Development", "O", out errorMessage); } if (ok) { ok = context.AddVariable("Land Use", "O", out errorMessage); } if (ok) { ok = context.UploadCsvFile(csvFilePath, out warningMessage, out errorMessage); } if (ok) { ok = context.RunDEA(out errorMessage); } /* * if (ok) * { * ok = context.AddCostConstraint("STOCK", 27.0, out errorMessage); * if (ok) * ok = context.AddCostConstraint("WAGES", 40, out errorMessage); * } * * if (ok) * { * ok = context.ApplyCostConstraintsToProjectSelection(out errorMessage); * } */ Assert.IsTrue(ok, errorMessage); if (ok) { DataSet ds = context.ToDataSet(out errorMessage); Assert.IsNotNull(ds, errorMessage); ok = ds != null; } if (ok) { ok = context.SaveToXmlFile(xmlFilePath, out errorMessage); Assert.IsTrue(ok, errorMessage); } if (ok) { DEAContext context2 = DEAContext.CreateFromXmlFile(xmlFilePath, out errorMessage); Assert.IsNotNull(context2, errorMessage); if (context2 != null) { ok = context2.SaveToXmlFile(xmlFilePath2, out errorMessage); Assert.IsTrue(ok, errorMessage); } } if (ok) { string json = context.ToJsonString(out errorMessage); Assert.IsNotNull(json, errorMessage); } }
public void TestVACsvDataUnconstrained() { string errorMessage = null; string warningMessage = null; string csvFilePath = @"C:\Projects\NCHRP 08-103\VA_TEST_PROJECTS.csv"; string csvConstFilePath = @"C:\Projects\NCHRP 08-103\VA_TEST_CONSTRAINTS.csv"; string csvVarFilePath = @"C:\Projects\NCHRP 08-103\VA_TEST_VARIABLES.csv"; string xmlFilePath = @"C:\Projects\NCHRP 08-103\VA_TEST-3.xml"; string xmlFilePath2 = @"C:\Projects\NCHRP 08-103\VA_TEST-4.xml"; bool ok = true; DEAContext context = new DEAContext("DEAContext", "Project"); ok = context.LoadVariablesFromCsvFile(csvVarFilePath, out errorMessage); if (ok) { ok = context.UploadCsvFile(csvFilePath, out warningMessage, out errorMessage); } if (ok) { ok = context.LoadCsvConstraints(csvConstFilePath, out errorMessage); } if (ok) { ok = context.RunDEA(out errorMessage); } if (ok) { ok = context.ApplyCostConstraintsToProjectSelection(out errorMessage); } Assert.IsTrue(ok, errorMessage); if (ok) { DataSet ds = context.ToDataSet(out errorMessage); Assert.IsNotNull(ds, errorMessage); ok = ds != null; } if (ok) { ok = context.SaveToXmlFile(xmlFilePath, out errorMessage); Assert.IsTrue(ok, errorMessage); } if (ok) { DEAContext context2 = DEAContext.CreateFromXmlFile(xmlFilePath, out errorMessage); Assert.IsNotNull(context2, errorMessage); if (context2 != null) { ok = context2.SaveToXmlFile(xmlFilePath2, out errorMessage); Assert.IsTrue(ok, errorMessage); } } if (ok) { string json = context.ToJsonString(out errorMessage); Assert.IsNotNull(json, errorMessage); } }
public void Test20DepotsConstrainedWeights() { string errorMessage = null; string warningMessage = null; string csvFilePath = @"C:\Projects\NCHRP 08-103\DEA-Example-20-depots.csv"; string xmlFilePath = @"C:\Projects\NCHRP 08-103\DEA-Example-20-depots.xml"; string xmlFilePath2 = @"C:\Projects\NCHRP 08-103\DEA-Example-20-depots-2.xml"; bool ok = true; DEAContext context = new DEAContext("DEAContext", "Depot"); ok = context.AddVariable("STOCK", "I", out errorMessage); if (ok) { ok = context.AddVariable("WAGES", "I", out errorMessage); } if (ok) { ok = context.AddVariable("ISSUES", "O", 0.0, 1.0, out errorMessage); } if (ok) { ok = context.AddVariable("RECEIPTS", "O", 0.0, 1.0, out errorMessage); } if (ok) { ok = context.AddVariable("REQS", "O", 0.0, 1.0, out errorMessage); } if (ok) { ok = context.UploadCsvFile(csvFilePath, out warningMessage, out errorMessage); } if (ok) { ok = context.RunDEA(out errorMessage); } if (ok) { ok = context.AddCostConstraint("STOCK", 27.0, out errorMessage); if (ok) { ok = context.AddCostConstraint("WAGES", 40, out errorMessage); } } if (ok) { ok = context.ApplyCostConstraintsToProjectSelection(out errorMessage); } Assert.IsTrue(ok, errorMessage); if (ok) { DataSet ds = context.ToDataSet(out errorMessage); Assert.IsNotNull(ds, errorMessage); ok = ds != null; } if (ok) { ok = context.SaveToXmlFile(xmlFilePath, out errorMessage); Assert.IsTrue(ok, errorMessage); } if (ok) { DEAContext context2 = DEAContext.CreateFromXmlFile(xmlFilePath, out errorMessage); Assert.IsNotNull(context2, errorMessage); if (context2 != null) { ok = context2.SaveToXmlFile(xmlFilePath2, out errorMessage); Assert.IsTrue(ok, errorMessage); } } if (ok) { string json = context.ToJsonString(out errorMessage); Assert.IsNotNull(json, errorMessage); } }
public void TestJsonSerializationInRequestMode() { string errorMessage = null; string warningMessage = null; string csvFilePath = @"C:\Projects\NCHRP 08-103\DEA-Example-20-depots.csv"; string xmlFilePath = @"C:\Projects\NCHRP 08-103\DEA-Example-20-depots-6.xml"; bool ok = true; DEAContext context = new DEAContext("DEAContext", "Depot"); ok = context.AddVariable("STOCK", "I", 1.0, out errorMessage); if (ok) { ok = context.AddVariable("WAGES", "I", 1.0, out errorMessage); } if (ok) { ok = context.AddVariable("ISSUES", "O", 1.0, out errorMessage); } if (ok) { ok = context.AddVariable("RECEIPTS", "O", 1.0, out errorMessage); } if (ok) { ok = context.AddVariable("REQS", "O", 1.0, out errorMessage); } if (ok) { ok = context.UploadCsvFile(csvFilePath, out warningMessage, out errorMessage); } if (ok) { string json = context.ToJsonString(out errorMessage); Assert.IsNotNull(json, errorMessage); if (json != null) { DEAContext context2 = DEAContext.CreateFromJsonString(json, out errorMessage); Assert.IsNotNull(context2, errorMessage); ok = (context2 != null); if (ok) { ok = context2.RunDEA(out errorMessage); } if (ok) { ok = context2.AddCostConstraint("STOCK", 27.0, out errorMessage); if (ok) { ok = context2.AddCostConstraint("WAGES", 40, out errorMessage); } } if (ok) { ok = context2.ApplyCostConstraintsToProjectSelection(out errorMessage); } if (ok) { ok = context2.SaveToXmlFile(xmlFilePath, out errorMessage); } Assert.IsTrue(ok, errorMessage); } } }
public Stream RunDEAnalysis(Stream request) { bool ok = true; string errorMessage = null; DEAContext context = null; string jsonRequest = null; string jsonResponse = null; const string fn = "RunDEAnalysis"; LOG.DebugFormat("{0} - started", fn); UriTemplateMatch utm = WebOperationContext.Current.IncomingRequest.UriTemplateMatch; LOG.Debug(utm.RequestUri.OriginalString); try { using (StreamReader reader = new StreamReader(request)) { jsonRequest = reader.ReadToEnd(); } LOG.DebugFormat("Request: {0}", jsonRequest); context = DEAContext.CreateFromJsonString(jsonRequest, out errorMessage); ok = (context != null); if (ok) { ok = context.RunDEA(out errorMessage); if (ok && context.ConstraintsSet) { ok = context.ApplyCostConstraintsToProjectSelection(out errorMessage); } if (ok) { jsonResponse = context.ToJsonString(out errorMessage); ok = (jsonResponse != null); } } } catch (Exception ex) { ok = false; errorMessage = ex.Message; } DEAResponse response = new DEAResponse(); response.OK = ok; response.errorMessage = errorMessage; response.context = context; jsonResponse = JsonConvert.SerializeObject(response, Formatting.Indented); LOG.DebugFormat("Response: {0}", jsonResponse); Stream ms = new MemoryStream(ASCIIEncoding.Default.GetBytes(s: jsonResponse)); LOG.DebugFormat("{0} - ended", fn); return(ms); }