summaryrefslogtreecommitdiff
path: root/dviware/dvisvgm/tests/UtilityTest.cpp
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2023-07-08 03:01:46 +0000
committerNorbert Preining <norbert@preining.info>2023-07-08 03:01:46 +0000
commiteeed32591ed8e985fd458c43d976027ad679d682 (patch)
tree1a5db64fc7b9df26f2887acbde587aed73315604 /dviware/dvisvgm/tests/UtilityTest.cpp
parent2178d699db60492a15e11c107f17da33543af865 (diff)
CTAN sync 202307080301
Diffstat (limited to 'dviware/dvisvgm/tests/UtilityTest.cpp')
-rw-r--r--dviware/dvisvgm/tests/UtilityTest.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/dviware/dvisvgm/tests/UtilityTest.cpp b/dviware/dvisvgm/tests/UtilityTest.cpp
index 4c920e417c..f5fda4a35b 100644
--- a/dviware/dvisvgm/tests/UtilityTest.cpp
+++ b/dviware/dvisvgm/tests/UtilityTest.cpp
@@ -188,3 +188,38 @@ TEST(UtilityTest, ilog2) {
EXPECT_EQ(ilog2(uint32_t(0xffffffff >> i)), 31-i);
}
}
+
+
+TEST(UtilityTest, read_double) {
+ istringstream iss("123 -456 .123 -.456 0.123 -0.456 +123.456 -123.456 10e-3 -1e-3 4.5e2 1.23e-3 2.30.4");
+ double value=0;
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, 123.0, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, -456.0, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, .123, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, -.456, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, .123, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, -.456, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, 123.456, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, -123.456, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, 10e-3, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, -1e-3, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, 4.5e2, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, 1.23e-3, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, 2.3, 0.000001);
+ EXPECT_TRUE(util::read_double(iss, value));
+ EXPECT_NEAR(value, .4, 0.000001);
+ EXPECT_FALSE(util::read_double(iss, value)); // eof, no further characters to read
+} \ No newline at end of file