def test_log_probability_proposals_FiniteWithoutBVArgs(self): # import the grammar from Grammars import FiniteWithoutBVArgs self.G = FiniteWithoutBVArgs.g # the RegenerationProposal class rp = RegenerationProposal(self.G) # sample from G 100 times for i in range(100): X = self.G.generate('START') # propose to a new tree Y = rp.propose_tree(X)[0] # count probability manually prob = FiniteWithoutBVArgs.log_probability(Y) # check that it's equal to .log_probability() self.assertTrue(math.fabs(prob - Y.log_probability()) < 0.00000001)
def test_log_probability_FiniteWithoutBVArgs(self): # import the grammar from Grammars import FiniteWithoutBVArgs self.G = FiniteWithoutBVArgs.g # sample from G 100 times for i in range(100): t = self.G.generate('START') # count probability manually prob = FiniteWithoutBVArgs.log_probability(t) # Debugging #print t, prob, t.log_probability(), prob - t.log_probability() #t.fullprint() # check that it's equal to .log_probability() self.assertTrue(math.fabs(prob - t.log_probability()) < 0.00000001)