예제 #1
0
        public void Constructor_CreateAlphaRuleFromConjunctionOfLiteralsWhenBetaRuleInPropositionSetAsWell_ChildrenShouldBeCreatedBasedOnAlphaRule()
        {
            // Arrange
            Conjunction conjunction = (Conjunction)PropositionGenerator.CreateBinaryConnectiveWithRandomSymbols(Conjunction.SYMBOL);
            Disjunction disjunction = (Disjunction)PropositionGenerator.CreateBinaryConnectiveWithRandomSymbols(Disjunction.SYMBOL);

            HashSet <Proposition> propositions = new HashSet <Proposition>()
            {
                disjunction,
                conjunction
            };

            // Act
            SemanticTableauxElement betaRuleElement = new SemanticTableauxElement(propositions);
            SemanticTableauxElement leftChild       = betaRuleElement.LeftChild;
            SemanticTableauxElement rightChild      = betaRuleElement.RightChild;

            // Assert
            leftChild.Should().BeOfType <SemanticTableauxElement>("Because the alpha rule should be applied");
            rightChild.Should().BeNull("Because when applying the alpha rule the right child would not be assigned");
        }