Exemplo n.º 1
0
 def test_group_does_not_mean_different_group(self, watt_factor):
     first_group = FactorGroup(
         [watt_factor["f1"], watt_factor["f2"], watt_factor["f3"]]
     )
     second_group = FactorGroup([watt_factor["f1"], watt_factor["f3"]])
     assert not first_group.means(second_group)
     assert not second_group.means(first_group)
Exemplo n.º 2
0
 def test_group_does_not_mean_different_group(self, make_statement):
     first_group = FactorGroup([
         make_statement["crime"],
         make_statement["shooting"],
         make_statement["murder"],
     ])
     second_group = FactorGroup(
         [make_statement["crime"], make_statement["murder"]])
     assert not first_group.means(second_group)
     assert not second_group.means(first_group)
Exemplo n.º 3
0
 def test_not_same_nonmatching_terms(self, make_statement):
     left = FactorGroup([
         Statement(
             predicate=Predicate(content="$suburb was a suburb of $city"),
             terms=(
                 Entity(name="Oakland"),
                 Entity(name="San Francisco"),
             ),
         ),
         make_statement["more"],
         Statement(predicate="$city was sunny",
                   terms=Entity(name="Oakland")),
     ])
     right = FactorGroup([
         Statement(
             predicate=Predicate(content="$suburb was a suburb of $city"),
             terms=(
                 Entity(name="San Francisco"),
                 Entity(name="Oakland"),
             ),
         ),
         make_statement["more"],
         Statement(predicate="$city was sunny",
                   terms=Entity(name="Oakland")),
     ])
     assert not left.means(right)
Exemplo n.º 4
0
 def test_group_means_identical_group(self, make_statement):
     first_group = FactorGroup(
         [make_statement["crime"], make_statement["murder"]])
     second_group = FactorGroup(
         [make_statement["crime"], make_statement["murder"]])
     assert first_group.means(second_group)
     assert means(first_group, second_group)
Exemplo n.º 5
0
 def test_not_same_meaning_more_reasons(self, make_statement):
     left = FactorGroup([
         make_statement["shooting"], make_statement["crime"]
     ]).explain_same_meaning(
         FactorGroup([
             make_statement["shooting_craig"], make_statement["crime_craig"]
         ]))
     right = make_statement["murder"].explain_same_meaning(
         make_statement["murder_craig"])
     assert not left.means(right)
Exemplo n.º 6
0
 def test_no_comparison_with_comparison(self):
     comparison = Comparison(
         content="${person}'s speed was",
         sign=">",
         expression="36 kilometers per hour",
     )
     other_comparison = Comparison(content="${person}'s speed was",
                                   sign=">",
                                   expression="10 meters per second")
     left = FactorGroup(
         Statement(predicate=comparison, terms=Entity(name="Ann")))
     assert not left.means(other_comparison)
Exemplo n.º 7
0
 def test_term_outside_of_group(self):
     speed = "${person}'s speed was"
     comparison = Comparison(content=speed,
                             sign=">",
                             expression="36 kilometers per hour")
     other = Comparison(content=speed,
                        sign=">",
                        expression="10 meters per second")
     left = FactorGroup(
         Statement(predicate=comparison, terms=Entity(name="Ann")))
     right = Statement(predicate=other, terms=Entity(name="Bob"))
     assert left.means(right)
Exemplo n.º 8
0
 def test_list_instead_of_group(self):
     comparison = Comparison(
         content="${person}'s speed was",
         sign=">",
         expression="36 kilometers per hour",
     )
     other_comparison = Comparison(content="${person}'s speed was",
                                   sign=">",
                                   expression="10 meters per second")
     left = FactorGroup(
         Statement(predicate=comparison, terms=Entity(name="Ann")))
     right = [
         Statement(predicate=other_comparison, terms=Entity(name="Bob"))
     ]
     assert left.means(right)
     assert "Because <Ann> is like <Bob>" in str(
         left.explain_same_meaning(right))
Exemplo n.º 9
0
 def test_interchangeable_same_meaning_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")],
         ),
     ])
     nato = FactorGroup([
         Statement(
             predicate="$country1 signed a treaty with $country2",
             terms=[Entity(name="USA"),
                    Entity(name="UK")],
         ),
         Statement(
             predicate="$country2 signed a treaty with $country3",
             terms=[Entity(name="UK"),
                    Entity(name="Germany")],
         ),
         Statement(
             predicate="$country3 signed a treaty with $country1",
             terms=[Entity(name="Germany"),
                    Entity(name="USA")],
         ),
     ])
     assert nafta.means(nato)
     answers = list(
         nafta.explanations_same_meaning(nato,
                                         context=([Entity(name="USA")],
                                                  [Entity(name="UK")])))
     assert len(answers) == 2
Exemplo n.º 10
0
 def test_group_means_identical_group(self, watt_factor):
     first_group = FactorGroup([watt_factor["f1"], watt_factor["f3"]])
     second_group = FactorGroup([watt_factor["f1"], watt_factor["f3"]])
     assert first_group.means(second_group)
     assert means(first_group, second_group)
Exemplo n.º 11
0
 def test_empty_groups_same_meaning(self):
     left = FactorGroup()
     right = FactorGroup()
     assert left.means(right)