Esempio n. 1
0
        /// <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"));
        }
Esempio n. 3
0
        /**
         * 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));
        }
Esempio n. 6
0
        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();
        }
Esempio n. 10
0
        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));
        }
Esempio n. 11
0
        /// <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);
                }
            }
        }