/// <summary> /// Calculate factors that we need to run. Put combinations into allCombinations /// </summary> private void CalculateFactors() { if (allCombinations.Count == 0) { ParameterValues = RunRToGetParameterValues(); if (ParameterValues == null || ParameterValues.Rows.Count == 0) { throw new Exception("The morris function in R returned null"); } int simulationNumber = 1; simulationNames.Clear(); foreach (DataRow parameterRow in ParameterValues.Rows) { List <FactorValue> factors = new List <FactorValue>(); foreach (Parameter param in Parameters) { object value = Convert.ToDouble(parameterRow[param.Name]); FactorValue f = new FactorValue(null, param.Name, param.Path, value); factors.Add(f); } string newSimulationName = Name + "Simulation" + simulationNumber; simulationNames.Add(newSimulationName); allCombinations.Add(factors); simulationNumber++; } } }
public ActionResult DeleteConfirmed(int id) { FactorValue factorValue = db.FactorValues.Find(id); db.FactorValues.Remove(factorValue); db.SaveChanges(); return(RedirectToAction("Index")); }
/** * Create a preview of the raw image using the scaling factor * The X and Y dimension will be both divided by the image * */ public static void CreatePreview(FactorValue factor, double viewHeight, double viewWidth, Image <ushort> image) { //image will be size of windows uint previewFactor = 0; if (factor == FactorValue.Auto) { if (image.fullSize.dim.height > image.fullSize.dim.width) { previewFactor = (uint)((image.fullSize.dim.height / viewHeight) * 0.9); } else { previewFactor = (uint)((image.fullSize.dim.width / viewWidth) * 0.9); } if (previewFactor < 1) { previewFactor = 1; } } else { previewFactor = (uint)factor; } image.preview = new ImageComponent <ushort>(new Point2D(image.fullSize.dim.width / previewFactor, image.fullSize.dim.height / previewFactor), image.fullSize.ColorDepth); uint doubleFactor = previewFactor * previewFactor; ushort maxValue = (ushort)((1 << image.fullSize.ColorDepth) - 1); //loop over each block Parallel.For(0, image.preview.dim.height, y => { var posY = (y * image.preview.dim.width); var rY = (y * previewFactor); for (int x = 0; x < image.preview.dim.width; x++) { var posX = posY + x; //find the mean of each block long r = 0, g = 0, b = 0; var rX = (x * previewFactor); for (int i = 0; i < previewFactor; i++) { long realY = (image.fullSize.dim.width * (rY + i)) + rX; for (int k = 0; k < previewFactor; k++) { long realX = realY + k; r += image.fullSize.red[realX]; g += image.fullSize.green[realX]; b += image.fullSize.blue[realX]; } } image.preview.red[posX] = (ushort)(r / doubleFactor); image.preview.green[posX] = (ushort)(g / doubleFactor); image.preview.blue[posX] = (ushort)(b / doubleFactor); } }); }
public ActionResult Edit([Bind(Include = "id,Name,FactorId,Value")] FactorValue factorValue) { if (ModelState.IsValid) { db.Entry(factorValue).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.FactorId = new SelectList(db.Factors, "id", "Name", factorValue.FactorId); return(View(factorValue)); }
public ActionResult Create([Bind(Include = "id,Name,FactorId,Value")] FactorValue factorValue) { if (ModelState.IsValid) { db.FactorValues.Add(factorValue); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.FactorId = new SelectList(db.Factors, "id", "Name", factorValue.FactorId); return(View(factorValue)); }
public void Clone_Copies_FactorValue_To_New_Clone() { var rule = this.BuildRule(); var factor = new FactorValue(ClientOrganisationalFactors.Fund, "abcd"); var clone = rule.Clone(factor); Assert.AreEqual(rule.OrganisationFactorValue.OrganisationalFactors, ClientOrganisationalFactors.None); Assert.AreEqual(rule.OrganisationFactorValue.Value, string.Empty); Assert.AreEqual(clone.OrganisationFactorValue.OrganisationalFactors, ClientOrganisationalFactors.Fund); Assert.AreEqual(clone.OrganisationFactorValue.Value, "abcd"); }
// GET: FactorValues/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FactorValue factorValue = db.FactorValues.Find(id); if (factorValue == null) { return(HttpNotFound()); } return(View(factorValue)); }
// GET: FactorValues/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FactorValue factorValue = db.FactorValues.Find(id); if (factorValue == null) { return(HttpNotFound()); } ViewBag.FactorId = new SelectList(db.Factors, "id", "Name", factorValue.FactorId); return(View(factorValue)); }
public void CloneWithFactorValueYieldsNewCloneWithSubRulesCloned() { var factorValue = new FactorValue(ClientOrganisationalFactors.Fund, "fund-a"); A.CallTo(() => this.streamRule.Clone(factorValue)).Returns(this.streamRule); A.CallTo(() => this.marketClosureRule.Clone(factorValue)).Returns(this.marketClosureRule); var rule = this.BuildRule(); var clonedRule = rule.Clone(factorValue); Assert.AreNotEqual(clonedRule, rule); Assert.AreEqual(factorValue, clonedRule.OrganisationFactorValue); A.CallTo(() => this.streamRule.Clone(factorValue)).MustHaveHappenedOnceExactly(); A.CallTo(() => this.marketClosureRule.Clone(factorValue)).MustHaveHappenedOnceExactly(); }
public override bool Equals(object obj) { var factor = (Factor)obj; if (factor == null) { return(false); } if (!FactorId.Equals(factor.FactorId)) { return(false); } if (!Dataset.Equals(factor.Dataset)) { return(false); } if (!FactorName.Equals(factor.FactorName)) { return(false); } return(FactorValue.Equals(factor.FactorValue)); }
/// <summary> /// Calculate factors that we need to run. Put combinations into allCombinations /// </summary> private void CalculateFactors() { if (allCombinations.Count == 0) { DataTable parameterValues = CalculateMorrisParameterValues(); if (parameterValues == null || parameterValues.Rows.Count == 0) { throw new Exception("The morris function in R returned null"); } foreach (DataRow parameterRow in parameterValues.Rows) { List <FactorValue> factors = new List <FactorValue>(); foreach (Parameter param in parameters) { FactorValue f = new FactorValue(null, param.Name, param.Path, parameterRow[param.Name]); factors.Add(f); } allCombinations.Add(factors); } // Work out simulation names; simulationNames.Clear(); foreach (List <FactorValue> combination in allCombinations) { string newSimulationName = Name; foreach (FactorValue value in combination) { newSimulationName += value.Name + value.Values[0]; } simulationNames.Add(newSimulationName); } } }