Lines Matching refs:std

41         events.push_back("number_integer(" + std::to_string(val) + ")");
47 events.push_back("number_unsigned(" + std::to_string(val) + ")");
51 bool number_float(json::number_float_t /*val*/, const std::string& s) override
57 bool string(std::string& val) override
65 std::string binary_contents = "binary(";
66 std::string comma_space;
70 binary_contents.append(std::to_string(static_cast<int>(b)));
78 bool start_object(std::size_t elements) override
80 if (elements == static_cast<std::size_t>(-1))
86 events.push_back("start_object(" + std::to_string(elements) + ")");
91 bool key(std::string& val) override
103 bool start_array(std::size_t elements) override
105 if (elements == static_cast<std::size_t>(-1))
111 events.push_back("start_array(" + std::to_string(elements) + ")");
122 bool parse_error(std::size_t position, const std::string& /*last_token*/, const json::exception& /*ex*/) override
124 events.push_back("parse_error(" + std::to_string(position) + ")");
128 std::vector<std::string> events {};
133 bool start_object(std::size_t elements) override
135 if (elements == static_cast<std::size_t>(-1))
141 events.push_back("start_object(" + std::to_string(elements) + ")");
149 bool key(std::string& val) override
158 bool start_array(std::size_t elements) override
160 if (elements == static_cast<std::size_t>(-1))
166 events.push_back("start_array(" + std::to_string(elements) + ")");
177 using value_type = typename std::iterator_traits<iterator>::value_type;
178 using reference = typename std::iterator_traits<iterator>::reference;
179 using pointer = typename std::iterator_traits<iterator>::pointer;
181 typename std::iterator_traits<iterator>::difference_type;
182 using iterator_category = std::input_iterator_tag;
185 explicit proxy_iterator(iterator& it) : m_it(std::addressof(it)) {}
225 std::stringstream ss1;
226 std::stringstream ss2;
227 std::stringstream ss3;
238 CHECK(l.events == std::vector<std::string>(
257 CHECK(l.events == std::vector<std::string>(
276 CHECK(l.events == std::vector<std::string>(
287 std::stringstream ss;
296 std::stringstream ss;
313 std::stringstream ss1;
314 std::stringstream ss3;
315 std::stringstream ss4;
316 std::stringstream ss5;
333 CHECK(l.events == std::vector<std::string>(
356 CHECK(l.events == std::vector<std::string>(
367 std::stringstream ss;
375 std::stringstream ss;
391 SECTION("from std::vector")
393 std::vector<uint8_t> v = {'t', 'r', 'u', 'e'};
400 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
403 SECTION("from std::array")
405 std::array<uint8_t, 5> v { {'t', 'r', 'u', 'e'} };
412 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
424 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
441 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
446 SECTION("from std::string")
448 std::string v = {'t', 'r', 'u', 'e'};
455 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
458 SECTION("from std::initializer_list")
460 std::initializer_list<uint8_t> v = {'t', 'r', 'u', 'e'};
467 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
472 std::vector<uint8_t> v;
480 CHECK(l.events == std::vector<std::string>({"parse_error(1)"}));
486 SECTION("from std::vector")
488 std::vector<uint8_t> v = {'t', 'r', 'u', 'e'};
489 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
490 CHECK(json::accept(std::begin(v), std::end(v)));
493 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
495 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
499 SECTION("from std::array")
501 std::array<uint8_t, 5> v { {'t', 'r', 'u', 'e'} };
502 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
503 CHECK(json::accept(std::begin(v), std::end(v)));
506 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
508 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
514 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
515 CHECK(json::accept(std::begin(v), std::end(v)));
518 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
520 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
523 SECTION("from std::string")
525 std::string v = {'t', 'r', 'u', 'e'};
526 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
527 CHECK(json::accept(std::begin(v), std::end(v)));
530 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
532 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
535 SECTION("from std::initializer_list")
537 std::initializer_list<uint8_t> v = {'t', 'r', 'u', 'e'};
538 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
539 CHECK(json::accept(std::begin(v), std::end(v)));
542 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
544 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
547 SECTION("from std::valarray")
549 std::valarray<uint8_t> v = {'t', 'r', 'u', 'e'};
550 CHECK(json::parse(std::begin(v), std::end(v)) == json(true));
551 CHECK(json::accept(std::begin(v), std::end(v)));
554 CHECK(json::sax_parse(std::begin(v), std::end(v), &l));
556 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
561 std::vector<uint8_t> v;
563 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
564 CHECK(!json::accept(std::begin(v), std::end(v)));
567 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
569 CHECK(l.events == std::vector<std::string>({"parse_error(1)"}));
577 using proxy = proxy_iterator<std::string>;
579 std::string str1 = "[1]";
580 std::string str2 = "[2]";
581 std::string str = str1 + str2;
591 CHECK(std::string(first, last) == str2);
600 std::array<std::uint8_t, 9> v = {{'\"', 'a', 'a', 'a', 'a', 'a', 'a', '\\', 'u'}};
602 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
603 CHECK(!json::accept(std::begin(v), std::end(v)));
606 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
610 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
612 CHECK(l.events == std::vector<std::string>({"parse_error(10)"}));
617 std::array<std::uint8_t, 10> v = {{'\"', 'a', 'a', 'a', 'a', 'a', 'a', '\\', 'u', '1'}};
619 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
620 CHECK(!json::accept(std::begin(v), std::end(v)));
623 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
627 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
629 CHECK(l.events == std::vector<std::string>({"parse_error(11)"}));
634 std::array<std::uint8_t, 17> v = {{'\"', 'a', 'a', 'a', 'a', 'a', 'a', '\\', 'u', '1', '1', '1', '1', '1', '1', '1', '1'}};
636 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
637 CHECK(!json::accept(std::begin(v), std::end(v)));
640 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
644 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
646 CHECK(l.events == std::vector<std::string>({"parse_error(18)"}));
651 std::array<std::uint8_t, 17> v = {{'\"', 'a', 'a', 'a', 'a', 'a', 'a', 'u', '1', '1', '1', '1', '1', '1', '1', '1', '\\'}};
653 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
654 CHECK(!json::accept(std::begin(v), std::end(v)));
657 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
661 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
663 CHECK(l.events == std::vector<std::string>({"parse_error(18)"}));
668 std::array<std::uint8_t, 3> v = {{'\"', 0x7F, 0xC1}};
670 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
671 CHECK(!json::accept(std::begin(v), std::end(v)));
674 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
678 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
680 CHECK(l.events == std::vector<std::string>({"parse_error(3)"}));
685 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xDF, 0x7F}};
687 CHECK_THROWS_WITH_AS(_ = json::parse(std::begin(v), std::end(v)), "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - invalid string: ill-formed UTF-8 byte; last read: '\"\x7f\xdf\x7f'", json::parse_error&);
688 CHECK(!json::accept(std::begin(v), std::end(v)));
691 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
695 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
697 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
702 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xDF, 0xC0}};
704 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
705 CHECK(!json::accept(std::begin(v), std::end(v)));
708 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
712 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
714 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
719 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xE0, 0x9F}};
721 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
722 CHECK(!json::accept(std::begin(v), std::end(v)));
725 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
729 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
731 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
736 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xEF, 0xC0}};
738 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
739 CHECK(!json::accept(std::begin(v), std::end(v)));
742 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
746 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
748 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
753 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xED, 0x7F}};
755 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
756 CHECK(!json::accept(std::begin(v), std::end(v)));
759 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
763 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
765 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
770 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xF0, 0x8F}};
772 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
773 CHECK(!json::accept(std::begin(v), std::end(v)));
776 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
780 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
782 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
787 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xF0, 0xC0}};
789 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
790 CHECK(!json::accept(std::begin(v), std::end(v)));
793 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
797 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
799 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
804 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xF3, 0x7F}};
806 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
807 CHECK(!json::accept(std::begin(v), std::end(v)));
810 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
814 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
816 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
821 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xF3, 0xC0}};
823 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
824 CHECK(!json::accept(std::begin(v), std::end(v)));
827 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
831 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
833 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
838 std::array<std::uint8_t, 4> v = {{'\"', 0x7F, 0xF4, 0x7F}};
840 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
841 CHECK(!json::accept(std::begin(v), std::end(v)));
844 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
848 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
850 CHECK(l.events == std::vector<std::string>({"parse_error(4)"}));
855 std::array<std::uint8_t, 6> v = {{'{', '\"', '\"', ':', '1', '1'}};
857 CHECK_THROWS_AS(_ = json::parse(std::begin(v), std::end(v)), json::parse_error&);
858 CHECK(!json::accept(std::begin(v), std::end(v)));
861 CHECK_NOTHROW(j_error = json::parse(std::begin(v), std::end(v), nullptr, false));
865 CHECK(!json::sax_parse(std::begin(v), std::end(v), &l));
867 CHECK(l.events == std::vector<std::string>(
878 std::string bom = "\xEF\xBB\xBF";
885 CHECK_THROWS_WITH_AS(_ = json::parse(std::istringstream(bom)), "[json.exception.parse_error.101] parse error at line 1, column 4: syntax error while parsing value - unexpected end of input; expected '[', '{', or a literal", json::parse_error&);
890 CHECK(l.events == std::vector<std::string>(
899 CHECK(json::parse(std::istringstream(bom + "1")) == 1);
903 CHECK(json::sax_parse(std::istringstream(bom + "1"), &l1));
906 CHECK(l1.events == std::vector<std::string>(
911 CHECK(l2.events == std::vector<std::string>(
922 CHECK_THROWS_WITH_AS(_ = json::parse(std::istringstream(bom.substr(0, 2))), "[json.exception.parse_error.101] parse error at line 1, column 3: syntax error while parsing value - invalid BOM; must be 0xEF 0xBB 0xBF if given; last read: '\xEF\xBB'", json::parse_error&);
926 CHECK(!json::sax_parse(std::istringstream(bom.substr(0, 2)), &l1));
929 CHECK(l1.events == std::vector<std::string>(
934 CHECK(l2.events == std::vector<std::string>(
945 CHECK_THROWS_WITH_AS(_ = json::parse(std::istringstream(bom.substr(0, 1))), "[json.exception.parse_error.101] parse error at line 1, column 2: syntax error while parsing value - invalid BOM; must be 0xEF 0xBB 0xBF if given; last read: '\xEF'", json::parse_error&);
949 CHECK(!json::sax_parse(std::istringstream(bom.substr(0, 1)), &l1));
952 CHECK(l1.events == std::vector<std::string>(
957 CHECK(l2.events == std::vector<std::string>(
978 std::string s;
987 CHECK(json::parse(std::istringstream(s + "null")) == json());
992 CHECK(l.events == std::vector<std::string>(
1002 CHECK_THROWS_AS(_ = json::parse(std::istringstream(s + "null")), json::parse_error&);
1010 CHECK(l.events == std::vector<std::string>(
1017 CHECK(l.events == std::vector<std::string>(
1024 CHECK(l.events == std::vector<std::string>(
1037 std::istringstream s(bom + "123 456");
1048 std::string s = R"([1, ["string", 43.12], null, {"key1": true, "key2": false}])";
1057 CHECK(default_logger.events == std::vector<std::string>(
1067 CHECK(exit_after_start_object.events == std::vector<std::string>(
1076 CHECK(exit_after_key.events == std::vector<std::string>(
1085 CHECK(exit_after_start_array.events == std::vector<std::string>(
1095 std::stringstream ss;
1102 std::string line;
1104 while (std::getline(ss, line))
1115 std::stringstream ss;
1121 std::string line;
1123 while (std::getline(ss, line))
1138 std::uint8_t, std::int8_t,
1139 std::int16_t, std::uint16_t,
1140 std::int32_t, std::uint32_t)
1142 std::vector<T> v = {'t', 'r', 'u', 'e'};
1149 CHECK(l.events == std::vector<std::string>({"boolean(true)"}));
1153 char, unsigned char, std::uint8_t)
1156 std::vector<T> v = {'"', static_cast<T>(0xe2u), static_cast<T>(0xadu), static_cast<T>(0x90u), static_cast<T>(0xefu), static_cast<T>(0xb8u), static_cast<T>(0x8fu), '"'};
1166 char16_t, std::uint16_t)
1169 std::vector<T> v = {static_cast<T>('"'), static_cast<T>(0x2b50), static_cast<T>(0xfe0f), static_cast<T>('"')};
1179 char32_t, std::uint32_t)
1182 std::vector<T> v = {static_cast<T>('"'), static_cast<T>(0x2b50), static_cast<T>(0xfe0f), static_cast<T>('"')};