Exemplo n.º 1
0
        [Test] public void Merges()
        {
            var parsedSet1 = JsonPacker.ExtractDataAs <ParsedSet>(@"

            {
                'Name' : 'Forest',
                'Declares' :
                {
                    'timeStepOneDay' : 
                    [
                        'day += [0, 1]'
                    ]
                }
            }

            ");

            var parsedSet2 = JsonPacker.ExtractDataAs <ParsedSet>(@"

            {
                'Name' : 'Grass',
                'Uses' : ['Forest'],
                'Declares' :
                {
                    'initialGrass' :
                    [
                        'initialGrassPopulation = 15'
                    ],

                    'factorsGrass' :
                    [
                        'grassGrowSpeed = 3'
                    ]
                },
                'Expressions' :
                [
                    'grassPopulation += initialGrassPopulation + day * grassGrowSpeed'
                ]
            }

            ");

            var forest = new SetTranslator(parsedSet1).Translate();
            var grass  = new SetTranslator(parsedSet2).Translate();

            try
            {
                var grassPopulation = grass.__("grassPopulation").Value;
                Assert.Fail();
            }
            catch { }

            forest.Merge(grass);

            forest.Get <Iterator>("day").MoveNextValue();

            Assert.IsTrue(forest.__("grassPopulation").Value == 18);
        }
Exemplo n.º 2
0
        [Test] public void SingleSet()
        {
            var parsedSet = JsonPacker.ExtractDataAs <ParsedSet>(@"

            {
                'Name' : 'LinearMove',
                'Declares' :
                {
                    'initial' :
                    [
                        'position = 0',
                        'A = 0',
                        'V = 1'
                    ],
                    'timeStep' : 
                    [
                        'T += [0, 1]'
                    ]
                },
                'Expressions':
                [
                    'V += A * T',
                    'distance += position + V * T'
                ]
            }"

                                                                 );

            var linearMove = new SetTranslator(parsedSet).Translate();

            linearMove.__("A").Value = 4;

            var time = linearMove.Get <Iterator>("T");

            while (linearMove.__("distance").Value <= 20)
            {
                time.MoveNextValue();
            }

            Assert.IsTrue(linearMove.__("T").Value == 3);
        }