1717
1818#include " simdjson.h"
1919
20- #ifndef SIMDJSON_TWITTER_JSON_PATH
21- #define SIMDJSON_TWITTER_JSON_PATH " jsonexamples/twitter.json"
22- #endif
23- #ifndef SIMDJSON_AMAZON_CELLPHONES_NDJSON_PATH
24- #define SIMDJSON_AMAZON_CELLPHONES_NDJSON_PATH " jsonexamples/amazon_cellphones.ndjson"
20+ #ifndef SIMDJSON_BENCHMARK_DATA_DIR
21+ #define SIMDJSON_BENCHMARK_DATA_DIR " jsonexamples/"
2522#endif
23+ const char *TWITTER_JSON = SIMDJSON_BENCHMARK_DATA_DIR " twitter.json" ;
24+ const char *AMAZON_CELLPHONES_NDJSON = SIMDJSON_BENCHMARK_DATA_DIR " amazon_cellphones.ndjson" ;
2625
2726#define ASSERT_EQUAL (ACTUAL, EXPECTED ) if ((ACTUAL) != (EXPECTED)) { std::cerr << " Expected " << #ACTUAL << " to be " << (EXPECTED) << " , got " << (ACTUAL) << " instead!" << std::endl; return false ; }
2827#define ASSERT_TRUE (ACTUAL ) ASSERT_EQUAL(ACTUAL, true )
@@ -493,18 +492,18 @@ namespace parse_api_tests {
493492 // }
494493
495494 bool parser_load () {
496- std::cout << " Running " << __func__ << std::endl;
495+ std::cout << " Running " << __func__ << " on " << TWITTER_JSON << std::endl;
497496 dom::parser parser;
498- auto [doc, error] = parser.load (SIMDJSON_TWITTER_JSON_PATH );
497+ auto [doc, error] = parser.load (TWITTER_JSON );
499498 if (error) { cerr << error << endl; return false ; }
500499 if (!doc.is <dom::object>()) { cerr << " Document did not parse as an object" << endl; return false ; }
501500 return true ;
502501 }
503502 bool parser_load_many () {
504- std::cout << " Running " << __func__ << std::endl;
503+ std::cout << " Running " << __func__ << " on " << AMAZON_CELLPHONES_NDJSON << std::endl;
505504 dom::parser parser;
506505 int count = 0 ;
507- for (auto [doc, error] : parser.load_many (SIMDJSON_AMAZON_CELLPHONES_NDJSON_PATH )) {
506+ for (auto [doc, error] : parser.load_many (AMAZON_CELLPHONES_NDJSON )) {
508507 if (error) { cerr << error << endl; return false ; }
509508 if (!doc.is <dom::array>()) { cerr << " Document did not parse as an array" << endl; return false ; }
510509 count++;
@@ -537,15 +536,15 @@ namespace parse_api_tests {
537536 bool parser_load_exception () {
538537 std::cout << " Running " << __func__ << std::endl;
539538 dom::parser parser;
540- const element doc = parser.load (SIMDJSON_TWITTER_JSON_PATH );
539+ const element doc = parser.load (TWITTER_JSON );
541540 if (!doc.is <dom::object>()) { cerr << " Document did not parse as an object" << endl; return false ; }
542541 return true ;
543542 }
544543 bool parser_load_many_exception () {
545544 std::cout << " Running " << __func__ << std::endl;
546545 dom::parser parser;
547546 int count = 0 ;
548- for (const element doc : parser.load_many (SIMDJSON_AMAZON_CELLPHONES_NDJSON_PATH )) {
547+ for (const element doc : parser.load_many (AMAZON_CELLPHONES_NDJSON )) {
549548 if (!doc.is <dom::array>()) { cerr << " Document did not parse as an array" << endl; return false ; }
550549 count++;
551550 }
@@ -869,7 +868,7 @@ namespace dom_api_tests {
869868 std::cout << " Running " << __func__ << std::endl;
870869 // Prints the number of results in twitter.json
871870 dom::parser parser;
872- auto [result_count, error] = parser.load (SIMDJSON_TWITTER_JSON_PATH )[" search_metadata" ][" count" ].get <uint64_t >();
871+ auto [result_count, error] = parser.load (TWITTER_JSON )[" search_metadata" ][" count" ].get <uint64_t >();
873872 if (error) { cerr << " Error: " << error << endl; return false ; }
874873 if (result_count != 100 ) { cerr << " Expected twitter.json[metadata_count][count] = 100, got " << result_count << endl; return false ; }
875874 return true ;
@@ -880,7 +879,7 @@ namespace dom_api_tests {
880879 // Print users with a default profile.
881880 set<string_view> default_users;
882881 dom::parser parser;
883- auto [tweets, error] = parser.load (SIMDJSON_TWITTER_JSON_PATH )[" statuses" ].get <dom::array>();
882+ auto [tweets, error] = parser.load (TWITTER_JSON )[" statuses" ].get <dom::array>();
884883 if (error) { cerr << " Error: " << error << endl; return false ; }
885884 for (auto tweet : tweets) {
886885 object user;
@@ -905,7 +904,7 @@ namespace dom_api_tests {
905904 // Print image names and sizes
906905 set<pair<uint64_t , uint64_t >> image_sizes;
907906 dom::parser parser;
908- auto [tweets, error] = parser.load (SIMDJSON_TWITTER_JSON_PATH )[" statuses" ].get <dom::array>();
907+ auto [tweets, error] = parser.load (TWITTER_JSON )[" statuses" ].get <dom::array>();
909908 if (error) { cerr << " Error: " << error << endl; return false ; }
910909 for (auto tweet : tweets) {
911910 auto [media, not_found] = tweet[" entities" ][" media" ].get <dom::array>();
@@ -1043,7 +1042,7 @@ namespace dom_api_tests {
10431042 std::cout << " Running " << __func__ << std::endl;
10441043 // Prints the number of results in twitter.json
10451044 dom::parser parser;
1046- element doc = parser.load (SIMDJSON_TWITTER_JSON_PATH );
1045+ element doc = parser.load (TWITTER_JSON );
10471046 uint64_t result_count = doc[" search_metadata" ][" count" ];
10481047 if (result_count != 100 ) { cerr << " Expected twitter.json[metadata_count][count] = 100, got " << result_count << endl; return false ; }
10491048 return true ;
@@ -1054,7 +1053,7 @@ namespace dom_api_tests {
10541053 // Print users with a default profile.
10551054 set<string_view> default_users;
10561055 dom::parser parser;
1057- element doc = parser.load (SIMDJSON_TWITTER_JSON_PATH );
1056+ element doc = parser.load (TWITTER_JSON );
10581057 for (object tweet : doc[" statuses" ].get <dom::array>()) {
10591058 object user = tweet[" user" ];
10601059 if (user[" default_profile" ]) {
@@ -1070,7 +1069,7 @@ namespace dom_api_tests {
10701069 // Print image names and sizes
10711070 set<pair<uint64_t , uint64_t >> image_sizes;
10721071 dom::parser parser;
1073- element doc = parser.load (SIMDJSON_TWITTER_JSON_PATH );
1072+ element doc = parser.load (TWITTER_JSON );
10741073 for (object tweet : doc[" statuses" ].get <dom::array>()) {
10751074 auto [media, not_found] = tweet[" entities" ][" media" ];
10761075 if (!not_found) {
0 commit comments