Example #1
0
        public void TarskiWorld_FreeVariable()
        {
            List <string> sentences = new List <string>
            {
                $"∀x (Cube(x) ∧ Cube(y))",
                $"∀y (Cube(x) ∧ Cube(y))"
            };
            List <WorldObject> worldObjects = new List <WorldObject>()
            {
                new WorldObject(new List <string>()
                {
                    "a", "c"
                }, new List <string>()
                {
                    "Tet", "Large"
                }, new List <object> {
                    3, 2
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.ContainsFreeVariable);
            Assert.IsTrue(result.Result.Value[0].ErrorMessage.Length > 0);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.ContainsFreeVariable);
            Assert.IsTrue(result.Result.Value[1].ErrorMessage.Length > 0);
        }
        public void Game_AllQuantum_TemporaryConstants()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "\u2200 x Cube(x)"
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
                },
                                new List <object> {
                    1, 3
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Game game = new Game(sentences[0], world, true);

            var move = game.Play();

            move = game.Play();

            move = game.Play();

            Assert.IsTrue(game.TemporaryWorldObjects.Count == 1);
        }
        public void Game_Predicate_False_GuessTrue()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "Tet(a)",
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    3, 3
                }),
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Game game = new Game(sentences[0], world, true);

            var move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is EndMessage);

            var end = move as EndMessage;

            Assert.IsFalse(end.GuessWasRight);
        }
Example #4
0
        public void TarskiWorld_IntegrationRound02()
        {
            List <string> sentences = new List <string>
            {
                "\u2200 x (Tet(x) \u2192  Large(x))"
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
                },
                                new List <object> {
                    3, 3
                }),
                new WorldObject(new List <string>(), new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    3, 3
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.True);
        }
Example #5
0
        public void TarskiWorld_ConstantNotInWorld()
        {
            List <string> sentences = new List <string>
            {
                $"(Cube(a) ∧ Cube(b))",
                $"(Cube(e) ∧ Cube(d))"
            };
            List <WorldObject> worldObjects = new List <WorldObject>()
            {
                new WorldObject(new List <string>()
                {
                    "a", "c"
                }, new List <string>()
                {
                    "Tet", "Large"
                }, new List <object> {
                    3, 2
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.ConstantNotUsed);
            Assert.IsTrue(result.Result.Value[0].ErrorMessage.Length > 0);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.ConstantNotUsed);
            Assert.IsTrue(result.Result.Value[1].ErrorMessage.Length > 0);
        }
Example #6
0
        public void TarskiWorld_Function_InPredicates()
        {
            List <string> sentences = new List <string>
            {
                $"Larger(a,rm(a))",
                $"Larger(rm(a),rm(a))",
                "Larger(rm(a),a)"
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
                },
                                new List <object> {
                    3, 3
                }),
                new WorldObject(new List <string> {
                    "b"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.MEDIUM
                },
                                new List <object> {
                    5, 3
                }),
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.False);
            Assert.IsTrue(result.Result.Value[2].Value == EValidationResult.False);
        }
