From f2608bf2f137ed29edf00369d6858878737bdc4b Mon Sep 17 00:00:00 2001 From: Simon Gene Gottlieb Date: Tue, 11 Dec 2018 21:45:43 +0100 Subject: [PATCH] adjusting test to use stable floating point numbers The issue is that numbers like 2.01 or 3.01 can not be precisely represented with binary floating point numbers. This is implemented in foresight, that fixing floating points in yaml-cpp will break these unittests, even though they shouldn't. --- test/integration/emitter_test.cpp | 12 ++--- test/node/node_test.cpp | 74 +++++++++++++++---------------- 2 files changed, 43 insertions(+), 43 deletions(-) diff --git a/test/integration/emitter_test.cpp b/test/integration/emitter_test.cpp index 2780838..dfd4f34 100644 --- a/test/integration/emitter_test.cpp +++ b/test/integration/emitter_test.cpp @@ -901,18 +901,18 @@ TEST_F(EmitterTest, SingleChar) { TEST_F(EmitterTest, DefaultPrecision) { out << BeginSeq; - out << 1.234f; - out << 3.14159265358979; + out << 1.3125f; + out << 1.23455810546875; out << EndSeq; - ExpectEmit("- 1.234\n- 3.14159265358979"); + ExpectEmit("- 1.3125\n- 1.23455810546875"); } TEST_F(EmitterTest, SetPrecision) { out << BeginSeq; - out << FloatPrecision(3) << 1.234f; - out << DoublePrecision(6) << 3.14159265358979; + out << FloatPrecision(3) << 1.3125f; + out << DoublePrecision(6) << 1.23455810546875; out << EndSeq; - ExpectEmit("- 1.23\n- 3.14159"); + ExpectEmit("- 1.31\n- 1.23456"); } TEST_F(EmitterTest, DashInBlockContext) { diff --git a/test/node/node_test.cpp b/test/node/node_test.cpp index 61ba3e6..ccb6df1 100644 --- a/test/node/node_test.cpp +++ b/test/node/node_test.cpp @@ -452,108 +452,108 @@ class NodeEmitterTest : public ::testing::Test { TEST_F(NodeEmitterTest, SimpleFlowSeqNode) { Node node; node.SetStyle(EmitterStyle::Flow); - node.push_back(1.01); - node.push_back(2.01); - node.push_back(3.01); + node.push_back(1.5); + node.push_back(2.25); + node.push_back(3.125); - ExpectOutput("[1.01, 2.01, 3.01]", node); + ExpectOutput("[1.5, 2.25, 3.125]", node); } TEST_F(NodeEmitterTest, NestFlowSeqNode) { Node node, cell0, cell1; - cell0.push_back(1.01); - cell0.push_back(2.01); - cell0.push_back(3.01); + cell0.push_back(1.5); + cell0.push_back(2.25); + cell0.push_back(3.125); - cell1.push_back(4.01); - cell1.push_back(5.01); - cell1.push_back(6.01); + cell1.push_back(4.5); + cell1.push_back(5.25); + cell1.push_back(6.125); node.SetStyle(EmitterStyle::Flow); node.push_back(cell0); node.push_back(cell1); - ExpectOutput("[[1.01, 2.01, 3.01], [4.01, 5.01, 6.01]]", node); + ExpectOutput("[[1.5, 2.25, 3.125], [4.5, 5.25, 6.125]]", node); } TEST_F(NodeEmitterTest, MixBlockFlowSeqNode) { Node node, cell0, cell1; cell0.SetStyle(EmitterStyle::Flow); - cell0.push_back(1.01); - cell0.push_back(2.01); - cell0.push_back(3.01); + cell0.push_back(1.5); + cell0.push_back(2.25); + cell0.push_back(3.125); - cell1.push_back(4.01); - cell1.push_back(5.01); - cell1.push_back(6.01); + cell1.push_back(4.5); + cell1.push_back(5.25); + cell1.push_back(6.125); node.SetStyle(EmitterStyle::Block); node.push_back(cell0); node.push_back(cell1); - ExpectOutput("- [1.01, 2.01, 3.01]\n-\n - 4.01\n - 5.01\n - 6.01", node); + ExpectOutput("- [1.5, 2.25, 3.125]\n-\n - 4.5\n - 5.25\n - 6.125", node); } TEST_F(NodeEmitterTest, NestBlockFlowMapListNode) { Node node, mapNode, blockNode; - node.push_back(1.01); - node.push_back(2.01); - node.push_back(3.01); + node.push_back(1.5); + node.push_back(2.25); + node.push_back(3.125); mapNode.SetStyle(EmitterStyle::Flow); mapNode["position"] = node; - blockNode.push_back(1.01); + blockNode.push_back(1.0625); blockNode.push_back(mapNode); - ExpectOutput("- 1.01\n- {position: [1.01, 2.01, 3.01]}", blockNode); + ExpectOutput("- 1.0625\n- {position: [1.5, 2.25, 3.125]}", blockNode); } TEST_F(NodeEmitterTest, NestBlockMixMapListNode) { Node node, mapNode, blockNode; - node.push_back(1.01); - node.push_back(2.01); - node.push_back(3.01); + node.push_back(1.5); + node.push_back(2.25); + node.push_back(3.125); mapNode.SetStyle(EmitterStyle::Flow); mapNode["position"] = node; - blockNode["scalar"] = 1.01; + blockNode["scalar"] = 1.0625; blockNode["object"] = mapNode; ExpectAnyOutput(blockNode, - "scalar: 1.01\nobject: {position: [1.01, 2.01, 3.01]}", - "object: {position: [1.01, 2.01, 3.01]}\nscalar: 1.01"); + "scalar: 1.0625\nobject: {position: [1.5, 2.25, 3.125]}", + "object: {position: [1.5, 2.25, 3.125]}\nscalar: 1.5"); } TEST_F(NodeEmitterTest, NestBlockMapListNode) { Node node, mapNode; - node.push_back(1.01); - node.push_back(2.01); - node.push_back(3.01); + node.push_back(1.5); + node.push_back(2.25); + node.push_back(3.125); mapNode.SetStyle(EmitterStyle::Block); mapNode["position"] = node; - ExpectOutput("position:\n - 1.01\n - 2.01\n - 3.01", mapNode); + ExpectOutput("position:\n - 1.5\n - 2.25\n - 3.125", mapNode); } TEST_F(NodeEmitterTest, NestFlowMapListNode) { Node node, mapNode; - node.push_back(1.01); - node.push_back(2.01); - node.push_back(3.01); + node.push_back(1.5); + node.push_back(2.25); + node.push_back(3.125); mapNode.SetStyle(EmitterStyle::Flow); mapNode["position"] = node; - ExpectOutput("{position: [1.01, 2.01, 3.01]}", mapNode); + ExpectOutput("{position: [1.5, 2.25, 3.125]}", mapNode); } } }