| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #include "test_common.h"
- TEST_START
- #if !PIKA_NANO_ENABLE
- TEST(json, loads) {
- g_PikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- extern unsigned char pikaModules_py_a[];
- obj_linkLibrary(pikaMain, pikaModules_py_a);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "test/python/json/json_loads.py");
- /* collect */
- /* assert */
- /* clang-format off */
- /*
- {'c': 3.000000, 'b': 2.000000, 'a': 1.000000}
- {'d': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}
- {'g': [6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}
- {'h': None, 'g': [6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}
- {'i': 0, 'h': None, 'g': [6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}
- {'j': 1, 'i': 0, 'h': None, 'g': [6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}
- {'k': 'string', 'j': 1, 'i': 0, 'h': None, 'g': [6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}
- {'l': 1.234000, 'k': 'string', 'j': 1, 'i': 0, 'h': None, 'g': [6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}
- */
- /* clang-format on */
- EXPECT_STREQ(log_buff[8], "BEGIN\r\n");
- EXPECT_STREQ(log_buff[7],
- "{'c': 3.000000, 'b': 2.000000, 'a': 1.000000}\r\n");
- EXPECT_STREQ(log_buff[6],
- "{'d': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': "
- "2.000000, 'a': 1.000000}\r\n");
- EXPECT_STREQ(
- log_buff[5],
- "{'g': [6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, 'e': "
- "4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}\r\n");
- EXPECT_STREQ(
- log_buff[4],
- "{'h': None, 'g': [6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, "
- "'e': 4.000000}, 'c': 3.000000, 'b': 2.000000, 'a': 1.000000}\r\n");
- EXPECT_STREQ(log_buff[3],
- "{'i': False, 'h': None, 'g': [6.000000, 7.000000, 8.000000], "
- "'d': {'f': 5.000000, 'e': 4.000000}, 'c': 3.000000, 'b': "
- "2.000000, 'a': 1.000000}\r\n");
- EXPECT_STREQ(log_buff[2],
- "{'j': True, 'i': False, 'h': None, 'g': [6.000000, 7.000000, "
- "8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, 'c': "
- "3.000000, 'b': 2.000000, 'a': 1.000000}\r\n");
- EXPECT_STREQ(log_buff[1],
- "{'k': 'string', 'j': True, 'i': False, 'h': None, 'g': [6.000000, "
- "7.000000, 8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, "
- "'c': 3.000000, 'b': 2.000000, 'a': 1.000000}\r\n");
- EXPECT_STREQ(
- log_buff[0],
- "{'l': 1.234000, 'k': 'string', 'j': True, 'i': False, 'h': None, 'g': "
- "[6.000000, 7.000000, 8.000000], 'd': {'f': 5.000000, 'e': 4.000000}, "
- "'c': 3.000000, 'b': 2.000000, 'a': 1.000000}\r\n");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #if PIKA_FLOAT_TYPE_DOUBLE
- TEST(json, dumps) {
- g_PikaMemInfo.heapUsedMax = 0;
- PikaObj* pikaMain = newRootObj("pikaMain", New_PikaMain);
- extern unsigned char pikaModules_py_a[];
- obj_linkLibrary(pikaMain, pikaModules_py_a);
- /* run */
- __platform_printf("BEGIN\r\n");
- pikaVM_runSingleFile(pikaMain, "test/python/json/json_dumps.py");
- /* assert */
- EXPECT_STREQ(obj_getStr(pikaMain, "s1"),
- "{\n\t\"c\":\t3,\n\t\"b\":\t2,\n\t\"a\":\t1\n}");
- EXPECT_STREQ(obj_getStr(pikaMain, "s2"),
- "{\n\t\"d\":\t{\n\t\t\"f\":\t5,\n\t\t\"e\":\t4\n\t},\n\t\"c\":"
- "\t3,\n\t\"b\":\t2,\n\t\"a\":\t1\n}");
- EXPECT_STREQ(obj_getStr(pikaMain, "s3"),
- "{\n\t\"g\":\t[6, 7, "
- "8],\n\t\"d\":\t{\n\t\t\"f\":\t5,\n\t\t\"e\":\t4\n\t},"
- "\n\t\"c\":\t3,\n\t\"b\":\t2,\n\t\"a\":\t1\n}");
- EXPECT_STREQ(obj_getStr(pikaMain, "s4"),
- "{\n\t\"l\":\t1.234,\n\t\"k\":\t\"string\",\n\t\"j\":\ttrue,"
- "\n\t\"i\":\tfalse,\n\t\"h\":\tnull,\n\t\"g\":\t[6, 7, "
- "8],\n\t\"d\":\t{\n\t\t\"f\":\t5,\n\t\t\"e\":\t4\n\t},"
- "\n\t\"c\":\t3,\n\t\"b\":\t2,\n\t\"a\":\t1\n}");
- /* deinit */
- obj_deinit(pikaMain);
- EXPECT_EQ(pikaMemNow(), 0);
- }
- #endif
- #endif
- TEST_END
|