Browse Source

Restoring authorship annotation for <familom@yandex-team.ru>. Commit 2 of 2.

familom 3 years ago
parent
commit
9c61d3a2ca

+ 6 - 6
library/cpp/http/fetch/httpheader.cpp

@@ -1,7 +1,7 @@
-#include "httpheader.h" 
- 
+#include "httpheader.h"
+
 const i64 DEFAULT_RETRY_AFTER = -1;
-const i64 DEFAULT_IF_MODIFIED_SINCE = -1; 
-const i32 DEFAULT_MAX_AGE = -1; 
-const i8 DEFAULT_REQUEST_PRIORITY = -1; 
-const i32 DEFAULT_RESPONSE_TIMEOUT = -1; 
+const i64 DEFAULT_IF_MODIFIED_SINCE = -1;
+const i32 DEFAULT_MAX_AGE = -1;
+const i8 DEFAULT_REQUEST_PRIORITY = -1;
+const i32 DEFAULT_RESPONSE_TIMEOUT = -1;

+ 2 - 2
library/cpp/http/fetch/httpheader.h

@@ -4,7 +4,7 @@
 
 #include <library/cpp/mime/types/mime.h>
 
-#include <util/system/defaults.h> 
+#include <util/system/defaults.h>
 #include <util/system/compat.h>
 #include <util/generic/string.h>
 #include <util/generic/ylimits.h>
@@ -20,7 +20,7 @@
 #define FETCHER_URL_MAX 8192
 
 extern const i64 DEFAULT_RETRY_AFTER;       /// == -1
-extern const i64 DEFAULT_IF_MODIFIED_SINCE; /// == -1 
+extern const i64 DEFAULT_IF_MODIFIED_SINCE; /// == -1
 extern const i32 DEFAULT_MAX_AGE;           /// == -1
 extern const i8 DEFAULT_REQUEST_PRIORITY;   /// == -1
 extern const i32 DEFAULT_RESPONSE_TIMEOUT;  /// == -1

+ 1 - 1
library/cpp/http/fetch/ya.make

