Refactor custom precision in floating point stringification

Also fixup tests.
This commit is contained in:
Martin Hořeňovský
2019-05-02 21:32:54 +02:00
parent 53a83e855e
commit 1161011dd0
8 changed files with 127 additions and 57 deletions

View File

@@ -234,32 +234,16 @@ std::string StringMaker<std::nullptr_t>::convert(std::nullptr_t) {
return "nullptr";
}
int StringMaker<float>::m_precision = 5;
int StringMaker<float>::precision = 5;
std::string StringMaker<float>::convert(float value) {
return fpToString(value, m_precision) + 'f';
return fpToString(value, precision) + 'f';
}
void StringMaker<float>::setPrecision(int precision) {
m_precision = precision;
}
int StringMaker<float>::getPrecision() {
return m_precision;
}
int StringMaker<double>::m_precision = 10;
int StringMaker<double>::precision = 10;
std::string StringMaker<double>::convert(double value) {
return fpToString(value, m_precision);
}
void StringMaker<double>::setPrecision(int precision) {
m_precision = precision;
}
int StringMaker<double>::getPrecision() {
return m_precision;
return fpToString(value, precision);
}
std::string ratio_string<std::atto>::symbol() { return "a"; }

View File

@@ -261,19 +261,13 @@ namespace Catch {
template<>
struct StringMaker<float> {
static std::string convert(float value);
static void setPrecision(int precision);
static int getPrecision();
private:
static int m_precision;
static int precision;
};
template<>
struct StringMaker<double> {
static std::string convert(double value);
static void setPrecision(int precision);
static int getPrecision();
private:
static int m_precision;
static int precision;
};
template <typename T>