示例#1
0
def test_simple():
    for game in games:
        sm = lookup.by_name(game).get_sm()
        bs_0 = sm.get_initial_state()

        bs_1 = sm.new_base_state()
        bs_1.assign(bs_0)
        for i in range(3):
            advance_state(sm, bs_1)

        assert bs_0 != bs_1

        l0 = decode_state(encode_state(bs_0.to_list()))
        l1 = decode_state(encode_state(bs_1.to_list()))

        decode_bs_0 = sm.new_base_state()
        decode_bs_1 = sm.new_base_state()
        decode_bs_0.from_list(l0)
        decode_bs_1.from_list(l1)

        assert bs_0.to_string() == bs_0.to_string()

        assert decode_bs_0 == bs_0
        assert decode_bs_0.hash_code() == bs_0.hash_code()

        print len(decode_bs_0.to_string())
        print len(bs_0.to_string())

        #assert decode_bs_0.to_string() == bs_0.to_string()

        assert decode_bs_1 == bs_1
        assert decode_bs_1.hash_code() == bs_1.hash_code()
        assert decode_bs_1.to_string() == bs_1.to_string()
示例#2
0
def test_speed():
    import time

    for game in games:
        print "doing", game
        sm = lookup.by_name(game).get_sm()

        # a couple of states
        bs_0 = sm.get_initial_state()

        bs_1 = sm.new_base_state()
        bs_1.assign(bs_0)
        for i in range(5):
            advance_state(sm, bs_1)

        # encode states
        encoded_0 = encode_state(bs_0.to_list())
        encoded_1 = encode_state(bs_1.to_list())

        assert decode_state(encoded_0) == fast_decode_state(encoded_0)
        assert decode_state(encoded_1) == fast_decode_state(encoded_1)

        s = time.time()
        for i in range(10000):
            l0 = decode_state(encoded_0)
            l1 = decode_state(encoded_1)

        print "time taken %.3f msecs" % ((time.time() - s) * 1000)

        s = time.time()
        for i in range(10000):
            l0 = fast_decode_state(encoded_0)
            l1 = fast_decode_state(encoded_1)

        print "time taken %.3f msecs" % ((time.time() - s) * 1000)
示例#3
0
    def cb_from_superviser(self):
        samples = self.supervisor.fetch_samples()
        for sample in samples:
            sample.state = encode_state(sample.state)
            sample.prev_states = [encode_state(s) for s in sample.prev_states]

        self.samples += samples

        # keeps the tcp connection active for remote workers
        if time.time() > self.on_request_samples_time + self.conf.server_poll_time:
            return True

        return len(self.samples) > self.conf.min_num_samples
示例#4
0
def test_more():
    for game in games:
        print "doing", game
        sm = lookup.by_name(game).get_sm()
        bs_0 = sm.get_initial_state()

        bs_1 = sm.new_base_state()
        bs_1.assign(bs_0)
        for i in range(5):
            advance_state(sm, bs_1)

        assert bs_0 != bs_1

        # states to compare
        decode_bs_0 = sm.new_base_state()
        decode_bs_1 = sm.new_base_state()
        decode_direct_bs_0 = sm.new_base_state()
        decode_direct_bs_1 = sm.new_base_state()

        # encode as before
        en_0 = encode_state(bs_0.to_list())
        en_1 = encode_state(bs_1.to_list())

        # decode as before
        l0 = decode_state(en_0)
        l1 = decode_state(en_1)
        decode_bs_0.from_list(l0)
        decode_bs_1.from_list(l1)

        # decode directly
        decode_direct_bs_0.from_string(base64.decodestring(en_0))
        decode_direct_bs_1.from_string(base64.decodestring(en_1))

        # all checks
        assert decode_bs_0 == bs_0
        assert decode_bs_0.hash_code() == bs_0.hash_code()
        assert decode_bs_0.to_string() == bs_0.to_string()

        assert decode_direct_bs_0 == bs_0
        assert decode_direct_bs_0.hash_code() == bs_0.hash_code()
        assert decode_direct_bs_0.to_string() == bs_0.to_string()

        assert decode_bs_1 == bs_1
        assert decode_bs_1.hash_code() == bs_1.hash_code()
        assert decode_bs_1.to_string() == bs_1.to_string()

        assert decode_direct_bs_1 == bs_1
        assert decode_direct_bs_1.hash_code() == bs_1.hash_code()
        assert decode_direct_bs_1.to_string() == bs_1.to_string()

        print "good", game