15SCENARIO(
"Reading space delimited numeric data",
"[ioutils::readColumns]" )
17 GIVEN(
"a single column of floating point numbers" )
19 std::string fname =
"/tmp/readcol_test_single_col_float.dat";
22 fout <<
"#a commment\n";
25 fout <<
"4.96 #with comment\n";
30 WHEN(
"reading as int" )
32 std::vector<int> data0;
35 REQUIRE(data0.size() == 5);
36 REQUIRE(data0[0] == 1);
37 REQUIRE(data0[1] == 2);
38 REQUIRE(data0[2] == 4);
39 REQUIRE(data0[3] == 5);
40 REQUIRE(data0[4] == 1);
43 WHEN(
"reading as float" )
45 std::vector<float> data0;
48 REQUIRE(data0.size() == 5);
49 REQUIRE_THAT(data0[0], WithinRel(1.23, 1e-5));
50 REQUIRE_THAT(data0[1], WithinRel(2.15, 1e-5));
51 REQUIRE_THAT(data0[2], WithinRel(4.96, 1e-5));
52 REQUIRE_THAT(data0[3], WithinRel(5.23, 1e-5));
53 REQUIRE_THAT(data0[4], WithinRel(1e-9, 1e-5));
58 GIVEN(
"a two columns of floating point numbers" )
60 std::string fname =
"/tmp/readcol_test_two_cols_float.dat";
63 fout <<
"#a commment\n";
64 fout <<
"1.23 6.78\n";
65 fout <<
"2.15 8.88\n";
66 fout <<
"4.96 -2.33#with comment\n";
69 fout <<
"5.23 9.9e5\n";
70 fout <<
"1e-9 -5.6e2\n";
71 fout <<
" #comment at end not on first char and no newline";
74 WHEN(
"reading both as int" )
76 std::vector<int> data0, data1;
79 REQUIRE(data0.size() == 5);
80 REQUIRE(data0[0] == 1);
81 REQUIRE(data0[1] == 2);
82 REQUIRE(data0[2] == 4);
83 REQUIRE(data0[3] == 5);
84 REQUIRE(data0[4] == 1);
86 REQUIRE(data1.size() == 5);
87 REQUIRE(data1[0] == 6);
88 REQUIRE(data1[1] == 8);
89 REQUIRE(data1[2] == -2);
90 REQUIRE(data1[3] == 9);
91 REQUIRE(data1[4] == -5);
94 WHEN(
"reading both as float" )
96 std::vector<float> data0, data1;
99 REQUIRE(data0.size() == 5);
100 REQUIRE_THAT(data0[0], WithinRel(1.23, 1e-5));
101 REQUIRE_THAT(data0[1], WithinRel(2.15, 1e-5));
102 REQUIRE_THAT(data0[2], WithinRel(4.96, 1e-5));
103 REQUIRE_THAT(data0[3], WithinRel(5.23, 1e-5));
104 REQUIRE_THAT(data0[4], WithinRel(1e-9, 1e-5));
106 REQUIRE(data1.size() == 5);
107 REQUIRE_THAT(data1[0], WithinRel(6.78, 1e-5));
108 REQUIRE_THAT(data1[1], WithinRel(8.88, 1e-5));
109 REQUIRE_THAT(data1[2], WithinRel(-2.33, 1e-5));
110 REQUIRE_THAT(data1[3], WithinRel(9.9e5, 1e-5));
111 REQUIRE_THAT(data1[4], WithinRel(-5.6e2, 1e-5));