@@ -17,7 +17,7 @@ PEERDIR(
 SRCS(
     http_digest.cpp
     http_socket.cpp
-    httpheader.cpp 
+    httpheader.cpp
     httpload.cpp
     exthttpcodes.cpp
     httpfsm.rl6

+ 7 - 7
library/cpp/json/json_reader.cpp

@@ -1,5 +1,5 @@
-#include "json_reader.h" 
- 
+#include "json_reader.h"
+
 #include "rapidjson_helpers.h"
 
 #include <contrib/libs/rapidjson/include/rapidjson/error/en.h>
@@ -8,7 +8,7 @@
 
 #include <util/generic/stack.h>
 #include <util/string/cast.h>
-#include <util/system/yassert.h> 
+#include <util/system/yassert.h>
 #include <util/string/builder.h>
 
 namespace NJson {
@@ -94,7 +94,7 @@ namespace NJson {
     bool TParserCallbacks::OnString(const TStringBuf& val) {
         return SetValue(val);
     }
- 
+
     bool TParserCallbacks::OnDouble(double val) {
         return SetValue(val);
     }
@@ -148,7 +148,7 @@ namespace NJson {
     void TJsonReaderConfig::SetBufferSize(size_t bufferSize) {
         BufferSize = Max((size_t)1, Min(bufferSize, DEFAULT_BUFFER_LEN));
     }
- 
+
     size_t TJsonReaderConfig::GetBufferSize() const {
         return BufferSize;
     }
@@ -437,7 +437,7 @@ namespace NJson {
                 : Impl(impl)
             {
             }
- 
+
             bool Null() {
                 return Impl.OnNull();
             }
@@ -445,7 +445,7 @@ namespace NJson {
             bool Bool(bool b) {
                 return Impl.OnBoolean(b);
             }
- 
+
             template <class U>
             bool ProcessUint(U u) {
                 if (Y_LIKELY(u <= ui64(Max<i64>()))) {

+ 3 - 3
library/cpp/json/json_reader.h

@@ -19,7 +19,7 @@ namespace NJson {
         bool AllowComments = false;
         bool DontValidateUtf8 = false;
         bool AllowEscapedApostrophe = false;
- 
+
         void SetBufferSize(size_t bufferSize);
         size_t GetBufferSize() const;
 
@@ -30,7 +30,7 @@ namespace NJson {
     bool ReadJsonTree(TStringBuf in, TJsonValue* out, bool throwOnError = false);
     bool ReadJsonTree(TStringBuf in, bool allowComments, TJsonValue* out, bool throwOnError = false);
     bool ReadJsonTree(TStringBuf in, const TJsonReaderConfig* config, TJsonValue* out, bool throwOnError = false);
- 
+
     bool ReadJsonTree(IInputStream* in, TJsonValue* out, bool throwOnError = false);
     bool ReadJsonTree(IInputStream* in, bool allowComments, TJsonValue* out, bool throwOnError = false);
     bool ReadJsonTree(IInputStream* in, const TJsonReaderConfig* config, TJsonValue* out, bool throwOnError = false);
@@ -38,7 +38,7 @@ namespace NJson {
     TJsonValue ReadJsonTree(IInputStream* in, bool throwOnError = false);
     TJsonValue ReadJsonTree(IInputStream* in, bool allowComments, bool throwOnError);
     TJsonValue ReadJsonTree(IInputStream* in, const TJsonReaderConfig* config, bool throwOnError = false);
- 
+
     bool ReadJson(IInputStream* in, TJsonCallbacks* callbacks);
     bool ReadJson(IInputStream* in, bool allowComments, TJsonCallbacks* callbacks);
     bool ReadJson(IInputStream* in, bool allowComments, bool allowEscapedApostrophe, TJsonCallbacks* callbacks);

+ 4 - 4
library/cpp/json/json_writer.cpp

@@ -45,7 +45,7 @@ namespace NJson {
             }
         }
     }
- 
+
     void TJsonWriter::Flush() {
         if (Out) {
             Buf.FlushTo(Out);
@@ -101,7 +101,7 @@ namespace NJson {
     void TJsonWriter::Write(unsigned long long value) {
         Buf.WriteULongLong(value);
     }
- 
+
     void TJsonWriter::Write(bool value) {
         Buf.WriteBool(value);
     }
@@ -145,5 +145,5 @@ namespace NJson {
         w.Write(val);
         w.Flush();
     }
- 
-} 
+
+}

+ 1 - 1
library/cpp/json/json_writer.h

@@ -56,7 +56,7 @@ namespace NJson {
         const bool ValidateUtf8;
         const bool DontEscapeStrings;
         const bool DontFlushInDestructor;
- 
+
     public:
         TJsonWriter(IOutputStream* out, bool formatOutput, bool sortkeys = false, bool validateUtf8 = true);
         TJsonWriter(IOutputStream* out, const TJsonWriterConfig& config, bool DontFlushInDestructor = false);

+ 190 - 190
library/cpp/json/ut/json_reader_ut.cpp

@@ -26,10 +26,10 @@ public:
     }
 
     bool OnUInteger(unsigned long long val) override {
-        Writer.Write(val); 
-        return true; 
-    } 
- 
+        Writer.Write(val);
+        return true;
+    }
+
     bool OnString(const TStringBuf& val) override {
         Writer.Write(val);
         return true;
@@ -135,7 +135,7 @@ Y_UNIT_TEST_SUITE(TJsonReaderTest) {
         UNIT_ASSERT_VALUES_EQUAL(value["array"][1].GetInteger(), 2);
         UNIT_ASSERT_VALUES_EQUAL(value["array"][2].GetInteger(), 3);
         UNIT_ASSERT_VALUES_EQUAL(value["array"][3].GetString(), TString("TString"));
-        UNIT_ASSERT(value["null value"].IsNull()); 
+        UNIT_ASSERT(value["null value"].IsNull());
 
         // AsString
         UNIT_ASSERT_VALUES_EQUAL(value["intkey"].GetStringRobust(), "10");
@@ -146,12 +146,12 @@ Y_UNIT_TEST_SUITE(TJsonReaderTest) {
         UNIT_ASSERT_VALUES_EQUAL(value["null value"].GetStringRobust(), "null");
 
         const TJsonValue::TArray* array;
-        UNIT_ASSERT(GetArrayPointer(value, "array", &array)); 
-        UNIT_ASSERT_VALUES_EQUAL(value["array"].GetArray().size(), array->size()); 
-        UNIT_ASSERT_VALUES_EQUAL(value["array"][0].GetInteger(), (*array)[0].GetInteger()); 
+        UNIT_ASSERT(GetArrayPointer(value, "array", &array));
+        UNIT_ASSERT_VALUES_EQUAL(value["array"].GetArray().size(), array->size());
+        UNIT_ASSERT_VALUES_EQUAL(value["array"][0].GetInteger(), (*array)[0].GetInteger());
         UNIT_ASSERT_VALUES_EQUAL(value["array"][1].GetInteger(), (*array)[1].GetInteger());
         UNIT_ASSERT_VALUES_EQUAL(value["array"][2].GetInteger(), (*array)[2].GetInteger());
-        UNIT_ASSERT_VALUES_EQUAL(value["array"][3].GetString(), (*array)[3].GetString()); 
+        UNIT_ASSERT_VALUES_EQUAL(value["array"][3].GetString(), (*array)[3].GetString());
     }
 
     Y_UNIT_TEST(TJsonRomaTest) {
@@ -166,193 +166,193 @@ Y_UNIT_TEST_SUITE(TJsonReaderTest) {
     }
 
     Y_UNIT_TEST(TJsonReadTreeWithComments) {
-        { 
+        {
             TString leadingCommentData = "{ // \"test\" : 1 \n}";
-            { 
-                // No comments allowed 
-                TStringStream in; 
-                in << leadingCommentData; 
-                TJsonValue value; 
-                UNIT_ASSERT(!ReadJsonTree(&in, false, &value)); 
-            } 
- 
-            { 
-                // Comments allowed 
-                TStringStream in; 
-                in << leadingCommentData; 
-                TJsonValue value; 
-                UNIT_ASSERT(ReadJsonTree(&in, true, &value)); 
-                UNIT_ASSERT(!value.Has("test")); 
-            } 
-        } 
- 
-        { 
+            {
+                // No comments allowed
+                TStringStream in;
+                in << leadingCommentData;
+                TJsonValue value;
+                UNIT_ASSERT(!ReadJsonTree(&in, false, &value));
+            }
+
+            {
+                // Comments allowed
+                TStringStream in;
+                in << leadingCommentData;
+                TJsonValue value;
+                UNIT_ASSERT(ReadJsonTree(&in, true, &value));
+                UNIT_ASSERT(!value.Has("test"));
+            }
+        }
+
+        {
             TString trailingCommentData = "{ \"test1\" : 1 // \"test2\" : 2 \n }";
-            { 
-                // No comments allowed 
-                TStringStream in; 
-                in << trailingCommentData; 
-                TJsonValue value; 
-                UNIT_ASSERT(!ReadJsonTree(&in, false, &value)); 
-            } 
- 
-            { 
-                // Comments allowed 
-                TStringStream in; 
-                in << trailingCommentData; 
-                TJsonValue value; 
-                UNIT_ASSERT(ReadJsonTree(&in, true, &value)); 
-                UNIT_ASSERT(value.Has("test1")); 
-                UNIT_ASSERT_EQUAL(value["test1"].GetInteger(), 1); 
-                UNIT_ASSERT(!value.Has("test2")); 
-            } 
-        } 
-    } 
- 
+            {
+                // No comments allowed
+                TStringStream in;
+                in << trailingCommentData;
+                TJsonValue value;
+                UNIT_ASSERT(!ReadJsonTree(&in, false, &value));
+            }
+
+            {
+                // Comments allowed
+                TStringStream in;
+                in << trailingCommentData;
+                TJsonValue value;
+                UNIT_ASSERT(ReadJsonTree(&in, true, &value));
+                UNIT_ASSERT(value.Has("test1"));
+                UNIT_ASSERT_EQUAL(value["test1"].GetInteger(), 1);
+                UNIT_ASSERT(!value.Has("test2"));
+            }
+        }
+    }
+
     Y_UNIT_TEST(TJsonSignedIntegerTest) {
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : " << Min<i64>() << " }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(value["test"].IsInteger()); 
-            UNIT_ASSERT(!value["test"].IsUInteger()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), Min<i64>()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), Min<i64>()); 
-        } // Min<i64>() 
- 
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : " << Max<i64>() + 1ull << " }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(!value["test"].IsInteger()); 
-            UNIT_ASSERT(value["test"].IsUInteger()); 
+        {
+            TStringStream in;
+            in << "{ \"test\" : " << Min<i64>() << " }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(value["test"].IsInteger());
+            UNIT_ASSERT(!value["test"].IsUInteger());
+            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), Min<i64>());
+            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), Min<i64>());
+        } // Min<i64>()
+
+        {
+            TStringStream in;
+            in << "{ \"test\" : " << Max<i64>() + 1ull << " }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(!value["test"].IsInteger());
+            UNIT_ASSERT(value["test"].IsUInteger());
             UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), (i64)(Max<i64>() + 1ull));
-        } // Max<i64>() + 1 
-    } 
- 
+        } // Max<i64>() + 1
+    }
+
     Y_UNIT_TEST(TJsonUnsignedIntegerTest) {
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : 1 }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(value["test"].IsInteger()); 
-            UNIT_ASSERT(value["test"].IsUInteger()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), 1); 
-            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), 1); 
-            UNIT_ASSERT_EQUAL(value["test"].GetUInteger(), 1); 
-            UNIT_ASSERT_EQUAL(value["test"].GetUIntegerRobust(), 1); 
-        } // 1 
- 
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : -1 }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(value["test"].IsInteger()); 
-            UNIT_ASSERT(!value["test"].IsUInteger()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), -1); 
-            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), -1); 
-            UNIT_ASSERT_EQUAL(value["test"].GetUInteger(), 0); 
-            UNIT_ASSERT_EQUAL(value["test"].GetUIntegerRobust(), static_cast<unsigned long long>(-1)); 
-        } // -1 
- 
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : 18446744073709551615 }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(!value["test"].IsInteger()); 
-            UNIT_ASSERT(value["test"].IsUInteger()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), 0); 
-            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), static_cast<long long>(18446744073709551615ull)); 
-            UNIT_ASSERT_EQUAL(value["test"].GetUInteger(), 18446744073709551615ull); 
-            UNIT_ASSERT_EQUAL(value["test"].GetUIntegerRobust(), 18446744073709551615ull); 
-        } // 18446744073709551615 
- 
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : 1.1 }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(!value["test"].IsInteger()); 
-            UNIT_ASSERT(!value["test"].IsUInteger()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), 0); 
-            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), static_cast<long long>(1.1)); 
-            UNIT_ASSERT_EQUAL(value["test"].GetUInteger(), 0); 
-            UNIT_ASSERT_EQUAL(value["test"].GetUIntegerRobust(), static_cast<unsigned long long>(1.1)); 
-        } // 1.1 
- 
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : [1, 18446744073709551615] }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(value["test"].IsArray()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetArray().size(), 2); 
-            UNIT_ASSERT(value["test"][0].IsInteger()); 
-            UNIT_ASSERT(value["test"][0].IsUInteger()); 
-            UNIT_ASSERT_EQUAL(value["test"][0].GetInteger(), 1); 
-            UNIT_ASSERT_EQUAL(value["test"][0].GetUInteger(), 1); 
-            UNIT_ASSERT(!value["test"][1].IsInteger()); 
-            UNIT_ASSERT(value["test"][1].IsUInteger()); 
-            UNIT_ASSERT_EQUAL(value["test"][1].GetUInteger(), 18446744073709551615ull); 
-        } 
-    } // TJsonUnsignedIntegerTest 
- 
+        {
+            TStringStream in;
+            in << "{ \"test\" : 1 }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(value["test"].IsInteger());
+            UNIT_ASSERT(value["test"].IsUInteger());
+            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), 1);
+            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), 1);
+            UNIT_ASSERT_EQUAL(value["test"].GetUInteger(), 1);
+            UNIT_ASSERT_EQUAL(value["test"].GetUIntegerRobust(), 1);
+        } // 1
+
+        {
+            TStringStream in;
+            in << "{ \"test\" : -1 }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(value["test"].IsInteger());
+            UNIT_ASSERT(!value["test"].IsUInteger());
+            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), -1);
+            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), -1);
+            UNIT_ASSERT_EQUAL(value["test"].GetUInteger(), 0);
+            UNIT_ASSERT_EQUAL(value["test"].GetUIntegerRobust(), static_cast<unsigned long long>(-1));
+        } // -1
+
+        {
+            TStringStream in;
+            in << "{ \"test\" : 18446744073709551615 }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(!value["test"].IsInteger());
+            UNIT_ASSERT(value["test"].IsUInteger());
+            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), 0);
+            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), static_cast<long long>(18446744073709551615ull));
+            UNIT_ASSERT_EQUAL(value["test"].GetUInteger(), 18446744073709551615ull);
+            UNIT_ASSERT_EQUAL(value["test"].GetUIntegerRobust(), 18446744073709551615ull);
+        } // 18446744073709551615
+
+        {
+            TStringStream in;
+            in << "{ \"test\" : 1.1 }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(!value["test"].IsInteger());
+            UNIT_ASSERT(!value["test"].IsUInteger());
+            UNIT_ASSERT_EQUAL(value["test"].GetInteger(), 0);
+            UNIT_ASSERT_EQUAL(value["test"].GetIntegerRobust(), static_cast<long long>(1.1));
+            UNIT_ASSERT_EQUAL(value["test"].GetUInteger(), 0);
+            UNIT_ASSERT_EQUAL(value["test"].GetUIntegerRobust(), static_cast<unsigned long long>(1.1));
+        } // 1.1
+
+        {
+            TStringStream in;
+            in << "{ \"test\" : [1, 18446744073709551615] }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(value["test"].IsArray());
+            UNIT_ASSERT_EQUAL(value["test"].GetArray().size(), 2);
+            UNIT_ASSERT(value["test"][0].IsInteger());
+            UNIT_ASSERT(value["test"][0].IsUInteger());
+            UNIT_ASSERT_EQUAL(value["test"][0].GetInteger(), 1);
+            UNIT_ASSERT_EQUAL(value["test"][0].GetUInteger(), 1);
+            UNIT_ASSERT(!value["test"][1].IsInteger());
+            UNIT_ASSERT(value["test"][1].IsUInteger());
+            UNIT_ASSERT_EQUAL(value["test"][1].GetUInteger(), 18446744073709551615ull);
+        }
+    } // TJsonUnsignedIntegerTest
+
     Y_UNIT_TEST(TJsonDoubleTest) {
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : 1.0 }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(value["test"].IsDouble()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetDouble(), 1.0); 
-            UNIT_ASSERT_EQUAL(value["test"].GetDoubleRobust(), 1.0); 
-        } // 1.0 
- 
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : 1 }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(value["test"].IsDouble()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetDouble(), 1.0); 
-            UNIT_ASSERT_EQUAL(value["test"].GetDoubleRobust(), 1.0); 
-        } // 1 
- 
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : -1 }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(value["test"].IsDouble()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetDouble(), -1.0); 
-            UNIT_ASSERT_EQUAL(value["test"].GetDoubleRobust(), -1.0); 
-        } // -1 
- 
-        { 
-            TStringStream in; 
-            in << "{ \"test\" : " << Max<ui64>() << " }"; 
-            TJsonValue value; 
-            UNIT_ASSERT(ReadJsonTree(&in, &value)); 
-            UNIT_ASSERT(value.Has("test")); 
-            UNIT_ASSERT(!value["test"].IsDouble()); 
-            UNIT_ASSERT_EQUAL(value["test"].GetDouble(), 0.0); 
-            UNIT_ASSERT_EQUAL(value["test"].GetDoubleRobust(), static_cast<double>(Max<ui64>())); 
-        } // Max<ui64>() 
+        {
+            TStringStream in;
+            in << "{ \"test\" : 1.0 }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(value["test"].IsDouble());
+            UNIT_ASSERT_EQUAL(value["test"].GetDouble(), 1.0);
+            UNIT_ASSERT_EQUAL(value["test"].GetDoubleRobust(), 1.0);
+        } // 1.0
+
+        {
+            TStringStream in;
+            in << "{ \"test\" : 1 }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(value["test"].IsDouble());
+            UNIT_ASSERT_EQUAL(value["test"].GetDouble(), 1.0);
+            UNIT_ASSERT_EQUAL(value["test"].GetDoubleRobust(), 1.0);
+        } // 1
+
+        {
+            TStringStream in;
+            in << "{ \"test\" : -1 }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(value["test"].IsDouble());
+            UNIT_ASSERT_EQUAL(value["test"].GetDouble(), -1.0);
+            UNIT_ASSERT_EQUAL(value["test"].GetDoubleRobust(), -1.0);
+        } // -1
+
+        {
+            TStringStream in;
+            in << "{ \"test\" : " << Max<ui64>() << " }";
+            TJsonValue value;
+            UNIT_ASSERT(ReadJsonTree(&in, &value));
+            UNIT_ASSERT(value.Has("test"));
+            UNIT_ASSERT(!value["test"].IsDouble());
+            UNIT_ASSERT_EQUAL(value["test"].GetDouble(), 0.0);
+            UNIT_ASSERT_EQUAL(value["test"].GetDoubleRobust(), static_cast<double>(Max<ui64>()));
+        } // Max<ui64>()
     }     // TJsonDoubleTest
 
     Y_UNIT_TEST(TJsonInvalidTest) {

+ 35 - 35
library/cpp/json/ut/json_writer_ut.cpp

@@ -54,7 +54,7 @@ Y_UNIT_TEST_SUITE(TJsonWriterTest) {
         WriteJson(&out, &v);
         UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected);
     }
