示例#1
0
class TestRandom(unittest.TestCase):
    def setUp(self):
        self.bandit = coin_flip()
        self.algo = Random(self.bandit)

    def test_suggest_1(self):
        print 'EXPR', self.bandit.expr
        docs = self.algo.suggest([0], Trials())
        assert len(docs) == 1
        print 'DOCS', docs
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        print 'TRIALS', trials
        assert docs[0]['misc']['idxs']['flip'] == [0]
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        assert idxs['flip'] == [0]

    def test_suggest_N(self, N=10):
        assert N <= 10
        docs = self.algo.suggest(range(N), Trials())
        print 'docs', docs
        assert len(docs) == N
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        print 'idxs', idxs
        print 'vals', vals
        assert len(idxs) == 1
        assert len(vals) == 1
        assert idxs['flip'] == range(N)
        # -- only works when N == 5
        assert np.all(vals['flip'] == [0, 1, 0, 0, 0, 0,  0, 1, 1, 0][:N])

    def test_arbitrary_range(self, N=10):
        assert N <= 10
        new_ids = [-2, 0, 7, 'a', '007', 66, 'a3', '899', 23, 2333][:N]
        docs = self.algo.suggest(new_ids, Trials())
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        assert len(docs) == N
        assert len(idxs) == 1
        assert len(vals) == 1
        print vals
        assert idxs['flip'] == new_ids

        # -- assert that the random seed matches that of Jan 8/2013
        assert np.all(vals['flip'] == [0, 1, 0, 0, 0, 0, 0, 1, 1, 0][:N])

    def test_suggest_all(self):
        for ii in range(1, 10):
            self.setUp()
            self.test_suggest_N(ii)

    def test_arbitrary_all(self):
        for ii in range(1, 10):
            self.setUp()
            self.test_arbitrary_range(ii)
示例#2
0
class TestRandom(unittest.TestCase):
    def setUp(self):
        self.bandit = coin_flip()
        self.algo = Random(self.bandit)

    def test_suggest_1(self):
        print 'EXPR', self.bandit.expr
        docs = self.algo.suggest([0], Trials())
        assert len(docs) == 1
        print 'DOCS', docs
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        print 'TRIALS', trials
        assert docs[0]['misc']['idxs']['flip'] == [0]
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        assert idxs['flip'] == [0]

    def test_suggest_5(self):
        docs = self.algo.suggest(range(5), Trials())
        print docs
        assert len(docs) == 5
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        print idxs
        print vals
        assert len(idxs) == 1
        assert len(vals) == 1
        assert idxs['flip'] == range(5)
        assert np.all(vals['flip'] == [1, 1, 0, 1, 0])

    def test_arbitrary_range(self):
        new_ids = [-2, 0, 7, 'a', '007']
        docs = self.algo.suggest(new_ids, Trials())
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        assert len(docs) == 5
        assert len(idxs) == 1
        assert len(vals) == 1
        print vals
        assert idxs['flip'] == new_ids
        assert np.all(vals['flip'] == [0, 1, 0, 1, 1])
示例#3
0
class TestRandom(unittest.TestCase):
    def setUp(self):
        self.bandit = coin_flip()
        self.algo = Random(self.bandit)

    def test_suggest_1(self):
        print 'EXPR', self.bandit.expr
        docs = self.algo.suggest([0], Trials())
        assert len(docs) == 1
        print 'DOCS', docs
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        print 'TRIALS', trials
        assert docs[0]['misc']['idxs']['flip'] == [0]
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        assert idxs['flip'] == [0]

    def test_suggest_5(self):
        docs = self.algo.suggest(range(5), Trials())
        print docs
        assert len(docs) == 5
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        print idxs
        print vals
        assert len(idxs) == 1
        assert len(vals) == 1
        assert idxs['flip'] == range(5)
        assert np.all(vals['flip'] == [1, 1, 0, 1, 0])

    def test_arbitrary_range(self):
        new_ids = [-2, 0, 7, 'a', '007']
        docs = self.algo.suggest(new_ids, Trials())
        # -- assert validity of docs
        trials = trials_from_docs(docs)
        idxs, vals = miscs_to_idxs_vals(trials.miscs)
        assert len(docs) == 5
        assert len(idxs) == 1
        assert len(vals) == 1
        print vals
        assert idxs['flip'] == new_ids
        assert np.all(vals['flip'] == [0, 1, 0, 1, 1])