Пример #1
0
def verify_simulation_results(rdata, expected_results, assert_fun,
                              atol=1e-8, rtol=1e-4):
    """
    compares all fields of the simulation results in rdata against the
    expectedResults using the provided tolerances

    Arguments:
        rdata: simulation results as returned by amici.runAmiciSimulation
        expected_results: stored test results
        atol: absolute tolerance
        rtol: relative tolerance
    """

    if expected_results.attrs['status'][0] != 0:
        assert rdata['status'] == expected_results.attrs['status'][0]
        return

    for field in expected_results.keys():
        if field == 'diagnosis':
            for subfield in ['J', 'xdot']:
                check_results(rdata, subfield,
                              expected_results[field][subfield][()],
                              assert_fun, 1e-8, 1e-8)
        else:
            if field == 's2llh':
                check_results(rdata, field, expected_results[field][()],
                              assert_fun, 1e-4, 1e-3)
            else:
                check_results(rdata, field, expected_results[field][()],
                              assert_fun, atol, rtol)

    for attr in expected_results.attrs.keys():
        check_results(rdata, attr, expected_results.attrs[attr], assert_fun,
                      atol, rtol)
Пример #2
0
def verify_simulation_results(rdata,
                              expected_results,
                              fields=None,
                              atol=1e-8,
                              rtol=1e-4):
    """
    compares all fields of the simulation results in rdata against the
    expectedResults using the provided tolerances

    :param rdata: simulation results as returned by amici.runAmiciSimulation
    :param expected_results: stored test results
    :param fields: subsetting of expected results to check
    :param atol: absolute tolerance
    :param rtol: relative tolerance
    """

    subfields = []
    if fields is None:
        attrs = expected_results.attrs.keys()
        fields = expected_results.keys()
        if 'diagnosis' in expected_results.keys():
            subfields = expected_results['diagnosis'].keys()

    else:
        attrs = [
            field for field in fields
            if field in expected_results.attrs.keys()
        ]
        if 'diagnosis' in expected_results.keys():
            subfields = [
                field for field in fields
                if field in expected_results['diagnosis'].keys()
            ]
        fields = [
            field for field in fields if field in expected_results.keys()
        ]

    if expected_results.attrs['status'][0] != 0:
        assert rdata['status'] == expected_results.attrs['status'][0]
        return

    for field in expected_results.keys():
        if field == 'diagnosis':
            for subfield in ['J', 'xdot']:
                if subfield not in subfields:
                    assert rdata[subfield] is None, field
                    continue
                check_results(rdata, subfield,
                              expected_results[field][subfield][()],
                              assert_fun, 1e-8, 1e-8)
        else:
            if field not in fields:
                assert rdata[field] is None, field
                continue
            if field == 's2llh':
                check_results(rdata, field, expected_results[field][()],
                              assert_fun, 1e-4, 1e-3)
            else:
                check_results(rdata, field, expected_results[field][()],
                              assert_fun, atol, rtol)

    for attr in attrs:
        check_results(rdata, attr, expected_results.attrs[attr], assert_fun,
                      atol, rtol)