- 
+
     Y_UNIT_TEST(FormatOutput) {
         TString expected = "{\n  \"key1\":null,\n  \"key2\":\n    {\n      \"subkey1\":\n        [\n          1,\n          {\n            \"subsubkey\":\"test2\"\n          },\n          null,\n          true\n        ],\n      \"subkey2\":\"test\"\n    }\n}";
         TJsonValue v;
@@ -83,45 +83,45 @@ Y_UNIT_TEST_SUITE(TJsonWriterTest) {
     }
 
     Y_UNIT_TEST(SimpleUnsignedIntegerWriteTest) {
-        { 
+        {
             TString expected = "{\"test\":1}";
-            TJsonValue v; 
-            v.InsertValue("test", 1ull); 
-            TStringStream out; 
-            WriteJson(&out, &v); 
-            UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected); 
-        } // 1 
- 
-        { 
+            TJsonValue v;
+            v.InsertValue("test", 1ull);
+            TStringStream out;
+            WriteJson(&out, &v);
+            UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected);
+        } // 1
+
+        {
             TString expected = "{\"test\":-1}";
-            TJsonValue v; 
-            v.InsertValue("test", -1); 
-            TStringStream out; 
-            WriteJson(&out, &v); 
-            UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected); 
-        } // -1 
- 
-        { 
+            TJsonValue v;
+            v.InsertValue("test", -1);
+            TStringStream out;
+            WriteJson(&out, &v);
+            UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected);
+        } // -1
+
+        {
             TString expected = "{\"test\":18446744073709551615}";
-            TJsonValue v; 
-            v.InsertValue("test", 18446744073709551615ull); 
-            TStringStream out; 
-            WriteJson(&out, &v); 
-            UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected); 
-        } // 18446744073709551615 
- 
-        { 
+            TJsonValue v;
+            v.InsertValue("test", 18446744073709551615ull);
+            TStringStream out;
+            WriteJson(&out, &v);
+            UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected);
+        } // 18446744073709551615
+
+        {
             TString expected = "{\"test\":[1,18446744073709551615]}";
-            TJsonValue v; 
-            v.InsertValue("test", TJsonValue()); 
-            v["test"].AppendValue(1); 
-            v["test"].AppendValue(18446744073709551615ull); 
-            TStringStream out; 
-            WriteJson(&out, &v); 
-            UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected); 
-        } // 18446744073709551615 
+            TJsonValue v;
+            v.InsertValue("test", TJsonValue());
+            v["test"].AppendValue(1);
+            v["test"].AppendValue(18446744073709551615ull);
+            TStringStream out;
+            WriteJson(&out, &v);
+            UNIT_ASSERT_VALUES_EQUAL(out.Str(), expected);
+        } // 18446744073709551615
     }     // SimpleUnsignedIntegerWriteTest
