diff --git a/include/pocketpy/str.h b/include/pocketpy/str.h index 4f187531..a3905977 100644 --- a/include/pocketpy/str.h +++ b/include/pocketpy/str.h @@ -146,25 +146,25 @@ struct SStream{ return *this; } - // SStream& operator<<(i64 val){ - // // str(-2**64).__len__() == 21 - // buffer.reserve(buffer.size() + 24); - // if(val == 0){ - // buffer.push_back('0'); - // return *this; - // } - // if(val < 0){ - // buffer.push_back('-'); - // val = -val; - // } - // char* begin = buffer.end(); - // while(val){ - // buffer.push_back('0' + val % 10); - // val /= 10; - // } - // std::reverse(begin, buffer.end()); - // return *this; - // } + SStream& operator<<(i64 val){ + // str(-2**64).__len__() == 21 + buffer.reserve(buffer.size() + 24); + if(val == 0){ + buffer.push_back('0'); + return *this; + } + if(val < 0){ + buffer.push_back('-'); + val = -val; + } + char* begin = buffer.end(); + while(val){ + buffer.push_back('0' + val % 10); + val /= 10; + } + std::reverse(begin, buffer.end()); + return *this; + } SStream& operator<<(const std::string& s){ buffer.extend(s.data(), s.data() + s.size()); diff --git a/tests/80_json.py b/tests/80_json.py index b421ba3e..ff1cf1a8 100644 --- a/tests/80_json.py +++ b/tests/80_json.py @@ -33,10 +33,10 @@ _j = json.dumps(a) _a = json.loads(_j) for k, v in a.items(): - assert a[k] == _a[k] + assert (a[k] == _a[k]), f'{a[k]} != {_a[k]}' for k, v in _a.items(): - assert a[k] == _a[k] + assert (a[k] == _a[k]), f'{a[k]} != {_a[k]}' b = [1, 2, True, None, False]