<s> import unittest <EOL> from fractions import Fraction as Frac <EOL> from smt . decoder . stackdecoder import _future_cost_estimate <EOL> from smt . decoder . stackdecoder import _create_estimate_dict <EOL> from smt . decoder . stackdecoder import ArgumentNotSatisfied <EOL> from smt . decoder . stackdecoder import future_cost_estimate <EOL> from smt . decoder . stackdecoder import TransPhraseProb <EOL> from smt . decoder . stackdecoder import Phrase <EOL> from sqlalchemy import create_engine <EOL> from sqlalchemy . orm import sessionmaker <EOL> class DBSetup ( object ) : <EOL> def __init__ ( self , db = "<STR_LIT>" ) : <EOL> self . db = db <EOL> self . tables = [ TransPhraseProb , Phrase ] <EOL> def __enter__ ( self ) : <EOL> self . engine = create_engine ( self . db ) <EOL> for Table in self . tables : <EOL> Table . __table__ . create ( self . engine ) <EOL> Session = sessionmaker ( bind = self . engine ) <EOL> self . session = Session ( ) <EOL> return self <EOL> def __exit__ ( self , exc_type , exc_value , traceback ) : <EOL> for Table in self . tables : <EOL> Table . __table__ . drop ( self . engine , checkfirst = True ) <EOL> self . session . close ( ) <EOL> class FutureCostEstimateTest ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . maxDiff = None <EOL> def test_future_cost_estimate_2to1 ( self ) : <EOL> sentences = u"<STR_LIT>" . split ( ) <EOL> transfrom = <NUM_LIT:2> <EOL> transto = <NUM_LIT:1> <EOL> init_val = <NUM_LIT> <EOL> db = "<STR_LIT>" <EOL> dataset = [ ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:3> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:15> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT:time>" , Frac ( - <NUM_LIT:16> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT:time>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:4> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:4> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:32> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ] <EOL> val = { ( <NUM_LIT:1> , <NUM_LIT:1> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:2> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:6> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:7> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:8> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:8> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:9> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> } <EOL> with DBSetup ( db ) as dbobj : <EOL> dbobj . session . add_all ( TransPhraseProb ( lang1p = item [ <NUM_LIT:0> ] , <EOL> lang2p = item [ <NUM_LIT:1> ] , <EOL> p2_1 = item [ <NUM_LIT:2> ] , <EOL> p1_2 = item [ <NUM_LIT:3> ] ) <EOL> for item in dataset ) <EOL> dbobj . session . add_all ( Phrase ( lang1p = item [ <NUM_LIT:0> ] , <EOL> lang2p = item [ <NUM_LIT:1> ] ) <EOL> for item in dataset ) <EOL> dbobj . session . commit ( ) <EOL> ans = future_cost_estimate ( sentences , <EOL> transfrom = transfrom , <EOL> transto = transto , <EOL> init_val = init_val , <EOL> db = db ) <EOL> self . assertEqual ( ans , val ) <EOL> def test_future_cost_estimate_2to1_argument_not_satisfied ( self ) : <EOL> sentences = u"<STR_LIT>" . split ( ) <EOL> transfrom = <NUM_LIT:2> <EOL> transto = <NUM_LIT:1> <EOL> init_val = <NUM_LIT> <EOL> db = "<STR_LIT>" <EOL> dataset = [ ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:3> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:15> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT:time>" , Frac ( - <NUM_LIT:16> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT:time>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:4> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:4> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:32> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ] <EOL> val = { ( <NUM_LIT:1> , <NUM_LIT:1> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:2> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:6> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:7> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:8> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:8> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:9> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> } <EOL> with DBSetup ( db ) as dbobj : <EOL> dbobj . session . add_all ( TransPhraseProb ( lang1p = item [ <NUM_LIT:0> ] , <EOL> lang2p = item [ <NUM_LIT:1> ] , <EOL> p2_1 = item [ <NUM_LIT:2> ] , <EOL> p1_2 = item [ <NUM_LIT:3> ] ) <EOL> for item in dataset ) <EOL> dbobj . session . add_all ( Phrase ( lang1p = item [ <NUM_LIT:0> ] , <EOL> lang2p = item [ <NUM_LIT:1> ] ) <EOL> for item in dataset ) <EOL> dbobj . session . commit ( ) <EOL> ans = future_cost_estimate ( sentences , <EOL> transfrom = transfrom , <EOL> transto = transto , <EOL> init_val = init_val , <EOL> db = db ) <EOL> self . assertEqual ( ans , val ) <EOL> def test_future_cost_estimate_1to2 ( self ) : <EOL> sentences = u"<STR_LIT>" . split ( ) <EOL> transfrom = <NUM_LIT:1> <EOL> transto = <NUM_LIT:2> <EOL> init_val = <NUM_LIT> <EOL> db = "<STR_LIT>" <EOL> dataset = [ ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:3> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:15> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:1> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:2> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT:time>" , Frac ( - <NUM_LIT:16> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT:time>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:4> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:4> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT:32> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ( "<STR_LIT:1>" , "<STR_LIT>" , Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <NUM_LIT:0> ) , <EOL> ] <EOL> val = { ( <NUM_LIT:1> , <NUM_LIT:1> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:2> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:1> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:2> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:3> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:3> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:4> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:4> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:5> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:6> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:5> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:6> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:6> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:7> ) : - <NUM_LIT:1.0> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:7> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:8> , <NUM_LIT:8> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:8> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> ( <NUM_LIT:9> , <NUM_LIT:9> ) : - <NUM_LIT> , <EOL> } <EOL> with DBSetup ( db ) as dbobj : <EOL> dbobj . session . add_all ( TransPhraseProb ( lang2p = item [ <NUM_LIT:0> ] , <EOL> lang1p = item [ <NUM_LIT:1> ] , <EOL> p1_2 = item [ <NUM_LIT:2> ] , <EOL> p2_1 = item [ <NUM_LIT:3> ] ) <EOL> for item in dataset ) <EOL> dbobj . session . add_all ( Phrase ( lang1p = item [ <NUM_LIT:0> ] , <EOL> lang2p = item [ <NUM_LIT:1> ] ) <EOL> for item in dataset ) <EOL> dbobj . session . commit ( ) <EOL> ans = future_cost_estimate ( sentences , <EOL> transfrom = transfrom , <EOL> transto = transto , <EOL> init_val = init_val , <EOL> db = db ) <EOL> self . assertEqual ( ans , val ) <EOL> def test__future_cost_estimate ( self ) : <EOL> sentences = u"<STR_LIT>" . split ( ) <EOL> phrase_prob = { ( <NUM_LIT:1> , <NUM_LIT:1> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : Frac ( - <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:3> ) : Frac ( - <NUM_LIT:15> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:9> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT:16> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT:4> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> } <EOL> val = { ( <NUM_LIT:1> , <NUM_LIT:1> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT:2> ) : Frac ( - <NUM_LIT:3> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT:3> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:1> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : Frac ( - <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:3> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:3> ) : Frac ( - <NUM_LIT:15> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:9> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT:16> , <NUM_LIT:10> ) } <EOL> ans = _future_cost_estimate ( sentences , <EOL> phrase_prob ) <EOL> self . assertEqual ( ans , val ) <EOL> def test__future_cost_estimate_dict_not_satisfied ( self ) : <EOL> sentences = u"<STR_LIT>" . split ( ) <EOL> phrase_prob = { ( <NUM_LIT:1> , <NUM_LIT:1> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : Frac ( - <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:9> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT:16> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT:4> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> } <EOL> self . assertRaises ( ArgumentNotSatisfied , <EOL> _future_cost_estimate , <EOL> sentences , <EOL> phrase_prob ) <EOL> def test_create_estimate_dict ( self ) : <EOL> sentences = u"<STR_LIT>" . split ( ) <EOL> init_val = Frac ( - <NUM_LIT:100> ) <EOL> phrase_prob = { ( <NUM_LIT:1> , <NUM_LIT:1> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : Frac ( - <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:9> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT:16> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT:4> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> } <EOL> correct = { ( <NUM_LIT:1> , <NUM_LIT:1> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:2> , <NUM_LIT:2> ) : Frac ( - <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:3> ) : init_val , <EOL> ( <NUM_LIT:4> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:5> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:6> ) : init_val , <EOL> ( <NUM_LIT:7> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT:1> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:8> ) : init_val , <EOL> ( <NUM_LIT:9> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT:16> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:3> , <NUM_LIT:4> ) : Frac ( - <NUM_LIT:4> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:6> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:8> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:5> , <NUM_LIT:7> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:8> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:7> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> ( <NUM_LIT:6> , <NUM_LIT:9> ) : Frac ( - <NUM_LIT> , <NUM_LIT:10> ) , <EOL> } <EOL> ans = _create_estimate_dict ( sentences , <EOL> phrase_prob , <EOL> init_val = init_val ) <EOL> self . assertEqual ( ans , correct ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> unittest . main ( ) </s>
