Number of digits is now a template parameter

This commit is contained in:
Benoît Blanchon
2014-07-07 13:24:14 +02:00
parent 4e6ad31d6a
commit be6c4bf4d1
6 changed files with 58 additions and 56 deletions

View File

@ -57,7 +57,7 @@ namespace JsonGeneratorTests
TEST_METHOD(OneDouble)
{
addValue(3.14159265358979323846, 4);
addValue<4>(3.14159265358979323846);
jsonIs("[3.1416]");
}
@ -158,7 +158,7 @@ namespace JsonGeneratorTests
void addNested(JsonObjectBase& value)
{
arr.add(value);
arr.add<JsonObjectBase&>(value);
}
template<typename T>
@ -167,9 +167,10 @@ namespace JsonGeneratorTests
arr.add(value);
}
void addValue(double value, int digits)
template<int DIGITS>
void addValue(double value)
{
arr.add(value, digits);
arr.add<DIGITS>(value);
}
void jsonIs(const char* expected)

View File

@ -51,7 +51,7 @@ namespace JsonGeneratorTests
TEST_METHOD(OneDouble)
{
addValue("key", 3.14159265358979323846, 4);
addValue<4>("key", 3.14159265358979323846);
jsonIs("{\"key\":3.1416}");
}
@ -93,7 +93,7 @@ namespace JsonGeneratorTests
void addNested(const char* key, JsonObjectBase& value)
{
hash.add(key, value);
hash.add<JsonObjectBase&>(key, value);
}
template<typename T>
@ -102,9 +102,10 @@ namespace JsonGeneratorTests
hash.add(key, value);
}
void addValue(const char* key, double value, int digits)
template<int DIGITS>
void addValue(const char* key, double value)
{
hash.add(key, value, digits);
hash.add<DIGITS>(key, value);
}
void jsonIs(const char* expected)

View File

@ -73,28 +73,28 @@ namespace JsonGeneratorTests
write("\t");
assertResultIs("\"\\t\"");
}
/*
TEST_METHOD(DoubleDefaultDigits)
{
write(3.14159265358979323846);
assertResultIs("3.14");
}
}*/
TEST_METHOD(DoubleZeroDigits)
{
write(3.14159265358979323846, 0);
write<0>(3.14159265358979323846);
assertResultIs("3");
}
TEST_METHOD(DoubleOneDigit)
{
write(3.14159265358979323846, 1);
write<1>(3.14159265358979323846);
assertResultIs("3.1");
}
TEST_METHOD(DoubleTwoDigits)
{
write(3.14159265358979323846, 2);
write<2>(3.14159265358979323846);
assertResultIs("3.14");
}
@ -120,13 +120,18 @@ namespace JsonGeneratorTests
void write(T value)
{
StringBuilder sb(buffer, sizeof(buffer));
returnValue = JsonValue(value).printTo(sb);
JsonValue jsonValue;
jsonValue.set(value);
returnValue = jsonValue.printTo(sb);
}
void write(double value, int digits)
template<int DIGITS>
void write(double value)
{
StringBuilder sb(buffer, sizeof(buffer));
returnValue = JsonValue(value, digits).printTo(sb);
JsonValue jsonValue;
jsonValue.set<DIGITS>(value);
returnValue = jsonValue.printTo(sb);
}
void assertResultIs(const char* expected)