コード例 #1
0
    def setUp(self):
        self.space = {"a": uniform(1, 10), "b": uniform(5, 15)}

        self.mock_conn = MagicMock(name="connection")
        self.mock_conn.get_space.return_value = Space(self.space)

        self.search = QuasiRandom(self.mock_conn, self.space)
コード例 #2
0
ファイル: test_cmaes.py プロジェクト: lccostajr/chocolate
    def setUp(self):
        s = {"a": uniform(1, 10), "b": uniform(5, 15)}

        self.mock_conn = MagicMock(name="connection")
        self.mock_conn.get_space.return_value = Space(s)

        self.search = CMAES(self.mock_conn, s)
コード例 #3
0
    def test_all_results(self):
        mock_conn = MagicMock(name="connection")
        space = Space({"a": uniform(1, 2)})
        repeat_col_name = "rep"

        data = [{
            "a": 0,
            "_chocolate_id": 0,
            repeat_col_name: 0,
            "_loss": 0.3
        }, {
            "a": 0,
            "_chocolate_id": 0,
            repeat_col_name: 1,
            "_loss": 0.3
        }, {
            "a": 0,
            "_chocolate_id": 0,
            repeat_col_name: 2,
            "_loss": 0.4
        }, {
            "a": 0.6,
            "_chocolate_id": 1,
            repeat_col_name: 0,
            "_loss": 0.3
        }, {
            "a": 0.6,
            "_chocolate_id": 1,
            repeat_col_name: 1,
            "_loss": 0.4
        }, {
            "a": 0.6,
            "_chocolate_id": 1,
            repeat_col_name: 2,
            "_loss": 0.5
        }]

        mock_conn.all_results.return_value = data
        mock_conn.count_results = len(data)
        mock_conn.pop_id = lambda x: x

        cv = Repeat(3, rep_col=repeat_col_name)
        cv.wrap_connection(mock_conn)
        cv.space = space

        self.assertEqual(cv.count_results(), 2)

        results = cv.all_results()
        for entry in results:
            if entry["_chocolate_id"] == 0:
                self.assertAlmostEqual(entry["_loss"], 1 / 3)
            elif entry["_chocolate_id"] == 1:
                self.assertAlmostEqual(entry["_loss"], 0.4)
コード例 #4
0
    def test_conditional_n_steps(self):
        s = [{
            "a": uniform(1, 10),
            "b": uniform(5, 15),
            "C": 0
        }, {
            "c": uniform(2, 3),
            "C": 1
        }]

        db = list()
        comp = list()

        self.mock_conn = MagicMock(name="connection")
        self.mock_conn.get_space.return_value = Space(s)
        self.mock_conn.all_results.return_value = db
        self.mock_conn.count_results.return_value = len(db)
        self.mock_conn.all_complementary.return_value = comp

        self.search = MOCMAES(self.mock_conn, s, mu=2)
        for i in range(25):
            token, p = self.search.next()

            self.assertIn("_chocolate_id", token)
            self.assertEqual(token["_chocolate_id"], i)

            entry = self.mock_conn.insert_result.call_args[0][0]
            entry["_loss_0"] = numpy.random.randn()
            entry["_loss_1"] = numpy.random.randn()
            db.append(entry)
            self.mock_conn.count_results.return_value = len(db)
            self.mock_conn.insert_result.reset_mock()

            if self.mock_conn.insert_complementary.call_count > 0:
                c = self.mock_conn.insert_complementary.call_args[0][0]
                comp.append(c)
                self.mock_conn.insert_complementary.reset_mock()
コード例 #5
0
    def test_next_new(self):
        mock_conn = MagicMock(name="connection")
        space = Space({"a": uniform(1, 2)})
        repeat_col_name = "rep"

        data = [{
            "a": 0,
            "_chocolate_id": 0,
            repeat_col_name: 0,
            "_loss": 0.3
        }, {
            "a": 0,
            "_chocolate_id": 0,
            repeat_col_name: 1,
            "_loss": 0.3
        }, {
            "a": 0,
            "_chocolate_id": 0,
            repeat_col_name: 2,
            "_loss": 0.4
        }, {
            "a": 0.6,
            "_chocolate_id": 1,
            repeat_col_name: 0,
            "_loss": 0.3
        }, {
            "a": 0.6,
            "_chocolate_id": 1,
            repeat_col_name: 1,
            "_loss": 0.4
        }, {
            "a": 0.6,
            "_chocolate_id": 1,
            repeat_col_name: 2,
            "_loss": 0.5
        }]

        mock_conn.all_results.return_value = data
        mock_conn.count_results = len(data)
        mock_conn.pop_id = lambda x: x
        mock_conn.get_space.return_value = space

        cv = Repeat(3, rep_col=repeat_col_name)
        s = Random(mock_conn, space, cv)

        token, params = s.next()
        self.assertEqual(token["_chocolate_id"], 2)
コード例 #6
0
    def setUp(self):
        self.repeat_col_name = "rep"
        self.mock_conn = MagicMock(name="connection")
        self.space = Space({"a": uniform(1, 2)})
        self.data = [{
            "a": 0,
            "_chocolate_id": 0,
            "_arm_id": 0,
            self.repeat_col_name: 0,
            "_loss": 0.3
        }, {
            "a": 0,
            "_chocolate_id": 0,
            "_arm_id": 0,
            self.repeat_col_name: 1,
            "_loss": 0.3
        }, {
            "a": 0,
            "_chocolate_id": 0,
            "_arm_id": 0,
            self.repeat_col_name: 2,
            "_loss": 0.4
        }, {
            "a": 0.6,
            "_chocolate_id": 1,
            "_arm_id": 0,
            self.repeat_col_name: 0,
            "_loss": 0.4
        }, {
            "a": 0.6,
            "_chocolate_id": 1,
            "_arm_id": 0,
            self.repeat_col_name: 1,
            "_loss": 0.5
        }]

        self.mock_conn.all_results.return_value = self.data
        self.mock_conn.count_results = len(self.data)
        self.mock_conn.pop_id = lambda x: x
        self.mock_conn.get_space.return_value = self.space
コード例 #7
0
ファイル: test_grid.py プロジェクト: zhuozecheng/chocolate
 def test_init_continuous(self):
     s = {"a": uniform(1, 2)}
     self.assertRaises(AssertionError, ParameterGrid, Space(s))