[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); }
private static void ProcessInput() { var inputPath = Configuration.GetValueFor("InputRootPath"); var mergedSets = new Preprocessor(inputPath).MergeAllFiles(); var parsedSets = JsonPacker.ExtractDataAs <ParsedSet[]>(mergedSets); foreach (var parsedSet in parsedSets) { translators.Add(parsedSet.Name, new SetTranslator(parsedSet)); } }
static Configuration() { var configPath = AssemblyDirectory + fileName; if (File.Exists(configPath)) { var content = File.ReadAllText(configPath); Properties = JsonPacker.ExtractDataAs <ParsedConfiguration>(content); } else { Properties = new ParsedConfiguration { InputRootPath = AssemblyDirectory }; } }
[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); }
[Test] public void PackerExtractsPreprocessorMerges() { var preprocessor = new Preprocessor(path); var parsedData = JsonPacker.ExtractDataAs <ParsedSet[]>(preprocessor.MergeAllFiles()); }