コード例 #1
0
def test_fails_on_duplicate_input_data(input_data_file_with_duplicates,
                                       output_data_file):

    with pytest.raises(ValueError):

        data_model = ModelFromData(input_data_file_with_duplicates,
                                   output_data_file, 1.)
        data_model.evaluate([1, 2, 3, 4, 5])
コード例 #2
0
def test_fails_on_unmatched_input(input_data_file, output_data_file):
    """
    Ensure an exception is raised if an input supplied to evaluate does not
    have a match in the input data.
    """
    data_model = ModelFromData(input_data_file, output_data_file, 1.)

    with pytest.raises(ValueError):
        data_model.evaluate(-1)
コード例 #3
0
def test_single_row_2d_input_data(input_data_file_2d, output_data_file_2d):
    """
    Test ability to evaluate one row of input data passed in as 2d array.
    """
    # Initialize model from spring-mass example data files:
    data_model = ModelFromData(input_data_file_2d, output_data_file_2d, 1.)

    # Should be able to do this without an exception.
    one_row_2d_input = np.array([data_model._inputs[0]])
    data_model.evaluate(one_row_2d_input)
コード例 #4
0
def test_fails_on_duplicate_input_data(input_data_file_with_duplicates,
                                       output_data_file):
    """
    Ensure an exception is raised if there are duplicate inputs found in the
    input data.
    """
    with pytest.raises(ValueError):

        data_model = ModelFromData(input_data_file_with_duplicates,
                                   output_data_file, 1.)
        data_model.evaluate([1, 2, 3, 4, 5])
コード例 #5
0
def test_evaluate_fails_on_invalid_input(input_data_file, output_data_file):

    data_model = ModelFromData(input_data_file, output_data_file, 1.)

    bogus_input = "five"

    with pytest.raises(TypeError):
        data_model.evaluate(bogus_input)

    bogus_input = [[1, 2], [3, 4]]

    with pytest.raises(ValueError):
        data_model.evaluate(bogus_input)
コード例 #6
0
def test_evaluate_with_cost_delay(cost, input_data_file, output_data_file):

    model = ModelFromData(input_data_file, output_data_file, cost=cost,
                          wait_cost_duration=True)

    sample = model._inputs[0]

    start_time = timeit.default_timer()
    model.evaluate(sample)
    evaluation_time = timeit.default_timer() - start_time

    # Ensure evaluation time was close to specified cost.
    assert np.abs(evaluation_time - cost) < .01
コード例 #7
0
def test_evaluate_fails_on_invalid_input(input_data_file, output_data_file):
    """
    Ensure that an invalid input triggers an exception in evaluate.
    """
    data_model = ModelFromData(input_data_file, output_data_file, 1.)

    bogus_input = "five"

    with pytest.raises(TypeError):
        data_model.evaluate(bogus_input)

    bogus_input = [[1, 2], [3, 4]]

    with pytest.raises(ValueError):
        data_model.evaluate(bogus_input)
コード例 #8
0
def test_evaluate_with_cost_delay(cost, input_data_file, output_data_file):
    """
    Test ability to wait for the duration of the cost specified for the model
    when evaluating a sample.
    """
    model = ModelFromData(input_data_file,
                          output_data_file,
                          cost=cost,
                          wait_cost_duration=True)

    sample = model._inputs[0]

    start_time = timeit.default_timer()
    model.evaluate(sample)
    evaluation_time = timeit.default_timer() - start_time

    # Ensure evaluation time was close to specified cost.
    assert np.abs(evaluation_time - cost) < .01
コード例 #9
0
def test_evaluate_2d_data(input_data_file_2d, output_data_file_2d, index):

    # Initialize model from spring-mass example data files:
    data_model = ModelFromData(input_data_file_2d, output_data_file_2d, 1.)

    input_data = np.genfromtxt(input_data_file_2d)
    output_data = np.genfromtxt(output_data_file_2d)

    # Model expects arrays as inputs/outputs
    model_output = data_model.evaluate(input_data[index])

    true_output = output_data[index]
    assert np.all(np.isclose(model_output, true_output))
コード例 #10
0
def test_evaluate_1d_data(input_data_file, output_data_file, index):
    """
    Test ability to evaluate one dimensional data.
    """
    # Initialize model from spring-mass example data files:
    data_model = ModelFromData(input_data_file, output_data_file, 1.)

    input_data = np.genfromtxt(input_data_file)
    output_data = np.genfromtxt(output_data_file)

    # Model expects arrays as inputs/outputs.
    model_output = data_model.evaluate(input_data[index])

    true_output = output_data[index]
    assert np.all(np.isclose(model_output, true_output))