17db96d56Sopenharmony_cifrom test.test_json import PyTest, CTest 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ci 47db96d56Sopenharmony_ci# from https://json.org/JSON_checker/test/pass1.json 57db96d56Sopenharmony_ciJSON = r''' 67db96d56Sopenharmony_ci[ 77db96d56Sopenharmony_ci "JSON Test Pattern pass1", 87db96d56Sopenharmony_ci {"object with 1 member":["array with 1 element"]}, 97db96d56Sopenharmony_ci {}, 107db96d56Sopenharmony_ci [], 117db96d56Sopenharmony_ci -42, 127db96d56Sopenharmony_ci true, 137db96d56Sopenharmony_ci false, 147db96d56Sopenharmony_ci null, 157db96d56Sopenharmony_ci { 167db96d56Sopenharmony_ci "integer": 1234567890, 177db96d56Sopenharmony_ci "real": -9876.543210, 187db96d56Sopenharmony_ci "e": 0.123456789e-12, 197db96d56Sopenharmony_ci "E": 1.234567890E+34, 207db96d56Sopenharmony_ci "": 23456789012E66, 217db96d56Sopenharmony_ci "zero": 0, 227db96d56Sopenharmony_ci "one": 1, 237db96d56Sopenharmony_ci "space": " ", 247db96d56Sopenharmony_ci "quote": "\"", 257db96d56Sopenharmony_ci "backslash": "\\", 267db96d56Sopenharmony_ci "controls": "\b\f\n\r\t", 277db96d56Sopenharmony_ci "slash": "/ & \/", 287db96d56Sopenharmony_ci "alpha": "abcdefghijklmnopqrstuvwyz", 297db96d56Sopenharmony_ci "ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ", 307db96d56Sopenharmony_ci "digit": "0123456789", 317db96d56Sopenharmony_ci "0123456789": "digit", 327db96d56Sopenharmony_ci "special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?", 337db96d56Sopenharmony_ci "hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A", 347db96d56Sopenharmony_ci "true": true, 357db96d56Sopenharmony_ci "false": false, 367db96d56Sopenharmony_ci "null": null, 377db96d56Sopenharmony_ci "array":[ ], 387db96d56Sopenharmony_ci "object":{ }, 397db96d56Sopenharmony_ci "address": "50 St. James Street", 407db96d56Sopenharmony_ci "url": "http://www.JSON.org/", 417db96d56Sopenharmony_ci "comment": "// /* <!-- --", 427db96d56Sopenharmony_ci "# -- --> */": " ", 437db96d56Sopenharmony_ci " s p a c e d " :[1,2 , 3 447db96d56Sopenharmony_ci 457db96d56Sopenharmony_ci, 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ci4 , 5 , 6 ,7 ],"compact":[1,2,3,4,5,6,7], 487db96d56Sopenharmony_ci "jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}", 497db96d56Sopenharmony_ci "quotes": "" \u0022 %22 0x22 034 "", 507db96d56Sopenharmony_ci "\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?" 517db96d56Sopenharmony_ci: "A key can be any string" 527db96d56Sopenharmony_ci }, 537db96d56Sopenharmony_ci 0.5 ,98.6 547db96d56Sopenharmony_ci, 557db96d56Sopenharmony_ci99.44 567db96d56Sopenharmony_ci, 577db96d56Sopenharmony_ci 587db96d56Sopenharmony_ci1066, 597db96d56Sopenharmony_ci1e1, 607db96d56Sopenharmony_ci0.1e1, 617db96d56Sopenharmony_ci1e-1, 627db96d56Sopenharmony_ci1e00,2e+00,2e-00 637db96d56Sopenharmony_ci,"rosebud"] 647db96d56Sopenharmony_ci''' 657db96d56Sopenharmony_ci 667db96d56Sopenharmony_ciclass TestPass1: 677db96d56Sopenharmony_ci def test_parse(self): 687db96d56Sopenharmony_ci # test in/out equivalence and parsing 697db96d56Sopenharmony_ci res = self.loads(JSON) 707db96d56Sopenharmony_ci out = self.dumps(res) 717db96d56Sopenharmony_ci self.assertEqual(res, self.loads(out)) 727db96d56Sopenharmony_ci 737db96d56Sopenharmony_ci 747db96d56Sopenharmony_ciclass TestPyPass1(TestPass1, PyTest): pass 757db96d56Sopenharmony_ciclass TestCPass1(TestPass1, CTest): pass 76