コード例 #1
0
        public void GetLaserMazeConfiguration_GetsGridSize_WithValidConfig()
        {
            var configuration = MazeFileParser.GetLaserMazeConfiguration(buildMazeConfigFileContents("1,2", new string[] { "1,2R" }));

            Assert.Equal(1, configuration.GridSize.X);
            Assert.Equal(2, configuration.GridSize.Y);
        }
コード例 #2
0
        public void GetLaserMazeConfiguration_SetsLaserDown_WhenStartingConfigurationIsOnTop()
        {
            var config = MazeFileParser.GetLaserMazeConfiguration(buildMazeConfigFileContents("1,2", new string[] { "1,2RL" }, "1,2V"));

            Assert.Equal(LaserDirection.Down, config.LaserStartingPoint.Direction);
            Assert.Equal(new GridCoordinates(1, 2), config.LaserStartingPoint.Coordinates);
        }
コード例 #3
0
        public void GetLaserMazeConfiguration_SetsLaserRight_WhenStartingConfigurationIsOnLeftSide()
        {
            var config = MazeFileParser.GetLaserMazeConfiguration(buildMazeConfigFileContents("1,2", new string[] { "1,2RL" }, "0,0H"));

            Assert.Equal(LaserDirection.Right, config.LaserStartingPoint.Direction);
            Assert.Equal(new GridCoordinates(0, 0), config.LaserStartingPoint.Coordinates);
        }
コード例 #4
0
        public void GetLaserMazeConfiguration_GetsOneWayMirrors_WhenConfigHasOneWayRight()
        {
            var config = MazeFileParser.GetLaserMazeConfiguration(buildMazeConfigFileContents("1,2", new string[] { "1,2RR" }));

            Assert.Single(config.Mirrors);
            var mirror = config.Mirrors.First();

            Assert.Equal(new GridCoordinates(1, 2), mirror.Coordinates);
            Assert.Equal(MirrorType.OneWayReflectOnRight, mirror.MirrorType);
            Assert.Equal(MirrorOrientation.Right, mirror.MirrorOrientation);
        }
コード例 #5
0
        public void GetLaserMazeConfiguration_GetsLeftMirror_WhenConfigHasLeftMirror()
        {
            var configuration = MazeFileParser.GetLaserMazeConfiguration(buildMazeConfigFileContents("1,2", new string[] { "1,2L" }));

            Assert.Single(configuration.Mirrors);
            var mirror = configuration.Mirrors.First();

            Assert.Equal(new GridCoordinates(1, 2), mirror.Coordinates);
            Assert.Equal(MirrorType.TwoWay, mirror.MirrorType);
            Assert.Equal(MirrorOrientation.Left, mirror.MirrorOrientation);
        }
コード例 #6
0
        public void GetLaserMazeConfiguration_GetsMirrors_WhenMultipleProvided()
        {
            var config = MazeFileParser.GetLaserMazeConfiguration(buildMazeConfigFileContents("1,2", new string[] { "1,2R", "0,0L" }));

            Assert.Equal(2, config.Mirrors.Count);
            var mirror1 = config.Mirrors.ElementAt(0);

            Assert.Equal(new GridCoordinates(1, 2), mirror1.Coordinates);
            Assert.Equal(MirrorOrientation.Right, mirror1.MirrorOrientation);

            var mirror2 = config.Mirrors.ElementAt(1);

            Assert.Equal(new GridCoordinates(0, 0), mirror2.Coordinates);
            Assert.Equal(MirrorOrientation.Left, mirror2.MirrorOrientation);
        }