Exemplo n.º 1
0
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}"
Exemplo n.º 2
0
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}'
Exemplo n.º 3
0
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'
Exemplo n.º 5
0
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()
Exemplo n.º 6
0
    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()
Exemplo n.º 7
0
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
Exemplo n.º 8
0
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"