Ejemplo n.º 1
0
        // calculate all mid positions, using the structure of the class MidPoint
        public MidPoint[,] calculate_mid_positions(MidPoint[,] pos)
        {
            int zStart = 50;  // z-axis beginning
            int xStart = -50; // x-axis beginning

            // world representation of 10 x 10 areas
            for (int z = 0; z < 10; z++)
            {
                for (int x = 0; x < 10; x++)
                {
                    Point checking_mid_point = new Point {
                        x_coord = xStart + 5, z_coord = zStart - 5
                    };

                    MidPoint new_mid_point = new MidPoint
                    {
                        x_index    = x,
                        z_index    = z,
                        x_position = (xStart + 5),
                        z_position = (zStart - 5),
                        type       = getObstacleType(checking_mid_point)
                    };

                    pos[x, z] = new_mid_point;

                    xStart = xStart + 10;
                }

                xStart = -50;
                zStart = zStart - 10;
            }

            return(pos);
        }
Ejemplo n.º 2
0
        public void CheckParametersTest()
        {
            var configString = @"{""solver"":""MID"",""midpoint"":{""epsilon"": -1}}";

            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            var         modelInfo = EmodlLoader.LoadEMODLFile("resources//testmodelTau.emodl");
            const float duration  = 6.28318531f;
            const int   repeats   = 42;
            const int   samples   = 100;

            try
            {
                var unused = new MidPoint(modelInfo, duration, repeats, samples);
                Assert.Fail();
            }
            catch (ApplicationException ex)
            {
                Assert.That(ex.GetBaseException().ToString(), Is.StringContaining("Epsilon was set to less than or equal to zero."));
            }

            configString = @"{""solver"":""MID"",""midpoint"":{""Nc"": -1}}";
            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            try
            {
                var unused = new MidPoint(modelInfo, duration, repeats, samples);
                Assert.Fail();
            }
            catch (ApplicationException ex)
            {
                Assert.That(ex.GetBaseException().ToString(), Is.StringContaining("Nc was et to less than zero or equal to zero."));
            }

            configString = @"{""solver"":""MID"",""midpoint"":{""Multiple"": -1}}";
            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            try
            {
                var unused = new MidPoint(modelInfo, duration, repeats, samples);
                Assert.Fail();
            }
            catch (ApplicationException ex)
            {
                Assert.That(ex.GetBaseException().ToString(), Is.StringContaining("Multiple was set to less than or equal to zero."));
            }

            configString = @"{""solver"":""MID"",""midpoint"":{""SSARuns"": 0}}";
            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            try
            {
                var unused = new MidPoint(modelInfo, duration, repeats, samples);
                Assert.Fail();
            }
            catch (ApplicationException ex)
            {
                Assert.That(ex.GetBaseException().ToString(), Is.StringContaining("SSAruns was set to less than one."));
            }
        }
Ejemplo n.º 3
0
 // Use this for initialization
 void Start()
 {
     body = GetComponent <Rigidbody>();
     if (springConnection != null)
     {
         mid = springConnection.GetComponent <MidPoint>();
     }
 }