- 
+
     Y_UNIT_TEST(WriteOptionalTest) {
         {
             TString expected = "{\"test\":1}";

+ 95 - 95
library/cpp/json/writer/json_value.cpp

@@ -2,7 +2,7 @@
 #include "json.h"
 
 #include <util/generic/ymath.h>
-#include <util/generic/ylimits.h> 
+#include <util/generic/ylimits.h>
 #include <util/generic/utility.h>
 #include <util/generic/singleton.h>
 #include <util/stream/str.h>
@@ -10,63 +10,63 @@
 #include <util/string/cast.h>
 #include <util/string/type.h>
 #include <util/string/vector.h>
-#include <util/system/yassert.h> 
+#include <util/system/yassert.h>
 #include <util/ysaveload.h>
 #include <util/generic/bt_exception.h>
 
-static bool 
-AreJsonMapsEqual(const NJson::TJsonValue& lhs, const NJson::TJsonValue& rhs) { 
-    using namespace NJson; 
- 
+static bool
+AreJsonMapsEqual(const NJson::TJsonValue& lhs, const NJson::TJsonValue& rhs) {
+    using namespace NJson;
+
     Y_VERIFY(lhs.GetType() == JSON_MAP, "lhs has not a JSON_MAP type.");
- 
-    if (rhs.GetType() != JSON_MAP) 
-        return false; 
- 
+
+    if (rhs.GetType() != JSON_MAP)
+        return false;
+
     typedef TJsonValue::TMapType TMapType;
     const TMapType& lhsMap = lhs.GetMap();
     const TMapType& rhsMap = rhs.GetMap();
- 
-    if (lhsMap.size() != rhsMap.size()) 
-        return false; 
- 
+
+    if (lhsMap.size() != rhsMap.size())
+        return false;
+
     for (const auto& lhsIt : lhsMap) {
         TMapType::const_iterator rhsIt = rhsMap.find(lhsIt.first);
-        if (rhsIt == rhsMap.end()) 
-            return false; 
- 
+        if (rhsIt == rhsMap.end())
+            return false;
+
         if (lhsIt.second != rhsIt->second)
-            return false; 
-    } 
- 
-    return true; 
-} 
- 
-static bool 
-AreJsonArraysEqual(const NJson::TJsonValue& lhs, const NJson::TJsonValue& rhs) { 
-    using namespace NJson; 
- 
+            return false;
+    }
+
+    return true;
+}
+
+static bool
+AreJsonArraysEqual(const NJson::TJsonValue& lhs, const NJson::TJsonValue& rhs) {
+    using namespace NJson;
+
     Y_VERIFY(lhs.GetType() == JSON_ARRAY, "lhs has not a JSON_ARRAY type.");
- 
-    if (rhs.GetType() != JSON_ARRAY) 
-        return false; 
- 
-    typedef TJsonValue::TArray TArray; 
-    const TArray& lhsArray = lhs.GetArray(); 
-    const TArray& rhsArray = rhs.GetArray(); 
- 
-    if (lhsArray.size() != rhsArray.size()) 
-        return false; 
- 
-    for (TArray::const_iterator lhsIt = lhsArray.begin(), rhsIt = rhsArray.begin(); 
+
+    if (rhs.GetType() != JSON_ARRAY)
+        return false;
+
+    typedef TJsonValue::TArray TArray;
+    const TArray& lhsArray = lhs.GetArray();
+    const TArray& rhsArray = rhs.GetArray();
+
+    if (lhsArray.size() != rhsArray.size())
+        return false;
+
+    for (TArray::const_iterator lhsIt = lhsArray.begin(), rhsIt = rhsArray.begin();
          lhsIt != lhsArray.end(); ++lhsIt, ++rhsIt) {
-        if (*lhsIt != *rhsIt) 
-            return false; 
-    } 
- 
-    return true; 
-} 
- 
+        if (*lhsIt != *rhsIt)
+            return false;
+    }
+
+    return true;
+}
+
 namespace NJson {
     const TJsonValue TJsonValue::UNDEFINED{};
 
@@ -135,7 +135,7 @@ namespace NJson {
         SetType(JSON_UINTEGER);
         Value.UInteger = value;
     }
- 
+
     TJsonValue::TJsonValue(const int value) noexcept {
         SetType(JSON_INTEGER);
         Value.Integer = value;
@@ -145,7 +145,7 @@ namespace NJson {
         SetType(JSON_UINTEGER);
         Value.UInteger = value;
     }
- 
+
     TJsonValue::TJsonValue(const long value) noexcept {
         SetType(JSON_INTEGER);
         Value.Integer = value;
@@ -155,7 +155,7 @@ namespace NJson {
         SetType(JSON_UINTEGER);
         Value.UInteger = value;
     }
- 
+
     TJsonValue::TJsonValue(const double value) noexcept {
         SetType(JSON_DOUBLE);
         Value.Double = value;
@@ -362,55 +362,55 @@ namespace NJson {
 
             case JSON_UINTEGER:
                 return Value.UInteger;
- 
+
             case JSON_DOUBLE:
                 return Value.Double;
- 
+
             default:
                 Y_ASSERT(false && "Unexpected type.");
                 return 0;
         }
-    } 
+    }
 
     unsigned long long TJsonValue::GetUInteger() const {
         if (!IsUInteger())
             return 0;
- 
+
         switch (Type) {
             case JSON_UINTEGER:
                 return Value.UInteger;
- 
+
             case JSON_INTEGER:
                 return Value.Integer;
- 
+
             case JSON_DOUBLE:
                 return Value.Double;
- 
+
             default:
                 Y_ASSERT(false && "Unexpected type.");
                 return 0;
         }
-    } 
- 
+    }
+
     double TJsonValue::GetDouble() const {
         if (!IsDouble())
             return 0.0;
- 
+
         switch (Type) {
             case JSON_DOUBLE:
                 return Value.Double;
- 
+
             case JSON_INTEGER:
                 return Value.Integer;
- 
+
             case JSON_UINTEGER:
                 return Value.UInteger;
- 
+
             default:
                 Y_ASSERT(false && "Unexpected type.");
                 return 0.0;
         }
-    } 
+    }
 
     const TString& TJsonValue::GetString() const {
         return Type != JSON_STRING ? Singleton<TDefaultsHolder>()->String : Value.String;
@@ -593,8 +593,8 @@ namespace NJson {
             case JSON_UINTEGER:
                 return Value.UInteger;
         }
-    } 
- 
+    }
+
     double TJsonValue::GetDoubleRobust() const noexcept {
         switch (Type) {
             case JSON_ARRAY:
@@ -664,11 +664,11 @@ namespace NJson {
     bool TJsonValue::GetUInteger(unsigned long long* value) const noexcept {
         if (!IsUInteger())
             return false;
- 
+
         *value = GetUInteger();
         return true;
     }
- 
+
     bool TJsonValue::GetDouble(double* value) const noexcept {
         if (!IsDouble())
             return false;
@@ -765,56 +765,56 @@ namespace NJson {
     bool TJsonValue::IsBoolean() const noexcept {
         return Type == JSON_BOOLEAN;
     }
- 
+
     bool TJsonValue::IsInteger() const noexcept {
         switch (Type) {
             case JSON_INTEGER:
                 return true;
- 
+
             case JSON_UINTEGER:
                 return (Value.UInteger <= static_cast<unsigned long long>(Max<long long>()));
- 
+
             case JSON_DOUBLE:
                 return ((long long)Value.Double == Value.Double);
 
             default:
                 return false;
         }
-    } 
+    }
 
     bool TJsonValue::IsUInteger() const noexcept {
         switch (Type) {
             case JSON_UINTEGER:
                 return true;
- 
+
             case JSON_INTEGER:
                 return (Value.Integer >= 0);
- 
+
             case JSON_DOUBLE:
                 return ((unsigned long long)Value.Double == Value.Double);
- 
+
             default:
                 return false;
         }
-    } 
- 
+    }
+
     bool TJsonValue::IsDouble() const noexcept {
         // Check whether we can convert integer to floating-point
         // without precision loss.
         switch (Type) {
             case JSON_DOUBLE:
                 return true;
- 
+
             case JSON_INTEGER:
                 return (1ll << std::numeric_limits<double>::digits) >= Abs(Value.Integer);
- 
+
             case JSON_UINTEGER:
                 return (1ull << std::numeric_limits<double>::digits) >= Value.UInteger;
- 
+
             default:
                 return false;
         }
-    } 
+    }
 
     namespace {
         template <class TPtr, class T>
@@ -906,42 +906,42 @@ namespace NJson {
 
     void TJsonValue::Scan(IScanCallback& callback) {
         DoScan("", nullptr, callback);
-    } 
- 
+    }
+
     bool TJsonValue::IsString() const noexcept {
         return Type == JSON_STRING;
-    } 
- 
+    }
+
     bool TJsonValue::IsMap() const noexcept {
         return Type == JSON_MAP;
-    } 
- 
+    }
+
     bool TJsonValue::IsArray() const noexcept {
         return Type == JSON_ARRAY;
-    } 
- 
+    }
+
     bool TJsonValue::Has(const TStringBuf& key) const noexcept {
         return Type == JSON_MAP && Value.Map->contains(key);
-    } 
- 
+    }
+
     bool TJsonValue::Has(size_t key) const noexcept {
         return Type == JSON_ARRAY && Value.Array->size() > key;
-    } 
- 
+    }
+
     bool TJsonValue::operator==(const TJsonValue& rhs) const {
         switch (Type) {
             case JSON_UNDEFINED: {
                 return (rhs.GetType() == JSON_UNDEFINED);
             }
- 
+
             case JSON_NULL: {
                 return rhs.IsNull();
             }
- 
+
             case JSON_BOOLEAN: {
                 return (rhs.IsBoolean() && Value.Boolean == rhs.Value.Boolean);
             }
- 
+
             case JSON_INTEGER: {
                 return (rhs.IsInteger() && GetInteger() == rhs.GetInteger());
             }

Some files were not shown because too many files changed in this diff