def test_log_param(self): run = self._run_factory() self.session.commit() tkey = 'blahmetric' tval = '100.0' param = entities.Param(tkey, tval) param2 = entities.Param('new param', 'new key') self.store.log_param(run.run_uuid, param) self.store.log_param(run.run_uuid, param2) actual = self.session.query(models.SqlParam).filter_by(key=tkey, value=tval) self.assertIsNotNone(actual) run = self.store.get_run(run.run_uuid) self.assertEqual(2, len(run.data.params)) found = False for m in run.data.params: if m.key == tkey and m.value == tval: found = True self.assertTrue(found)
def test_search_params(self): experiment_id = self._experiment_factory('search_params') r1 = self._run_factory(self._get_run_configs('r1', experiment_id)).run_uuid r2 = self._run_factory(self._get_run_configs('r2', experiment_id)).run_uuid self.store.log_param(r1, entities.Param('generic_param', 'p_val')) self.store.log_param(r2, entities.Param('generic_param', 'p_val')) self.store.log_param(r1, entities.Param('generic_2', 'some value')) self.store.log_param(r2, entities.Param('generic_2', 'another value')) self.store.log_param(r1, entities.Param('p_a', 'abc')) self.store.log_param(r2, entities.Param('p_b', 'ABC')) # test search returns both runs expr = self._param_expression("generic_param", "=", "p_val") self.assertSequenceEqual([r1, r2], self._search(experiment_id, param_expressions=[expr])) # test search returns appropriate run (same key different values per run) expr = self._param_expression("generic_2", "=", "some value") self.assertSequenceEqual([r1], self._search(experiment_id, param_expressions=[expr])) expr = self._param_expression("generic_2", "=", "another value") self.assertSequenceEqual([r2], self._search(experiment_id, param_expressions=[expr])) expr = self._param_expression("generic_param", "=", "wrong_val") self.assertSequenceEqual([], self._search(experiment_id, param_expressions=[expr])) expr = self._param_expression("generic_param", "!=", "p_val") self.assertSequenceEqual([], self._search(experiment_id, param_expressions=[expr])) expr = self._param_expression("generic_param", "!=", "wrong_val") self.assertSequenceEqual([r1, r2], self._search(experiment_id, param_expressions=[expr])) expr = self._param_expression("generic_2", "!=", "wrong_val") self.assertSequenceEqual([r1, r2], self._search(experiment_id, param_expressions=[expr])) expr = self._param_expression("p_a", "=", "abc") self.assertSequenceEqual([r1], self._search(experiment_id, param_expressions=[expr])) expr = self._param_expression("p_b", "=", "ABC") self.assertSequenceEqual([r2], self._search(experiment_id, param_expressions=[expr]))