Ejemplo n.º 4
0
        public ActionResult DeleteConfirmed(int id)
        {
            MidPoint midPoint = db.MidPoints.Find(id);

            db.MidPoints.Remove(midPoint);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 5
0
        public static MidPoint CreateMidPoint(Drawing drawing, IList <IFigure> dependencies)
        {
            var result = new MidPoint()
            {
                Drawing = drawing, Dependencies = dependencies
            };

            return(result);
        }
Ejemplo n.º 6
0
 public ActionResult Edit([Bind(Include = "MidPointID,MidPointName,MidPointLatitude,MidPointLongitude")] MidPoint midPoint)
 {
     if (ModelState.IsValid)
     {
         db.Entry(midPoint).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(midPoint));
 }
Ejemplo n.º 7
0
        public ActionResult Create([Bind(Include = "MidPointID,MidPointName,MidPointLatitude,MidPointLongitude")] MidPoint midPoint)
        {
            if (ModelState.IsValid)
            {
                db.MidPoints.Add(midPoint);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(midPoint));
        }
Ejemplo n.º 8
0
        public IHttpActionResult GetMidPoint(int id)
        {
            MidPoint midPoint = db.MidPoints.Find(id);

            if (midPoint == null)
            {
                return(NotFound());
            }

            return(Ok(midPoint));
        }
Ejemplo n.º 9
0
        private static MidPoint InstantiateSolver()
        {
            const string configString = @"{""solver"":""MID""}";

            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            ModelInfo modelInfo = EmodlLoader.LoadEMODLFile("resources//testmodel.emodl");
            var       solver    = new MidPoint(modelInfo, 6.28318531f, 42, 100);

            return(solver);
        }
Ejemplo n.º 10
0
        public void TestFireReaction()
        {
            SpeciesDescription info1;
            SpeciesMP          reactant1;

            CreateSpeciesInfoAndSpecies("reactant1", 10, out info1, out reactant1);
            SpeciesDescription info2;
            SpeciesMP          reactant2;

            CreateSpeciesInfoAndSpecies("reactant2", 40, out info2, out reactant2);
            SpeciesDescription info3;
            SpeciesMP          product1;

            CreateSpeciesInfoAndSpecies("product1", 90, out info3, out product1);
            float rate = 1;

            Reaction reaction = CreateReaction(info1, reactant1, info2, reactant2, info3, product1, rate);

            MidPoint solver = InstantiateSolver();

            // Partial, exploratory leap
            solver.FireReaction(reaction, 0.25f);
            Assert.AreEqual(9.75f, reactant1.Value);
            Assert.AreEqual(39.75f, reactant2.Value);
            Assert.AreEqual(90.25f, product1.Value);

            // Finish leap
            solver.FireReaction(reaction, 0.75f);
            Assert.AreEqual(9, reactant1.Count);
            Assert.AreEqual(39, reactant2.Count);
            Assert.AreEqual(91, product1.Count);

            // Partial, exploratory leap
            solver.FireReaction(reaction, 4.5f);
            Assert.AreEqual(4.5f, reactant1.Value);
            Assert.AreEqual(34.5f, reactant2.Value);
            Assert.AreEqual(95.5f, product1.Value);

            // Undo part of the leap
            solver.FireReaction(reaction, -1.5f);
            Assert.AreEqual(6, reactant1.Count);
            Assert.AreEqual(36, reactant2.Count);
            Assert.AreEqual(94, product1.Count);

            // Test using a fractional number that can not be exactly represented by a binary/floating point

            var change = (float)(1.0 / 3.0);

            solver.FireReaction(reaction, change);
            Assert.AreEqual(5.66666651f, reactant1.Value);
            Assert.AreEqual(35.66666651f, reactant2.Value);
            Assert.AreEqual(94.3333359f, product1.Value);
        }
Ejemplo n.º 11
0
        public void TestToString()
        {
            const string configString = @"{""solver"":""MID""}";

            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            ModelInfo   modelInfo = EmodlLoader.LoadEMODLFile("resources\\testmodel.emodl");
            const float duration  = 6.28318531f;
            const int   repeats   = 42;
            const int   samples   = 100;
            var         solver    = new MidPoint(modelInfo, duration, repeats, samples);

            Assert.AreEqual("Mid-Point", solver.ToString());
        }
Ejemplo n.º 12
0
        // GET: MidPoints/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            MidPoint midPoint = db.MidPoints.Find(id);

            if (midPoint == null)
            {
                return(HttpNotFound());
            }
            return(View(midPoint));
        }
