예제 #1
0
        public static KeyValuePair <string, double> GetPropOfMap(int seed)
        {
            var    pattern     = RandomArray(seed, width, height);
            string patternName = ArrayMapHelper.EncodeBase64(pattern);
            var    result      = ArrayMapHelper.GetStats(100, 100, tries, pattern);

            return(new KeyValuePair <string, double>(patternName, result.Average()));
        }
예제 #2
0
        public void DecodeBase64Test()
        {
            ArrayMap <bool> arrayMap1 = ArrayMapHelper.DecodeBase64("X4Y4N000-AAA=");

            Assert.Equal(4, arrayMap1.Width);
            Assert.Equal(4, arrayMap1.Height);
            foreach (var pos in arrayMap1.Positions())
            {
                Assert.False(arrayMap1[pos]);
            }
        }
예제 #3
0
        public void TryGetFirstPatternMatchTest()
        {
            var map = new ArrayMap <bool>(20, 20);

            Assert.False(map[0, 0]);

            var pMap = new ArrayMap <bool>(20, 20);

            map[5, 5] = true;


            map[10, 10] = true;

            var pat1 = new ArrayMap <bool>(3, 3);

            pat1[0, 0] = false;
            pat1[1, 0] = false;
            pat1[2, 0] = false;
            pat1[0, 1] = false;
            pat1[1, 1] = true;
            pat1[2, 1] = false;
            pat1[0, 2] = false;
            pat1[1, 2] = false;
            pat1[2, 2] = false;

            Assert.True(ArrayMapHelper.TryGetFirstPatternMatch(map, pMap, pat1, out Coord startCoord1));
            Assert.Equal(4, startCoord1.X);
            Assert.Equal(4, startCoord1.Y);

            pMap[4, 4] = true;
            pMap[5, 4] = true;
            pMap[6, 4] = true;
            pMap[4, 5] = true;
            pMap[5, 5] = true;
            pMap[6, 5] = true;
            pMap[4, 6] = true;
            pMap[5, 6] = true;
            pMap[6, 6] = true;


            Assert.True(ArrayMapHelper.TryGetFirstPatternMatch(map, pMap, pat1, out Coord startCoord2));
            Assert.Equal(9, startCoord2.X);
            Assert.Equal(9, startCoord2.Y);
        }
예제 #4
0
        public void RotateArrayMap()
        {
            ArrayMap <bool> arrayMap1 = new ArrayMap <bool>(4, 4);

            arrayMap1[0, 0] = true;

            Assert.True(arrayMap1[0, 0]);

            var arrayMap90deg1 = ArrayMapHelper.RotateArrayMap(arrayMap1, RotateType.DEG90);

            Assert.True(arrayMap90deg1[0, 3]);

            var arrayMap180deg1 = ArrayMapHelper.RotateArrayMap(arrayMap1, RotateType.DEG180);

            Assert.True(arrayMap180deg1[3, 3]);

            var arrayMap270deg1 = ArrayMapHelper.RotateArrayMap(arrayMap1, RotateType.DEG270);

            Assert.True(arrayMap270deg1[3, 0]);


            ArrayMap <bool> arrayMap2 = new ArrayMap <bool>(2, 3);

            arrayMap2[0, 0] = true;

            Assert.True(arrayMap2[0, 0]);

            var arrayMap90deg2 = ArrayMapHelper.RotateArrayMap(arrayMap2, RotateType.DEG90);

            Assert.True(arrayMap90deg2[0, 1]);

            var arrayMap180deg2 = ArrayMapHelper.RotateArrayMap(arrayMap2, RotateType.DEG180);

            Assert.True(arrayMap180deg2[1, 2]);

            var arrayMap270deg2 = ArrayMapHelper.RotateArrayMap(arrayMap2, RotateType.DEG270);

            Assert.True(arrayMap270deg2[2, 0]);
        }
예제 #5
0
        public void EncodeBase64Test()
        {
            ArrayMap <bool> arrayMap1 = new ArrayMap <bool>(4, 4);

            Assert.Equal("X4Y4N000-AAA=", ArrayMapHelper.EncodeBase64(arrayMap1));
        }