コード例 #1
0
ファイル: test_groups.py プロジェクト: mscarey/nettlesome
    def test_interchangeable_contradiction_no_repeated_explanations(self):
        nafta = FactorGroup([
            Statement(
                predicate="$country1 signed a treaty with $country2",
                terms=[Entity(name="Mexico"),
                       Entity(name="USA")],
            ),
            Statement(
                predicate="$country2 signed a treaty with $country3",
                terms=[Entity(name="USA"),
                       Entity(name="Canada")],
            ),
            Statement(
                predicate="$country3 signed a treaty with $country1",
                terms=[Entity(name="Canada"),
                       Entity(name="Mexico")],
            ),
        ])
        brexit = FactorGroup([
            Statement(
                predicate="$country1 signed a treaty with $country2",
                terms=[Entity(name="UK"),
                       Entity(name="European Union")],
            ),
            Statement(
                predicate="$country2 signed a treaty with $country3",
                terms=[Entity(name="European Union"),
                       Entity(name="Germany")],
            ),
            Statement(
                predicate="$country3 signed a treaty with $country1",
                terms=[Entity(name="Germany"),
                       Entity(name="UK")],
                truth=False,
            ),
        ])
        assert nafta.contradicts(brexit)

        explanations_usa_like_uk = nafta.explanations_contradiction(
            brexit, context=([Entity(name="USA")], [Entity(name="UK")]))
        assert len(list(explanations_usa_like_uk)) == 2
コード例 #2
0
 def test_no_contradiction_of_none(self):
     group = FactorGroup([self.slower_general_statement, self.farm_statement])
     assert not group.contradicts(None)
コード例 #3
0
 def test_group_contradicts_single_factor(self):
     group = FactorGroup([self.slower_specific_statement, self.farm_statement])
     register = ContextRegister()
     register.insert_pair(Entity(name="the car"), Entity(name="the pickup"))
     assert group.contradicts(self.faster_statement, context=register)