Example #7
0
        public void TarskiWorld_CanNotBeValidated()
        {
            List <string> sentences = new List <string>
            {
                "Tet(b)",
                "Tes(a)",
                "Tet(rds(a))",
                $"∀x (Cube(x) ∧ Cube(y))"
            };
            List <WorldObject> worldObjects = new List <WorldObject>()
            {
                new WorldObject(new List <string>()
                {
                    "a", "c"
                }, new List <string>()
                {
                    "Tet", "Large"
                }, new List <object> {
                    3, 2
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.ConstantNotUsed);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.UnknownSymbol);
            Assert.IsTrue(result.Result.Value[2].Value == EValidationResult.UnknownSymbol);
            Assert.IsTrue(result.Result.Value[3].Value == EValidationResult.ContainsFreeVariable);
        }
Example #8
0
        public void TarskiWorld_FunctionUnknown()
        {
            List <string> sentences = new List <string>
            {
                $"(Cub(func(a)) ∧ Cube(c))",
                $"(Tes(a) ∧ Tat(taz(c)))"
            };
            List <WorldObject> worldObjects = new List <WorldObject>()
            {
                new WorldObject(new List <string>()
                {
                    "a", "c"
                }, new List <string>()
                {
                    "Tet", "Large"
                }, new List <object> {
                    3, 2
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.UnknownSymbol);
            Assert.IsTrue(result.Result.Value[0].ErrorMessage.Length > 0);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.UnknownSymbol);
            Assert.IsTrue(result.Result.Value[1].ErrorMessage.Length > 0);
        }
        public void Game_AllQuantum_False_GuessFalse_RightSelection()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "\u2200 x Cube(x)"
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
                },
                                new List <object> {
                    1, 3
                }),
                new WorldObject(new List <string> {
                    "c"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                },
                                new List <object> {
                    3, 3
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Game game = new Game(sentences[0], world, false);

            var move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is Question);

            var question = move as Question;

            question.SetAnswers(question.PossibleAnswers[1]);

            move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is EndMessage);

            var end = move as EndMessage;

            Assert.IsTrue(end.GuessWasRight);
        }
Example #10
0
        public void Game_Predicate_Parantheses_Function_True_GuessTrue()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "Dodec(bm(lm(a)))",
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
                },
                                new List <object> {
                    3, 3
                }),
                new WorldObject(new List <string> {
                    "b"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                },
                                new List <object> {
                    1, 3
                }),
                new WorldObject(new List <string> {
                    "d"
                }, new List <string> {
                    BivalenceWorldDataFields.DODEC, BivalenceWorldDataFields.LARGE
                },
                                new List <object> {
                    1, 5
                }),
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Game game = new Game(sentences[0], world, true);

            var move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is EndMessage);

            var end = move as EndMessage;

            Assert.IsTrue(end.GuessWasRight);
        }
        public void TarskiWorld_Atomar_Valid()
        {
            BivalenceWorld world     = new BivalenceWorld();
            WorldParameter parameter = new WorldParameter(CreateWorldObject(), Sentences_Atomar());
            var            result    = world.Check(parameter);

            Assert.AreEqual(result.Result.Value.Count, 3);
            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.True);
            Assert.IsFalse(result.Result.Value[2].Value == EValidationResult.True);
        }
        public void TarskiWorld_InvalidOperator()
        {
            BivalenceWorld world     = new BivalenceWorld();
            WorldParameter parameter = new WorldParameter(CreateWorldObject(), Sentences_InvalidOperator());
            var            result    = world.Check(parameter);

            Assert.AreEqual(result.Result.Value.Count, 2);
            foreach (var obj in result.Result.Value)
            {
                Assert.IsFalse(obj.IsValid);
            }
        }
    // Start is called before the first frame update
    public void Start()
    {
        BivalenceWorld world     = new BivalenceWorld();
        List <string>  sentences = new List <string>
        {
            "Tet(a) ∧ Tet(b) ∧ Tet(c)",
        };
        List <WorldObject> worldObjects = new List <WorldObject>
        {
            new WorldObject(new List <string> {
                "a"
            }, new List <string> {
                "Tet", "Large"
            }, new List <object> {
                1, 3
            }),
            new WorldObject(new List <string> {
                "b"
            }, new List <string> {
                "Tet", "Large"
            }, new List <object> {
                2, 3
            }),
            new WorldObject(new List <string> {
                "c"
            }, new List <string> {
                "Tet", "Large"
            }, new List <object> {
                3, 3
            })
        };
        WorldParameter parameter = new WorldParameter(worldObjects, sentences);
        var            result    = world.Check(parameter);

        Game game = new Game(sentences[0], world, false);

        var move = game.Play();

        move = game.Play(); //Information prefab

        move = game.Play();

        var question = move as Question;                  //andere Prefab spawnen bei Question

        question.SetAnswers(question.PossibleAnswers[0]); //anpassen an auswahlten an Prefab 2 - n


        move = game.Play();

        move = game.Play();

        var end = move as EndMessage;
    }
