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); }
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); }
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)); }
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())); }
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)); }
public void True_if_color_is_correct() { var state = SingleColorState.Create("Left", "Blue"); Assert.True(state.Matches(Puzzle.Solved)); }
public void True_if_negated_and_color_is_not_correct() { var state = SingleColorState.Create("!Front", "Blue"); Assert.True(state.Matches(Puzzle.Solved)); }
public void False_if_color_is_not_correct() { var state = SingleColorState.Create("Front", "Blue"); Assert.False(state.Matches(Puzzle.Solved)); }