Ejemplo n.º 1
0
        public void PatternGeneratorのGetNextテスト()
        {
            EnvConfig.Unity = false;
            var patterns       = new List <PatternDefinition>();
            var stairsOneLeft  = new PatternProvider().Get(Pattern.StairsOneLeft);
            var stairsTwoRight = new PatternProvider().Get(Pattern.StairsTwoRight);

            patterns.Add(stairsOneLeft);
            patterns.Add(stairsTwoRight);
            this.Generator.Inject(new PatternGenerator.Config()
            {
                Patterns = patterns,
            });

            var stairsOneLeftColors1P = new Dictionary <int, double>();
            var stairsOneLeftObs1P    = new Dictionary <int, double>();
            var stairsOneLeftColors2P = new Dictionary <int, double>();
            var stairsOneLeftObs2P    = new Dictionary <int, double>();

            // 1P-紫-StairsOneLeft
            var unitStr = new List <string>();

            unitStr.Add("10000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            var key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));

            this.AddCount(stairsOneLeftColors1P, key);

            // 1P-赤-StairsOneLeft
            unitStr = new List <string>();
            unitStr.Add("10000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors1P, key);
            this.AddCount(stairsOneLeftColors1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors1P, key);

            // 1P-おじゃま-StairsOneLeft
            unitStr = new List <string>();
            unitStr.Add("10000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftObs1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftObs1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftObs1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftObs1P, key);

            // 2P-青-StairsOneLeft
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors2P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors2P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors2P, key);

            // 2P-紫-StairsOneLeft
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors2P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors2P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors2P, key);

            // 2P-赤-StairsOneLeft
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors2P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftColors2P, key);

            // 2P-おじゃま-StairsOneLeft
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            key = stairsOneLeft.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsOneLeftObs2P, key);

            var stairsTwoRightColors1P = new Dictionary <int, double>();
            var stairsTwoRightObs1P    = new Dictionary <int, double>();
            var stairsTwoRightColors2P = new Dictionary <int, double>();
            var stairsTwoRightObs2P    = new Dictionary <int, double>();

            // 1P-紫-StairsTwoRight
            unitStr = new List <string>();
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors1P, key);

            // 1P-赤-StairsTwoRight
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors1P, key);
            this.AddCount(stairsTwoRightColors1P, key);
            unitStr = new List <string>();
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors1P, key);
            this.AddCount(stairsTwoRightColors1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("10000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("10000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors1P, key);

            // 1P-おじゃま-StairsTwoRight
            unitStr = new List <string>();
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightObs1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightObs1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("10000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightObs1P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("10000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightObs1P, key);

            // 2P-青-StairsTwoRight
            unitStr = new List <string>();
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors2P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors2P, key);

            // 2P-紫-StairsTwoRight
            unitStr = new List <string>();
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors2P, key);
            unitStr = new List <string>();
            unitStr.Add("00000000");
            unitStr.Add("01000000");
            unitStr.Add("00000000");
            unitStr.Add("00000000");
            key = stairsTwoRight.GetIndex(FieldContextHelper.ConvertDigitStrsToUnit(unitStr));
            this.AddCount(stairsTwoRightColors2P, key);

            var context = TestHelper.Receiver.Receive("../../resources/generators/patterngenerator/test-field-in-001-001.txt");
            var actual  = this.Generator.GetNext(context);

            Assert.AreEqual(RaisedIndex * 8, actual.Length);

            var raisedIndex = 0;

            // 1P-StairsOneLeft-color
            foreach (var kv in stairsOneLeftColors1P)
            {
                Assert.AreEqual(kv.Value, actual[kv.Key + raisedIndex], 0.0d, DebugHelper.ConvertUintToFieldUnit(stairsOneLeft.GetIndexKey(kv.Key)));
            }
            raisedIndex += RaisedIndex;

            // 1P-StairsOneLeft-obs
            foreach (var kv in stairsOneLeftObs1P)
            {
                Assert.AreEqual(kv.Value, actual[kv.Key + raisedIndex], 0.0d, DebugHelper.ConvertUintToFieldUnit(stairsOneLeft.GetIndexKey(kv.Key)));
            }
            raisedIndex += RaisedIndex;

            // 1P-StairsTwoRight-color
            foreach (var kv in stairsTwoRightColors1P)
            {
                Assert.AreEqual(kv.Value, actual[kv.Key + raisedIndex], 0.0d, DebugHelper.ConvertUintToFieldUnit(stairsTwoRight.GetIndexKey(kv.Key)));
            }
            raisedIndex += RaisedIndex;

            // 1P-StairsTwoRight-obs
            foreach (var kv in stairsTwoRightObs1P)
            {
                Assert.AreEqual(kv.Value, actual[kv.Key + raisedIndex], 0.0d, DebugHelper.ConvertUintToFieldUnit(stairsTwoRight.GetIndexKey(kv.Key)));
            }
            raisedIndex += RaisedIndex;

            // 2P-StairsOneLeft-color
            foreach (var kv in stairsOneLeftColors2P)
            {
                FileHelper.WriteLine($"key:{kv.Key} value:{kv.Value}");
                Assert.AreEqual(kv.Value, actual[kv.Key + raisedIndex], 0.0d, DebugHelper.ConvertUintToFieldUnit(stairsOneLeft.GetIndexKey(kv.Key)));
            }
            raisedIndex += RaisedIndex;

            // 2P-StairsOneLeft-obs
            foreach (var kv in stairsOneLeftObs2P)
            {
                Assert.AreEqual(kv.Value, actual[kv.Key + raisedIndex], 0.0d, DebugHelper.ConvertUintToFieldUnit(stairsOneLeft.GetIndexKey(kv.Key)));
            }
            raisedIndex += RaisedIndex;

            // 2P-StairsTwoRight-color
            foreach (var kv in stairsTwoRightColors2P)
            {
                Assert.AreEqual(kv.Value, actual[kv.Key + raisedIndex], 0.0d, DebugHelper.ConvertUintToFieldUnit(stairsTwoRight.GetIndexKey(kv.Key)));
            }
            raisedIndex += RaisedIndex;

            // 2P-StairsTwoRight-obs
            foreach (var kv in stairsTwoRightObs2P)
            {
                Assert.AreEqual(kv.Value, actual[kv.Key + raisedIndex], 0.0d, DebugHelper.ConvertUintToFieldUnit(stairsTwoRight.GetIndexKey(kv.Key)));
            }
        }