Example #14
0
    private void SetPresentationLayout(BivalenceWorld world, bool showGenericConstants = false)
    {
        var presentationWorldTxt = world.GetPl1Structure().GetModelRepresentation(Validation.CalculateResultSentences(GameManager.Instance, GameManager.Instance.GetTextInputField().GetGuiTextElementsWithText()), showGenericConstants);
        var presentation         = GameManager.Instance.GetModelPresentation();

        if (presentation != null && presentation.Count > 0)
        {
            foreach (var item in presentation)
            {
                item.SetText(presentationWorldTxt);
            }
        }
    }
        public void PL1_Setup()
        {
            BivalenceWorld world     = new BivalenceWorld();
            WorldParameter parameter = CreateBiggerParameter();

            world.Check(parameter);

            PL1Structure structure = world.GetPl1Structure();

            _predDictionary  = structure.GetPredicates();
            _constDictionary = structure.GetConsts();
            _funcDictionary  = structure.GetFunctions();
        }
Example #16
0
        public void TarskiWorld_ComplexSentences()
        {
            List <string> sentences = new List <string>
            {
                "(\u2203x Dodec(x)) \u2192 ((\u2200y (Tet(y) \u2192 Medium(y))) \u2227 Dodec(f))",
                "(\u2203x Dodec(x)) \u2192 ((\u2200y (Tet(y) \u2192 Medium(y))) \u2227 Dodec(e))"
            };
            WorldParameter parameter = new WorldParameter(CreateWorld(), sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.True);
            Assert.IsFalse(result.Result.Value[1].Value == EValidationResult.True);
        }
Example #17
0
        public void Game_ExistQuantum_True_GuessFalse()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "\u2203 x Cube(x)"
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    1, 3
                }),
                new WorldObject(new List <string> {
                    "c"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    3, 3
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Game game = new Game(sentences[0], world, false);

            var move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is EndMessage);

            var end = move as EndMessage;

            Assert.IsFalse(end.GuessWasRight);
        }
        public void TarskiWorld_EmptyConstant()
        {
            BivalenceWorld world      = new BivalenceWorld();
            List <string>  stentences = new List <string>()
            {
                "Tet()"
            };
            WorldParameter parameter = new WorldParameter(CreateWorldObject(), stentences);
            var            result    = world.Check(parameter);

            Assert.AreEqual(result.Result.Value.Count, 1);
            foreach (var obj in result.Result.Value)
            {
                Assert.AreEqual(obj.Value, EValidationResult.ParserFailed);
            }
        }
Example #19
0
        public void TarskiWorld_UknownSymbol_MaxConstantName()
        {
            List <string> sentences = new List <string>
            {
                $"Larger(father(jill),father(max))"
            };
            List <WorldObject> worldObjects = new List <WorldObject>()
            {
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.UnknownSymbol);
            Assert.IsTrue(result.Result.Value[0].ErrorMessage.Length > 0);
        }
Example #20
0
        public void TarskiWorld_ConstantInFunctionNotInterpreted_EqualsPredicate()
        {
            List <string> sentences = new List <string>
            {
                $"a = d"
            };
            List <WorldObject> worldObjects = new List <WorldObject>()
            {
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            BivalenceWorld world     = new BivalenceWorld();
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.ConstantNotUsed);
            Assert.IsTrue(result.Result.Value[0].ErrorMessage.Length > 0);
        }
