def test_r_grounded_semantics(self): baba = ExampleFrameworks.r_framework() grounded = Semantics.grounded(baba) self.assertEqual(1, len(grounded)) grounded_set = grounded.pop() self.assertEqual(3, len(grounded_set.elements)) self.assertTrue( all([elem in grounded_set.elements for elem in [a, b, c]]))
def test_r_grounded_semantics_with_random_variable_world(self): baba = ExampleFrameworks.r_framework() baba.rv_world = [Semantics.Sentence('s', random_variable=True)] grounded = Semantics.grounded(baba) self.assertEqual(1, len(grounded)) grounded_set = grounded.pop() self.assertEqual(2, len(grounded_set.elements)) self.assertTrue(all([elem in grounded_set.elements for elem in [b, c]]))
def test_compute_semantic_probabilities(self): g, s, i = Semantics.compute_semantic_probabilities( ExampleFrameworks.r_framework()) self.assertEqual(g, [('_a', '0.360'), ('_b', '0.400'), ('_c', '0.000'), ('a', '0.640'), ('b', '0.600'), ('c', '1.000'), ('j', '0.640'), ('s', '0.600'), ('t', '0.400')]) self.assertEqual(s, [('_a', '0.360'), ('_b', '0.400'), ('_c', '0.000'), ('a', '0.640'), ('b', '0.600'), ('c', '1.000'), ('j', '0.640'), ('s', '0.600'), ('t', '0.400')]) self.assertEqual(i, [('_a', '0.360'), ('_b', '0.400'), ('_c', '0.000'), ('a', '0.640'), ('b', '0.600'), ('c', '1.000'), ('j', '0.640'), ('s', '0.600'), ('t', '0.400')])
def test_invalid_semantic_probability(self): baba = ExampleFrameworks.r_framework() def invalid_semantics(): return Semantics.semantic_probability(-1, baba, [a]) self.assertRaises(Semantics.InvalidSemanticsException, invalid_semantics) def invalid_sentences(): return Semantics.semantic_probability(Semantics.GROUNDED, baba, [f]) self.assertRaises(Semantics.InvalidBABAException, invalid_sentences)
def test_grounded_probability(self): baba = ExampleFrameworks.r_framework() self.assertEqual( 0.64, Semantics.semantic_probability(Semantics.GROUNDED, baba, [j])) self.assertEqual( 0.64, Semantics.semantic_probability(Semantics.GROUNDED, baba, [a])) self.assertEqual( 0.64, Semantics.semantic_probability(Semantics.GROUNDED, baba, [a, j])) self.assertEqual( 0.6, Semantics.semantic_probability(Semantics.GROUNDED, baba, [b])) self.assertEqual( 1.0, Semantics.semantic_probability(Semantics.GROUNDED, baba, [c]))
def test_compute_grounded_probability(self): baba = ExampleFrameworks.r_framework() grounded_probabilities = Semantics.compute_semantic_probability( Semantics.GROUNDED, baba) self.assertEqual(0.64, grounded_probabilities[ExampleFrameworks.a.symbol]) self.assertEqual(0.36, grounded_probabilities[ExampleFrameworks._a.symbol]) self.assertEqual(0.6, grounded_probabilities[ExampleFrameworks.b.symbol]) self.assertEqual(0.4, grounded_probabilities[ExampleFrameworks._b.symbol]) self.assertEqual(1.0, grounded_probabilities[ExampleFrameworks.c.symbol]) self.assertEqual(0.0, grounded_probabilities[ExampleFrameworks._c.symbol]) self.assertEqual(0.64, grounded_probabilities[ExampleFrameworks.j.symbol])
def test_compute_ideal_probability(self): ideal_probabilities = Semantics.compute_semantic_probability( Semantics.IDEAL, ExampleFrameworks.r_framework()) self.assertAlmostEqual(0.64, ideal_probabilities[ExampleFrameworks.a.symbol]) self.assertAlmostEqual( 0.36, ideal_probabilities[ExampleFrameworks._a.symbol]) self.assertAlmostEqual(0.60, ideal_probabilities[ExampleFrameworks.b.symbol]) self.assertAlmostEqual( 0.40, ideal_probabilities[ExampleFrameworks._b.symbol]) self.assertAlmostEqual(1.0, ideal_probabilities[ExampleFrameworks.c.symbol]) self.assertAlmostEqual( 0.0, ideal_probabilities[ExampleFrameworks._c.symbol]) self.assertAlmostEqual(0.64, ideal_probabilities[ExampleFrameworks.j.symbol]) self.assertAlmostEqual(0.6, ideal_probabilities[ExampleFrameworks.s.symbol]) self.assertAlmostEqual(0.4, ideal_probabilities[ExampleFrameworks.t.symbol])
def test_derivable_with_random_variables(self): baba = ExampleFrameworks.r_framework() self.assertTrue(Semantics.derivable(baba, a, [a, b])) self.assertFalse(Semantics.derivable(baba, a, [])) self.assertFalse(Semantics.derivable(baba, ExampleFrameworks._c, []))