public void AlwaysAccessibleWhenQuery() { world = CreateITWorld(); var sc1 = new Scenario(); sc1.AddScenarioStep(new ScenarioStep(eat, alice)); var q1 = new AccessibleAlwaysScenarioQuery(new True(), cakeExists, sc1); var sc2 = new Scenario(); sc2.AddScenarioStep(new ScenarioStep(drink, alice)); var q2 = new AccessibleAlwaysScenarioQuery(new True(), new Negation(elixirExists), sc2); var r1 = q1.Evaluate(world); var r2 = q2.Evaluate(world); Assert.AreEqual(r1, true); Assert.AreEqual(r2, false); // po wykonaniu sc2 elixir moze istniec, i nie da sie zawsze zrobic zeby go nie bylo }
public void EverAccessibleWhenQuery() { world = CreateITWorld(); var sc1 = new Scenario(); sc1.AddScenarioStep(new ScenarioStep(eat, alice)); var q1 = new AccessibleAlwaysScenarioQuery(new True(), cakeExists, sc1); var sc3 = new Scenario(); sc3.AddScenarioStep(new ScenarioStep(eat, alice)); sc3.AddScenarioStep(new ScenarioStep(eat, alice)); var q3 = new AccessibleAlwaysScenarioQuery(new True(), new Negation(elixirExists), sc3); var r1 = q1.Evaluate(world); var r3 = q3.Evaluate(world); Assert.AreEqual(r1, true); Assert.AreEqual(r3, false); // sc3 jest niewykonalne }
public void NeroAlwaysAccessibleQuery() { var query = new AccessibleAlwaysScenarioQuery(_accessibleQueryPi, _accessibleQueryGamma, _drinkRestTorchScenario); Assert.IsFalse(query.Evaluate(_world)); }