Example #21
0
        public void TarskiWorld_Implication()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "(Tet(a) \u2228 Tet(b)) \u2192 (Tet(a) \u2227 Tet(d) \u2227 (Cube(d) \u2228 Cube(a)))",
                "(Tet(a) \u2228 Tet(b)) \u2192 (Tet(a) \u2227 (Cube(d) \u2228 Cube(a)))"
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    3, 3
                }),
                new WorldObject(new List <string> {
                    "b"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    4, 4
                }),
                new WorldObject(new List <string> {
                    "c"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    2, 2
                }),
                new WorldObject(new List <string> {
                    "d"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    2, 2
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Assert.AreEqual(result.Result.Value.Count, 2);
            Assert.IsFalse(result.Result.Value[0].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.True);
        }
Example #22
0
        public void PL1_Constants_True()
        {
            BivalenceWorld world     = new BivalenceWorld();
            WorldParameter parameter = CreateTestParmeter();

            world.Check(parameter);

            PL1Structure structure = world.GetPl1Structure();

            ConstDictionary     consts = structure.GetConsts();
            PredicateDictionary preds  = structure.GetPredicates();

            Assert.AreEqual(consts["a"], "u0");
            Assert.AreEqual(consts["c"], "u0");
            Assert.AreEqual(consts["b"], "u1");
            Assert.AreEqual(consts["d"], "u2");
        }
Example #23
0
    private void ButtonClickedListener()
    {
        _world = new BivalenceWorld();

        var manager = GameManager.Instance;

        if (manager == null)
        {
            return;
        }

        string sentence = "";

        if (manager.GetTextInputField().CurrentTextInputElement != null)
        {
            sentence = manager.GetTextInputField().CurrentTextInputElement.GetInputText();
        }


        //List<string> sentences = Validation.CalculateResultSentences(manager, list);
        List <WorldObject> worldObjects = Validation.CalculateWorldObjects();

        WorldParameter parameter = new WorldParameter(worldObjects, new List <string> {
            sentence
        });

        var result = _world.Check(parameter);

        CleanUpHistory();
        ClearTemporaryConstants();
        var startInstance = Instantiate(_startPrefab, _anchor);

        startInstance.StartButtonClickedEvent.AddEventListener(StartGame);
        _history.Add(startInstance.gameObject);

        if (result.Result.Value[0].IsValid)
        {
            _currentSentence = sentence;
            startInstance.Init(_currentSentence, true);
            //_button.gameObject.SetActive(false);
        }
        else
        {
            startInstance.Init(result.Result.Value[0].ErrorMessage, false);
        }
    }
        public void Game_Equals_Functions_False_GuessFalse()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "a = lm(c)",
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    1, 3
                }),
                new WorldObject(new List <string> {
                    "c"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    1, 5
                }),
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Game game = new Game(sentences[0], world, false);

            var move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is InfoMessage);

            move = game.Play();

            Assert.IsTrue(move is EndMessage);

            var end = move as EndMessage;

            Assert.IsTrue(end.GuessWasRight);
        }
        public void Test_Functions()
        {
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    1, 1
                }),
                new WorldObject(new List <string> {
                    "b"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    2, 1
                }),
                new WorldObject(new List <string> {
                    "c"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.SMALL
                }, new List <object> {
                    2, 4
                }),
            };
            List <string> sentences = new List <string>()
            {
                "Cube(lm(b))",
                "Medium(rm(b))",
                "fm(c) = b",
                "bm(c) = c",
                "Cube(fm(c))"
            };

            BivalenceWorld world     = new BivalenceWorld();
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[2].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[3].Value == EValidationResult.True);
            Assert.IsFalse(result.Result.Value[4].Value == EValidationResult.True);
        }
Example #26
0
        public void BivalenceWorld_Biconditional()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "Tet(a) \u2194 Tet(b)",
                "(Tet(b) \u2227 Tet(c)) \u2194 (Tet(a) \u2227 Tet(c))",
                "Tet(c) \u2194 Cube(a)",
                "Tet(c) \u2194 Tet(a)"
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    3, 3
                }),
                new WorldObject(new List <string> {
                    "b"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    4, 4
                }),
                new WorldObject(new List <string> {
                    "c"
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    2, 2
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Assert.AreEqual(result.Result.Value.Count, 4);
            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[2].Value == EValidationResult.True);
            Assert.IsFalse(result.Result.Value[3].Value == EValidationResult.True);
        }
