def test_invalid_arg_text(): with experiment_testing_context(new_experiment_lib=True): @experiment_function def my_invalid_arg_test(a=1, b={'c': 3, 'd': 4}): return a + b['c'] + b['d'] record = my_invalid_arg_test.run() assert get_record_invalid_arg_string(record, recursive=True) == '<No Change>' clear_all_experiments() @experiment_function def my_invalid_arg_test(a=2, b={'c': 3, 'd': 4}): return a + b['c'] + b['d'] assert get_record_invalid_arg_string( record, recursive=True) == 'Change: {a:1}->{a:2}' clear_all_experiments() @experiment_function def my_invalid_arg_test(a=2, b={'c': 3, 'd': 2}): return a + b['c'] + b['d'] assert get_record_invalid_arg_string( record, recursive=True) == "Change: {a:1,b['d']:4}->{a:2,b['d']:2}"
def test_invalid_arg_text_when_object_arg(): with experiment_testing_context(new_experiment_lib=True): @experiment_function def my_unhashable_arg_test(a=MyArgumentObject(a=3)): return a.a + 2 record = my_unhashable_arg_test.run() assert record.get_result() == 5 assert get_record_invalid_arg_string(record, recursive=True) == '<No Change>' # --------------------- clear_all_experiments() @experiment_function def my_unhashable_arg_test(a=MyArgumentObject(a=3)): return a.a + 2 assert get_record_invalid_arg_string(record, recursive=True) == '<No Change>' # --------------------- clear_all_experiments() @experiment_function def my_unhashable_arg_test(a=MyArgumentObject(a=4)): return a.a + 2 assert get_record_invalid_arg_string( record, recursive=True) == 'Change: {a.a:3}->{a.a:4}'
def test_invalid_arg_detection(): """ Check that we notice when an experiment is redefined with new args. """ with experiment_testing_context(new_experiment_lib=True): @experiment_function def my_experiment_gfdsbhtds(a=1, b=[2, 3.], c={'a': 5, 'b': [6, 7]}): return a + 1 rec = my_experiment_gfdsbhtds.run() assert rec.args_valid() clear_all_experiments() @experiment_function def my_experiment_gfdsbhtds(a=1, b=[2, 3.], c={'a': 5, 'b': [6, 7]}): return a + 1 assert rec.args_valid() # Assert that the args still match clear_all_experiments() @experiment_function def my_experiment_gfdsbhtds(a=1, b=[2, 3.], c={ 'a': 5, 'b': [6, 8] }): # CHANGE IN ARGS! return a + 1 assert not rec.args_valid()
def test_invalid_arg_text_when_object_arg(): with experiment_testing_context(new_experiment_lib=True): @experiment_function def my_unhashable_arg_test(a=MyArgumentObject(a=3)): return a.a+2 record = my_unhashable_arg_test.run() assert record.get_result() == 5 assert get_record_invalid_arg_string(record, recursive=True) == '<No Change>' # --------------------- clear_all_experiments() @experiment_function def my_unhashable_arg_test(a=MyArgumentObject(a=3)): return a.a+2 assert get_record_invalid_arg_string(record, recursive=True) == '<No Change>' # --------------------- clear_all_experiments() @experiment_function def my_unhashable_arg_test(a=MyArgumentObject(a=4)): return a.a+2 assert get_record_invalid_arg_string(record, recursive=True) == 'Change: a.a:3->4'
def test_invalid_arg_detection(): """ Check that we notice when an experiment is redefined with new args. """ with experiment_testing_context(new_experiment_lib=True): @experiment_function def my_experiment_gfdsbhtds(a=1, b=[2, 3.], c={'a': 5, 'b': [6, 7]}): return a+1 rec = my_experiment_gfdsbhtds.run() assert rec.args_valid() clear_all_experiments() @experiment_function def my_experiment_gfdsbhtds(a=1, b=[2, 3.], c={'a': 5, 'b': [6, 7]}): return a+1 assert rec.args_valid() # Assert that the args still match clear_all_experiments() @experiment_function def my_experiment_gfdsbhtds(a=1, b=[2, 3.], c={'a': 5, 'b': [6, 8]}): # CHANGE IN ARGS! return a+1 assert not rec.args_valid()
def _register_variants(self, rebuild_grammar=True): clear_all_experiments() if rebuild_grammar: for experiment_name, experiment in self.experiment_db.get_all(): Grammar.construct(experiment['grammar_version'], experiment['function_provider'], experiment['experiment_id']) self.run_evolution.variants = OrderedDict( ) # for some reason, Artemis doesn't clear this for experiment_name, experiment in self.experiment_db.get_all(): self.run_evolution.add_variant(variant_name=experiment_name, **experiment) self.variants = self.run_evolution.get_variants()
def test_invalid_arg_detection_2(): """ Check that we notice when an experiment is redefined with new args. """ with experiment_testing_context(new_experiment_lib=True): a = {"a%s" % i for i in range(100)} @experiment_function def my_experiment_gfdsbhtds(a=a): return None rec = my_experiment_gfdsbhtds.run() assert rec.args_valid() is True clear_all_experiments() @experiment_function def my_experiment_gfdsbhtds(a=a): return None assert rec.args_valid() is True # Assert that the args still match
def test_invalid_arg_detection_2(): """ Check that we notice when an experiment is redefined with new args. """ with experiment_testing_context(new_experiment_lib=True): a = {"a%s"%i for i in range(100)} @experiment_function def my_experiment_gfdsbhtds(a=a): return None rec = my_experiment_gfdsbhtds.run() assert rec.args_valid() is True clear_all_experiments() @experiment_function def my_experiment_gfdsbhtds(a=a): return None assert rec.args_valid() is True # Assert that the args still match
def test_invalid_arg_text(): with experiment_testing_context(new_experiment_lib=True): @experiment_function def my_invalid_arg_test(a=1, b={'c': 3, 'd': 4}): return a+b['c']+b['d'] record = my_invalid_arg_test.run() assert get_record_invalid_arg_string(record, recursive=True) == '<No Change>' clear_all_experiments() @experiment_function def my_invalid_arg_test(a=2, b={'c': 3, 'd': 4}): return a+b['c']+b['d'] assert get_record_invalid_arg_string(record, recursive=True) == 'Change: a:1->2' clear_all_experiments() @experiment_function def my_invalid_arg_test(a=2, b={'c': 3, 'd': 2}): return a+b['c']+b['d'] assert get_record_invalid_arg_string(record, recursive=True) == "Change: a:1->2, b['d']:4->2"