Ejemplo n.º 13
0
        public void TestCatchNaNPropensityMidpoint()
        {
            const string configString = @"{""solver"":""MidPoint""}";

            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            ModelInfo    modelInfo = EmodlLoader.LoadEMODLFile("resources\\nanpropensity.emodl");
            const double duration  = 6.28318531;
            const int    repeats   = 42;
            const int    samples   = 100;
            var          solver    = new MidPoint(modelInfo, duration, repeats, samples);

            solver.Solve();

            Assert.Fail("Execution should fail on reaction propensity evaluates to NaN.");
        }
Ejemplo n.º 14
0
        public void TestMidPointConstructorWithDefaults()
        {
            const string configString = @"{""solver"":""MID""}";

            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            ModelInfo    modelInfo = EmodlLoader.LoadEMODLFile("resources\\testmodel.emodl");
            const double duration  = 6.28318531;
            const int    repeats   = 42;
            const int    samples   = 100;
            var          solver    = new MidPoint(modelInfo, duration, repeats, samples);

            Assert.AreEqual(0.01, ReflectionUtility.GetHiddenField <double>("epsilon", solver));
            Assert.AreEqual(2, ReflectionUtility.GetHiddenField <int>("nc", solver));
            Assert.AreEqual(10, ReflectionUtility.GetHiddenField <int>("multiple", solver));
            Assert.AreEqual(100, ReflectionUtility.GetHiddenField <int>("SSAruns", solver));
            string regimeName = ReflectionUtility.GetSolverRegimeName(solver);

            Assert.AreEqual("Leaping", regimeName);
        }
Ejemplo n.º 15
0
        public void TestMidPointConstructor()
        {
            const string configString = @"{""solver"":""MID"",""midpoint"":{""epsilon"":0.02,""Nc"":3,""Multiple"":8,""SSARuns"":50}}";

            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            ModelInfo   modelInfo = EmodlLoader.LoadEMODLFile("resources\\testmodel.emodl");
            const float duration  = 6.28318531f;
            const int   repeats   = 42;
            const int   samples   = 100;
            var         solver    = new MidPoint(modelInfo, duration, repeats, samples);

            Assert.AreEqual(0.02f, ReflectionUtility.GetHiddenField <float>("epsilon", solver));
            Assert.AreEqual(3, ReflectionUtility.GetHiddenField <int>("nc", solver));
            Assert.AreEqual(8, ReflectionUtility.GetHiddenField <int>("multiple", solver));
            Assert.AreEqual(50, ReflectionUtility.GetHiddenField <int>("SSAruns", solver));
            string regimeName = ReflectionUtility.GetSolverRegimeName(solver);

            Assert.AreEqual("Leaping", regimeName);
        }
