def test_nfair_gamma(self): fsm = self.transmission_post_fair() transmit = eval_simple_expression(fsm, "transmitter.action = transmit") false = BDD.false(fsm.bddEnc.DDmanager) self.assertTrue(fsm.reachable_states <= nfair_gamma(fsm, {"transmitter"})) self.assertEqual(false, nfair_gamma(fsm, {"sender"})) strats = split(fsm, fsm.protocol({"transmitter"}), {"transmitter"}) for strat in strats: if (strat & transmit).isnot_false(): self.assertTrue(nfair_gamma(fsm, {"transmitter"}, strat).is_false()) else: self.assertTrue(fsm.reachable_states <= nfair_gamma(fsm, {"transmitter"}, strat))
def test_nfair_gamma(self): fsm = self.transmission_post_fair() transmit = eval_simple_expression(fsm, "transmitter.action = transmit") false = BDD.false(fsm.bddEnc.DDmanager) self.assertTrue( fsm.reachable_states <= nfair_gamma(fsm, {'transmitter'})) self.assertEqual(false, nfair_gamma(fsm, {'sender'})) strats = split(fsm, fsm.protocol({'transmitter'}), {'transmitter'}) for strat in strats: if (strat & transmit).isnot_false(): self.assertTrue( nfair_gamma(fsm, {'transmitter'}, strat).is_false()) else: self.assertTrue(fsm.reachable_states <= nfair_gamma( fsm, {'transmitter'}, strat))
def test_nfair_gamma_cardgame_post_fair(self): fsm = self.cardgame_post_fair() s0 = eval_simple_expression(fsm, "step = 0") s1 = eval_simple_expression(fsm, "step = 1") s2 = eval_simple_expression(fsm, "step = 2") pa = eval_simple_expression(fsm, "pcard = Ac") pk = eval_simple_expression(fsm, "pcard = K") pq = eval_simple_expression(fsm, "pcard = Q") da = eval_simple_expression(fsm, "dcard = Ac") dk = eval_simple_expression(fsm, "dcard = K") dq = eval_simple_expression(fsm, "dcard = Q") dda = eval_simple_expression(fsm, "ddcard = Ac") ddk = eval_simple_expression(fsm, "ddcard = K") ddq = eval_simple_expression(fsm, "ddcard = Q") pan = eval_simple_expression(fsm, "player.action = none") pak = eval_simple_expression(fsm, "player.action = keep") pas = eval_simple_expression(fsm, "player.action = swap") dan = eval_simple_expression(fsm, "dealer.action = none") win = eval_simple_expression(fsm, "win") lose = eval_simple_expression(fsm, "lose") true = eval_simple_expression(fsm, "TRUE") false = eval_simple_expression(fsm, "FALSE") self.assertEqual(false, nfair_gamma(fsm, {'player'})) self.assertTrue( fsm.reachable_states & fsm.bddEnc.statesInputsMask <= nfair_gamma(fsm, {'dealer'})) strats = split(fsm, fsm.protocol({'dealer'}), {'dealer'}) for strat in strats: self.assertTrue(fsm.reachable_states & fsm.bddEnc.statesInputsMask <= nfair_gamma(fsm, {'dealer'}, strat))
def test_nfair_gamma_cardgame_post_fair(self): fsm = self.cardgame_post_fair() s0 = eval_simple_expression(fsm, "step = 0") s1 = eval_simple_expression(fsm, "step = 1") s2 = eval_simple_expression(fsm, "step = 2") pa = eval_simple_expression(fsm, "pcard = Ac") pk = eval_simple_expression(fsm, "pcard = K") pq = eval_simple_expression(fsm, "pcard = Q") da = eval_simple_expression(fsm, "dcard = Ac") dk = eval_simple_expression(fsm, "dcard = K") dq = eval_simple_expression(fsm, "dcard = Q") dda = eval_simple_expression(fsm, "ddcard = Ac") ddk = eval_simple_expression(fsm, "ddcard = K") ddq = eval_simple_expression(fsm, "ddcard = Q") pan = eval_simple_expression(fsm, "player.action = none") pak = eval_simple_expression(fsm, "player.action = keep") pas = eval_simple_expression(fsm, "player.action = swap") dan = eval_simple_expression(fsm, "dealer.action = none") win = eval_simple_expression(fsm, "win") lose = eval_simple_expression(fsm, "lose") true = eval_simple_expression(fsm, "TRUE") false = eval_simple_expression(fsm, "FALSE") self.assertEqual(false, nfair_gamma(fsm, {"player"})) self.assertTrue(fsm.reachable_states & fsm.bddEnc.statesInputsMask <= nfair_gamma(fsm, {"dealer"})) strats = split(fsm, fsm.protocol({"dealer"}), {"dealer"}) for strat in strats: self.assertTrue(fsm.reachable_states & fsm.bddEnc.statesInputsMask <= nfair_gamma(fsm, {"dealer"}, strat))