예제 #1
0
def test__get_header_string():

    parameter_names = ['param{}'.format(i + 1) for i in range(3)]
    qoi_names = ['qoi{}'.format(i + 1) for i in range(5)]
    error_names = ['err{}'.format(i + 1) for i in range(5)]

    datafile = PyposmatDataFile()
    s = datafile.get_header_string(parameter_names=parameter_names,
                                   qoi_names=qoi_names,
                                   error_names=error_names)

    assert type(s) is str

    # check assignment
    assert type(datafile.parameter_names) is list
    assert len(datafile.parameter_names) == len(parameter_names)
    for i, v in enumerate(parameter_names):
        assert datafile.parameter_names[i] == v

    assert type(datafile.qoi_names) is list
    assert len(datafile.qoi_names) == len(qoi_names)
    for i, v in enumerate(qoi_names):
        assert datafile.qoi_names[i] == v

    assert type(datafile.error_names) is list
    assert len(datafile.error_names) == len(error_names)
    for i, v in enumerate(error_names):
        assert datafile.error_names[i] == v

    # check string
    lines = s.split("\n")
    line_1 = lines[0].strip().split(",")
    line_2 = lines[1].strip().split(",")

    # check line 1
    assert 'sim_id' in line_1
    assert 'cluster_id' not in line_1
    for v in parameter_names:
        assert v in line_1
    for v in qoi_names:
        assert v in line_1
    for v in error_names:
        assert v in line_1

    # check line 2
    assert line_2.count('sim_id') == 1
    assert line_2.count('cluster_id') == 0
    assert line_2.count('param') == len(parameter_names)
    assert line_2.count('qoi') == len(qoi_names)
    assert line_2.count('err') == len(error_names)
    assert line_2.count('qoi_v') == 0
    assert line_2.count('err_v') == 0
예제 #2
0
    results['qois'] = OrderedDict([(v, 2.) for v in qoi_names])
    results['errors'] = OrderedDict([(v, 3.0) for v in error_names])

    datafile.write_simulation_results(sim_id, results)

    assert os.path.isfile(datafile_out_fn)

    datafile_read = PyposmatDataFile()
    datafile_read.read(filename=datafile_out_fn)


if __name__ == "__main__":

    parameter_names = ['param{}'.format(i + 1) for i in range(3)]
    qoi_names = ['qoi{}'.format(i + 1) for i in range(5)]
    error_names = ['err{}'.format(i + 1) for i in range(5)]

    datafile = PyposmatDataFile()
    s = datafile.get_header_string(w_cluster_id=False,
                                   parameter_names=parameter_names,
                                   qoi_names=qoi_names,
                                   error_names=error_names)
    print(80 * '=')
    print("{:^80}".format("header string"))
    print(80 * '=')
    print(s)
    print(80 * '=')
    print("{:^80}".format("attributes"))
    print(80 * '=')
    print('sim_id:{}'.format(datafile.parameter_names))