Ejemplo n.º 16
0
        public void TestFireNonCriticalReactions()
        {
            const string configString = @"{""solver"":""MID"",""prng_seed"":123, ""prng_index"":1,""RNG"":{""type"":""PSEUDODES""}}";

            Configuration.CurrentConfiguration = Configuration.ConfigurationFromString(configString);

            ModelInfo   modelInfo = EmodlLoader.LoadEMODLFile("resources\\testmodelMidPoint.emodl");
            const float duration  = 6.28318531f;
            const int   repeats   = 42;
            const int   samples   = 100;
            var         solver    = new MidPoint(modelInfo, duration, repeats, samples);

            //Inputs for the method
            // Tau Step
            float tau1 = 0.0f;
            var   tau2 = (1.0f / 200.0f);

            //Need a list of reactions
            var currentRates        = ReflectionUtility.GetHiddenField <float[]>("_currentRates", solver);
            var nonCriticalReaction = new List <Reaction>();

            //Find Hidden Method to in order to initialize the population of each of the species
            MethodInfo resetModelStateMethod = ReflectionUtility.GetHiddenMethod("ResetModelState", solver);

            resetModelStateMethod.Invoke(solver, null);

            MethodInfo updateAndSumRatesMethod = ReflectionUtility.GetHiddenMethod("UpdateAndSumRates", solver);

            var model = ReflectionUtility.GetHiddenField <Model>("model", solver);

            nonCriticalReaction.Add(model.Reactions[0]);

            object[] inputArray1 = new object[3];
            inputArray1[0] = tau1; inputArray1[1] = nonCriticalReaction; inputArray1[2] = currentRates;

            object[] inputArray2 = new object[3];
            inputArray2[0] = tau2; inputArray2[1] = nonCriticalReaction; inputArray2[2] = currentRates;

            MethodInfo fireNonCriticalReactionsMethod = ReflectionUtility.GetHiddenMethod("FireNonCriticalReactions", solver);

            // First Test if Tau = 0;
            fireNonCriticalReactionsMethod.Invoke(solver, inputArray1);

            Assert.AreEqual(400, model.Species[0].Value);
            Assert.AreEqual(200, model.Species[1].Value);
            Assert.AreEqual(900, model.Species[2].Value);

            //Second Test if Tau = 0.05 (Not Zero).

            ReflectionUtility.RunResetRngFactory();
            ReflectionUtility.SetHiddenField("_distributionSampler", solver, RandLibSampler.CreateRandLibSampler(RNGFactory.GetRNG()));
            fireNonCriticalReactionsMethod.Invoke(solver, inputArray2);

            Assert.AreEqual(383.0f, model.Species[0].Value);
            Assert.AreEqual(183.0f, model.Species[1].Value);
            Assert.AreEqual(917.0f, model.Species[2].Value);

            resetModelStateMethod.Invoke(solver, null);
            object[] inputArray3 = new object[2];
            inputArray3[0] = model.Reactions; inputArray3[1] = currentRates;
            updateAndSumRatesMethod.Invoke(solver, inputArray3);
            ReflectionUtility.RunResetRngFactory();
            ReflectionUtility.SetHiddenField("_distributionSampler", solver, RandLibSampler.CreateRandLibSampler(RNGFactory.GetRNG()));
            fireNonCriticalReactionsMethod.Invoke(solver, inputArray2);

            Assert.AreEqual(383.0f, model.Species[0].Value);
            Assert.AreEqual(183.0f, model.Species[1].Value);
            Assert.AreEqual(917.0f, model.Species[2].Value);
        }
Ejemplo n.º 17
0
        public static ISolver CreateSolver(string solverName, ModelInfo model, int repeats, double duration, int samples)
        {
            ISolver solver;

            switch (solverName.ToUpper())
            {
            /*
             * SSA and variants
             */
            case "SSA":
            case "GILLESPIE":
            case "GILLESPIEDIRECT":
                solver = new Gillespie(model, duration, repeats, samples);
                break;

            case "FIRST":
            case "FIRSTREACTION":
            case "GILLESPIEFIRSTREACTION":
                solver = new GillespieFirstReaction(model, duration, repeats, samples);
                break;

            case "NEXT":
            case "NEXTREACTION":
            case "GIBSONBRUCK":
                solver = new GibsonBruck(model, duration, repeats, samples);
                break;

            case "HYBRID":
                solver = new HybridSSA(model, duration, repeats, samples);
                break;

            /*
             * Leaping solvers
             */
            case "TAU":
            case "TAULEAPING":
                solver = new TauLeaping(model, duration, repeats, samples);
                break;

            case "MID":
            case "MP":
            case "MIDPOINT":
                solver = new MidPoint(model, duration, repeats, samples);
                break;

            case "R":
            case "RLEAPING":
                solver = new RLeaping(model, duration, repeats, samples);
                break;

            case "RF":
            case "RFAST":
            case "RLEAPINGFAST":
                solver = new RLeapingFast(model, duration, repeats, samples);
                break;

            case "BLEAP":
            case "BLEAPING":
            case "B":
                solver = new BLeaping(model, duration, repeats, samples);
                break;

            /*
             * Diffusion/migration solvers
             */
            case "TSSA":
            case "TRANSPORTSSA":
            case "DIFFUSIONSSA":
            case "ISSA":
                solver = new TransportSSA(model, duration, repeats, samples);
                break;

            case "DFSP":
            case "DIFFUSIONFSP":
            case "TRANSPORTFSP":
                solver = new DFSP(model, duration, repeats, samples);
                break;

            case "DFSPPRIME":
            case "OTSSA":
            case "OPTIMALTRANSPORTSSA":
                solver = new OptimalTransportSSA(model, duration, repeats, samples);
                break;

            case "LEVY":
            case "LEVYFLIGHT":
            case "FRACTIONAL":
            case "FRACTIONALDIFFUSION":
            case "FD":
                solver = new FractionalDiffusion(model, duration, repeats, samples);
                break;

            /*
             * Specialty solvers
             */
            case "ET":
            case "EXITTIME":
            case "EXITTIMES":
            case "TS":
            case "TIMESTRETCHING":
                solver = new ExitTimes(model, duration, repeats, samples);
                break;

            case "DWSSA":
                solver = new dwSSA(model, duration, repeats, samples);
                break;

            case "SDWSSA":
                solver = new sdwSSA(model, duration, repeats, samples);
                break;

            default:
                Console.Error.WriteLine("Unknown solver selection '{0}'.", solverName);
                throw new ArgumentException(string.Format("Unknown solver '{0}'", solverName), "solverName");
            }

            return(solver);
        }
