Пример #1
0
        public void IsNot_false_if_negating_a_false_single_color_state()
        {
            var state = Assert.IsType <SingleColorState>(
                SingleColorState.Create("!Left", "Blue").Negate());

            Assert.False(state.IsNot);
        }
Пример #2
0
        public void IsNot_is_true_if_negating_a_not_negated_state()
        {
            var state = Assert.IsType <SingleColorState>(
                SingleColorState.Create("Left", "Blue").Negate());

            Assert.True(state.IsNot);
        }
Пример #3
0
        public void Can_parse_named_states(string xmlText)
        {
            var solver = Solver.Empty
                         .WithState("LeftCenter", SingleColorState.Create("Left", "Blue"))
                         .WithState("LeftDown", EdgeState.Create("LeftDown", "Blue", "White"));
            var andState = Assert.IsType <AndState>(
                StateParser.Parse(null, null, new XElement("State", xmlText), solver).State);

            Assert.Collection(
                andState.States,
                state => Assert.Equal(Location.Left, ((SingleColorState)state).Location),
                state => Assert.Equal(Location.LeftDown, ((EdgeState)state).Location));
        }
Пример #4
0
        public void Converts_to_OrState_with_each_part_negationed()
        {
            var state1 = SingleColorState.Create("Left", "Blue");
            var state2 = SingleColorState.Create("Front", "Red");
            var stete3 = SingleColorState.Create("Right", "Green");

            var andState     = new AndState(ImmutableArray.Create <IState>(state1, state2, stete3));
            var negatedState = Assert.IsType <OrState>(andState.Negate());

            Assert.Collection(
                negatedState.States,
                state => Assert.Equal("!Left Blue", state.ToString()),
                state => Assert.Equal("!Front Red", state.ToString()),
                state => Assert.Equal("!Right Green", state.ToString()));
        }
Пример #5
0
        public void Can_parse_named_states_in_Or_elements(string state1, string state2)
        {
            var solver = Solver.Empty
                         .WithState("LeftCenter", SingleColorState.Create("Left", "Blue"))
                         .WithState("LeftDown", EdgeState.Create("LeftDown", "Blue", "White"));
            var xml =
                new XElement(
                    "State",
                    new XElement(
                        "Or",
                        new XElement("State", state1),
                        new XElement("State", state2)));
            var orState = Assert.IsType <OrState>(
                StateParser.Parse(null, null, xml, solver).State);

            Assert.Collection(
                orState.States,
                state => Assert.Equal(Location.Left, ((SingleColorState)state).Location),
                state => Assert.Equal(Location.LeftDown, ((EdgeState)state).Location));
        }
Пример #6
0
        public void True_if_color_is_correct()
        {
            var state = SingleColorState.Create("Left", "Blue");

            Assert.True(state.Matches(Puzzle.Solved));
        }
Пример #7
0
        public void True_if_negated_and_color_is_not_correct()
        {
            var state = SingleColorState.Create("!Front", "Blue");

            Assert.True(state.Matches(Puzzle.Solved));
        }
Пример #8
0
        public void False_if_color_is_not_correct()
        {
            var state = SingleColorState.Create("Front", "Blue");

            Assert.False(state.Matches(Puzzle.Solved));
        }