def testEncodeUnicodeBMP(self): s = '\U0001f42e\U0001f42e\U0001F42D\U0001F42D' # 🐮🐮🐭🐭 encoded = ujson.dumps(s) encoded_json = json.dumps(s) if len(s) == 4: self.assertEqual(len(encoded), len(s) * 12 + 2) else: self.assertEqual(len(encoded), len(s) * 6 + 2) self.assertEqual(encoded, encoded_json) decoded = ujson.loads(encoded) self.assertEqual(s, decoded) # ujson outputs an UTF-8 encoded str object if six.PY3: encoded = ujson.dumps(s, ensure_ascii=False) else: encoded = ujson.dumps(s, ensure_ascii=False).decode("utf-8") # json outputs an unicode object encoded_json = json.dumps(s, ensure_ascii=False) self.assertEqual(len(encoded), len(s) + 2) # original length + quotes self.assertEqual(encoded, encoded_json) decoded = ujson.loads(encoded) self.assertEqual(s, decoded)
def test_encodeBlist(self): b = blist(list(range(10))) c = ujson.dumps(b) d = ujson.loads(c) self.assertEqual(10, len(d)) for x in range(10): self.assertEqual(x, d[x])
def testEncodeSymbols(self): s = '\u273f\u2661\u273f' # ✿♡✿ encoded = ujson.dumps(s) encoded_json = json.dumps(s) self.assertEqual(len(encoded), len(s) * 6 + 2) # 6 characters + quotes self.assertEqual(encoded, encoded_json) decoded = ujson.loads(encoded) self.assertEqual(s, decoded) # ujson outputs an UTF-8 encoded str object if six.PY3: encoded = ujson.dumps(s, ensure_ascii=False) else: encoded = ujson.dumps(s, ensure_ascii=False).decode("utf-8") # json outputs an unicode object encoded_json = json.dumps(s, ensure_ascii=False) self.assertEqual(len(encoded), len(s) + 2) # original length + quotes self.assertEqual(encoded, encoded_json) decoded = ujson.loads(encoded) self.assertEqual(s, decoded)
def from_jsonfile(cls, filename): with open(filename, 'r') as afile: data = json.loads(afile.read()) return cls(data)
def test_ReadArrayOfSymbols(self): self.assertEqual([True, False, None], ujson.loads(" [ true, false,null] "))
def test_ReadNull(self): self.assertEqual(None, ujson.loads("null"))
def test_ReadFalse(self): self.assertEqual(False, ujson.loads("false"))
def test_ReadTrue(self): self.assertEqual(True, ujson.loads("true"))
def test_decodeFloatingPointAdditionalTests(self): self.assertEqual(-1.1234567893, ujson.loads("-1.1234567893")) self.assertEqual(-1.234567893, ujson.loads("-1.234567893")) self.assertEqual(-1.34567893, ujson.loads("-1.34567893")) self.assertEqual(-1.4567893, ujson.loads("-1.4567893")) self.assertEqual(-1.567893, ujson.loads("-1.567893")) self.assertEqual(-1.67893, ujson.loads("-1.67893")) self.assertEqual(-1.7893, ujson.loads("-1.7893", precise_float=True)) self.assertEqual(-1.893, ujson.loads("-1.893")) self.assertEqual(-1.3, ujson.loads("-1.3")) self.assertEqual(1.1234567893, ujson.loads("1.1234567893")) self.assertEqual(1.234567893, ujson.loads("1.234567893")) self.assertEqual(1.34567893, ujson.loads("1.34567893")) self.assertEqual(1.4567893, ujson.loads("1.4567893")) self.assertEqual(1.567893, ujson.loads("1.567893")) self.assertEqual(1.67893, ujson.loads("1.67893")) self.assertEqual(1.7893, ujson.loads("1.7893", precise_float=True)) self.assertEqual(1.893, ujson.loads("1.893")) self.assertEqual(1.3, ujson.loads("1.3"))
def loads_with_nujson(): nujson.loads(decode_data)
def loads_with_ujson(): ujson.loads(decode_data)