Ejemplo n.º 18
0
 public GoDown(MidPoint characterPosition)
 {
     this._characterPosition = characterPosition;
 }
Ejemplo n.º 19
0
 public GoRest(MidPoint characterPosition)
 {
     this._characterPosition = characterPosition;
 }
Ejemplo n.º 20
0
        protected override IFigure CreateFigure()
        {
            MidPoint result = Factory.CreateMidPoint(FoundDependencies);

            return(result);
        }
Ejemplo n.º 21
0
 public void setCharacterPosition(MidPoint _characterPosition)
 {
     this.characterPosition = _characterPosition;
 }
Ejemplo n.º 22
0
        public ISingleFrameExtendedResults GetData()
        {
            ISingleFrameExtendedResults result = ModelResolver.Resolve <ISingleFrameExtendedResults>();

            if (HeadPoints != null)
            {
                result.HeadPoints = HeadPoints.Select(x => x.GetPoint()).ToArray();
            }
            else
            {
                result.HeadPoints = null;
            }

            if (BodyContour != null)
            {
                result.BodyContour = BodyContour.Select(x => x.GetPoint()).ToArray();
            }
            else
            {
                result.BodyContour = null;
            }

            if (HeadPoint != null)
            {
                result.HeadPoint = HeadPoint.GetPoint();
                result.MidPoint  = MidPoint.GetPoint();
            }

            if (SmoothedHeadPoint != null)
            {
                result.SmoothedHeadPoint = SmoothedHeadPoint.GetPoint();
            }

            if (Orientation != null)
            {
                result.Orientation = Orientation.GetVector();
            }

            result.CentroidSize    = CentroidSize;
            result.PelvicArea      = PelvicArea;
            result.Velocity        = Velocity;
            result.AngularVelocity = AngularVelocity;
            result.Distance        = Distance;
            result.PelvicArea2     = PelvicArea2;
            result.PelvicArea3     = PelvicArea3;
            result.PelvicArea4     = PelvicArea4;

            if (Centroid != null)
            {
                result.Centroid = Centroid.GetPoint();
            }

            if (Whiskers != null)
            {
                result.Whiskers = Whiskers.GetWhiskerCollection();
            }

            if (AllWhiskers != null)
            {
                result.AllWhiskers = AllWhiskers.GetWhiskerCollection();
            }

            if (BestTrackedWhisker != null)
            {
                result.BestTrackedWhisker = BestTrackedWhisker.GetWhiskerCollection();
            }

            result.DataLoadComplete();
            return(result);
        }
Ejemplo n.º 23
0
 public GoSleep(MidPoint characterPosition)
 {
     this._characterPosition = characterPosition;
 }