Example #27
0
        public void TarskiWorld_ExistQuantum()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "\u2203x Tet(x)",
                "\u2203 x Cube(x)",
                "\u2203x (Tet(x) \u2227 Small(x))",
                "\u2203x(Cube(x) \u2227 Medium(x))"
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    3, 3
                }),
                new WorldObject(new List <string> {
                    "b"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    4, 4
                }),
                new WorldObject(new List <string> {
                }, new List <string> {
                    BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    2, 2
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Assert.AreEqual(result.Result.Value.Count, 4);
            Assert.IsTrue(result.Result.Value[0].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.True);
            Assert.IsFalse(result.Result.Value[2].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[3].Value == EValidationResult.True);
        }
Example #28
0
    private void RestartGame()
    {
        _world = new BivalenceWorld();
        List <WorldObject> worldObjects = Validation.CalculateWorldObjects();

        WorldParameter parameter = new WorldParameter(worldObjects, new List <string> {
            _currentSentence
        });

        _world.Check(parameter);

        _game = new Game(_currentSentence, _world, _startValue);

        for (int i = 1; i < _history.Count; i++)
        {
            var gameElement = _history[i].GetComponent <GUI_AGameElement>();
            var move        = _game.Play();
            gameElement.ResetStep(move);
        }
    }
Example #29
0
        public void TarskiWorld_Negation()
        {
            BivalenceWorld world     = new BivalenceWorld();
            List <string>  sentences = new List <string>
            {
                "\u00ac Tet(a)",
                "\u00ac ( Cube(b) \u2227 Medium(a))",
                "Tet(c) \u2228 \u00ac Tet(c)",
            };
            List <WorldObject> worldObjects = new List <WorldObject>
            {
                new WorldObject(new List <string> {
                    "a"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.LARGE
                }, new List <object> {
                    3, 3
                }),
                new WorldObject(new List <string> {
                    "b"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    4, 4
                }),
                new WorldObject(new List <string> {
                    "c"
                }, new List <string> {
                    BivalenceWorldDataFields.TET, BivalenceWorldDataFields.MEDIUM
                }, new List <object> {
                    2, 2
                })
            };
            WorldParameter parameter = new WorldParameter(worldObjects, sentences);
            var            result    = world.Check(parameter);

            Assert.AreEqual(result.Result.Value.Count, 3);
            Assert.IsFalse(result.Result.Value[0].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[1].Value == EValidationResult.True);
            Assert.IsTrue(result.Result.Value[2].Value == EValidationResult.True);
        }
Example #30
0
 public void TarskiWorld_ModelRepresentation()
 {
     List <WorldObject> worldObjects = new List <WorldObject>
     {
         new WorldObject(new List <string> {
             "a"
         }, new List <string> {
             BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
         },
                         new List <object> {
             3, 3
         }),
         new WorldObject(new List <string> {
             "b"
         }, new List <string> {
             BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
         },
                         new List <object> {
             5, 3
         }),
         new WorldObject(new List <string> {
             "c"
         }, new List <string> {
             BivalenceWorldDataFields.CUBE, BivalenceWorldDataFields.LARGE
         },
                         new List <object> {
             4, 3
         }),
         new WorldObject(new List <string>(), new List <string> {
             BivalenceWorldDataFields.TET, BivalenceWorldDataFields.MEDIUM
         }, new List <object> {
             3, 5
         })
     };
     WorldParameter parameter      = new WorldParameter(worldObjects, new List <string>());
     BivalenceWorld world          = new BivalenceWorld();
     var            result         = world.Check(parameter);
     var            representation = world.GetPl1Structure().GetModelRepresentation(new List <string> {
         "Tet(a)"
     });
 }