[DEV] correction of stl-port

This commit is contained in:
Edouard DUPIN 2013-11-13 21:52:12 +01:00
parent d24b545ba9
commit 666605419c
2 changed files with 14 additions and 8 deletions

View File

@ -20,14 +20,14 @@ bool ejson::Number::iParse(const std::string& _data, int32_t& _pos, ejson::fileP
for (int32_t iii=_pos; iii<_data.size(); iii++) {
_filePos.check(_data[iii]);
#ifdef ENABLE_DISPLAY_PARSED_ELEMENT
drawElementParsed(_data[iii], _filePos);
drawElementParsed(_data[iii], _filePos);
#endif
if(true == checkNumber(_data[iii])) {
tmpVal+=_data[iii];
} else {
_pos = iii-1;
m_value = std::stod(tmpVal);
JSON_PARSE_ELEMENT("end parse : 'Number' ");
JSON_PARSE_ELEMENT("end parse : 'Number' " << tmpVal << " >> " << m_value);
return true;
}
}
@ -38,7 +38,13 @@ bool ejson::Number::iParse(const std::string& _data, int32_t& _pos, ejson::fileP
bool ejson::Number::iGenerate(std::string& _data, int32_t _indent) const {
_data += m_value;
// special thing to remove .000000 at the end of perfect number ...
int64_t tmpVal = m_value;
if ((double)tmpVal == m_value) {
_data += std::to_string(tmpVal);
} else {
_data += std::to_string(m_value);
}
return true;
}

View File

@ -137,7 +137,7 @@ void init(void) {
"{tmpElement:-956256}\n");
l_list.push_back(check);
// ------------------------------------------------------
check.set("{\n\t\"tmpElement\": -956.256\n}\n",
check.set("{\n\t\"tmpElement\": -956.256000\n}\n",
-1,
"{tmpElement:-956.256}\n");
l_list.push_back(check);
@ -518,8 +518,8 @@ int main(int argc, const char *argv[]) {
JSON_INFO("[TEST] " << sectionID << ":" << jjj << " { OK } Result in error (normal case)");
} else {
JSON_ERROR("[TEST] " << sectionID << ":" << jjj << " {ERROR } different output");
std::vector<std::string> tmpout = out.split('\n');
std::vector<std::string> tmpref = l_list[iii].m_ref.split('\n');
std::vector<std::string> tmpout = string_split(out, '\n');
std::vector<std::string> tmpref = string_split(l_list[iii].m_ref, '\n');
//JSON_ERROR("generate : \n" << out);
//JSON_ERROR("reference : \n" << l_list[iii].m_ref);
for (int32_t jjj=0; jjj<tmpout.size() || jjj<tmpref.size(); ++jjj) {
@ -538,8 +538,8 @@ int main(int argc, const char *argv[]) {
}
if (l_list[iii].m_errorPos == 3) {
JSON_ERROR("[TEST] " << sectionID << ":" << jjj << " {ERROR} checking result might be in error...");
std::vector<std::string> tmpout = out.split('\n');
std::vector<std::string> tmpref = l_list[iii].m_ref.split('\n');
std::vector<std::string> tmpout = string_split(out, '\n');
std::vector<std::string> tmpref = string_split(l_list[iii].m_ref, '\n');
//JSON_ERROR("generate : \n" << out);
//JSON_ERROR("reference : \n" << l_list[iii].m_ref);
for (int32_t jjj=0; jjj<tmpout.size() || jjj<tmpref.size(); ++jjj) {