(xlang)
| 150 | |
| 151 | @pytest.mark.parametrize("xlang", [True, False]) |
| 152 | def test_basic_serializer(xlang): |
| 153 | fory = Fory(xlang=xlang, ref=True, compatible=xlang) |
| 154 | typeinfo = fory.type_resolver.get_type_info(datetime.datetime) |
| 155 | assert isinstance(typeinfo.serializer, TimestampSerializer) |
| 156 | if xlang: |
| 157 | assert typeinfo.type_id == TypeId.TIMESTAMP |
| 158 | typeinfo = fory.type_resolver.get_type_info(datetime.date) |
| 159 | assert isinstance(typeinfo.serializer, DateSerializer) |
| 160 | if xlang: |
| 161 | assert typeinfo.type_id == TypeId.DATE |
| 162 | typeinfo = fory.type_resolver.get_type_info(decimal.Decimal) |
| 163 | assert isinstance(typeinfo.serializer, DecimalSerializer) |
| 164 | if xlang: |
| 165 | assert typeinfo.type_id == TypeId.DECIMAL |
| 166 | assert ser_de(fory, True) is True |
| 167 | assert ser_de(fory, False) is False |
| 168 | assert ser_de(fory, -1) == -1 |
| 169 | assert ser_de(fory, 2**7 - 1) == 2**7 - 1 |
| 170 | assert ser_de(fory, 2**15 - 1) == 2**15 - 1 |
| 171 | assert ser_de(fory, -(2**15)) == -(2**15) |
| 172 | assert ser_de(fory, 2**31 - 1) == 2**31 - 1 |
| 173 | assert ser_de(fory, 2**63 - 1) == 2**63 - 1 |
| 174 | assert ser_de(fory, -(2**63)) == -(2**63) |
| 175 | assert ser_de(fory, 1.0) == 1.0 |
| 176 | assert ser_de(fory, -1.0) == -1.0 |
| 177 | assert ser_de(fory, "str") == "str" |
| 178 | assert ser_de(fory, decimal.Decimal("1234567890.0123456789")) == decimal.Decimal("1234567890.0123456789") |
| 179 | assert ser_de(fory, decimal.Decimal("0.000")) == decimal.Decimal("0.000") |
| 180 | assert ser_de(fory, b"") == b"" |
| 181 | now = datetime.datetime.now(datetime.timezone.utc) |
| 182 | assert ser_de(fory, now) == now |
| 183 | day = datetime.date(2021, 11, 23) |
| 184 | assert ser_de(fory, day) == day |
| 185 | list_ = ["a", 1, -1.0, True, now, day] |
| 186 | assert ser_de(fory, list_) == list_ |
| 187 | dict1_ = {"k1": "a", "k2": 1, "k3": -1.0, "k4": True, "k5": now, "k6": day} |
| 188 | assert ser_de(fory, dict1_) == dict1_ |
| 189 | dict2_ = {"a": "a", 1: 1, -1.0: -1.0, True: True, now: now, day: day} # noqa: F601 |
| 190 | assert ser_de(fory, dict2_) == dict2_ |
| 191 | set_ = {"a", 1, -1.0, True, now, day} |
| 192 | assert ser_de(fory, set_) == set_ |
| 193 | |
| 194 | |
| 195 | def test_float16_round_trip(): |
nothing calls this directly
no test coverage detected