def test_numeric(self):

        prec = decimal.getcontext().prec

        self.compare(
            decimal.Decimal(10 ** 20), force_bytes("100000000000000000000``%i" % prec)
        )
        self.compare(decimal.Decimal("100"), force_bytes("100``%i" % prec))
        self.compare(decimal.Decimal("100.00"), force_bytes("100.00``%i" % prec))
        self.compare(decimal.Decimal("0.010"), force_bytes("0.010``%i" % prec))
        self.compare(decimal.Decimal("0.1534"), force_bytes("0.1534``%i" % prec))
        self.compare(decimal.Decimal("0.0000000010"), force_bytes("0.0000000010``%i" % prec))

        self.compare(decimal.Decimal("0"), force_bytes("0``%i" % prec))
        self.compare(decimal.Decimal("0.0"), force_bytes("0.0``%i" % prec))
        self.compare(decimal.Decimal("0.0000000000"), force_bytes("0.0000000000``%i" % prec))

        self.compare(fractions.Fraction(1, 2), wl.Rational(1, 2))

        self.compare(float("0.150000"), b"0.15")

        for special, result in (
            [float("inf"), self.dumps(wl.DirectedInfinity(1))],
            [float("-inf"), self.dumps(wl.DirectedInfinity(-1))],
            [float("nan"), self.dumps(wl.Indeterminate)],
        ):
            self.compare(special, result)
            self.compare(decimal.Decimal(special), result)
    def test_numeric(self):

        prec = decimal.getcontext().prec

        self.compare(
            decimal.Decimal(10**20),
            force_bytes(u'100000000000000000000``%i' % prec))
        self.compare(decimal.Decimal('100'), force_bytes(u'100``%i' % prec))
        self.compare(
            decimal.Decimal('100.00'), force_bytes(u'100.00``%i' % prec))
        self.compare(
            decimal.Decimal('0.010'), force_bytes(u'0.010``%i' % prec))
        self.compare(
            decimal.Decimal('0.1534'), force_bytes(u'0.1534``%i' % prec))
        self.compare(
            decimal.Decimal('0.0000000010'),
            force_bytes(u'0.0000000010``%i' % prec))

        self.compare(decimal.Decimal('0'), force_bytes(u'0``%i' % prec))
        self.compare(decimal.Decimal('0.0'), force_bytes(u'0.0``%i' % prec))
        self.compare(
            decimal.Decimal('0.0000000000'),
            force_bytes(u'0.0000000000``%i' % prec))

        self.compare(fractions.Fraction(1, 2), wl.Rational(1, 2))

        self.compare(float('0.150000'), b'0.15')

        for special, result in (
            [float('inf'), self.dumps(wl.DirectedInfinity(1))],
            [float('-inf'), self.dumps(wl.DirectedInfinity(-1))],
            [float('nan'), self.dumps(wl.Indeterminate)],
        ):
            self.compare(special, result)
            self.compare(decimal.Decimal(special), result)
Beispiel #3
0
    def test_force_encoding(self):

        self.assertEqual(force_text("aà"), "aà")
        self.assertEqual(force_text(abs), "<built-in function abs>")
        self.assertEqual(force_text(b"a\xc3\xa0"), "aà")

        self.assertEqual(force_text(memoryview(b"abc")), "abc")
        self.assertEqual(force_text(bytearray(b"abc")), "abc")

        self.assertEqual(force_bytes(b"abc"), b"abc")
        self.assertEqual(force_bytes(abs), b"<built-in function abs>")
        self.assertEqual(force_bytes("aà"), b"a\xc3\xa0")

        self.assertEqual(force_text(force_bytes("aà")), "aà")

        self.assertEqual(force_bytes(memoryview(b"abc")), b"abc")
        self.assertEqual(force_bytes(bytearray(b"abc")), b"abc")
Beispiel #4
0
def encode_booleans(serializer, o):
    return serializer.serialize_symbol(force_bytes(o))
Beispiel #5
0
 def serialize_input_form(self, string):
     yield b"("
     yield force_bytes(string)
     yield b")"
Beispiel #6
0
 def serialize_symbol(self, name):
     yield force_bytes(name)
Beispiel #7
0
def pack(format, *elements):
    return struct.pack(b"<%i%s" % (len(elements), force_bytes(format)),
                       *elements)
 def serialize_symbol(self, name):
     yield WXF_CONSTANTS.Symbol
     yield varint_bytes(len(name))
     yield force_bytes(name)
 def serialize_string(self, string):
     string = force_bytes(string)
     yield WXF_CONSTANTS.String
     yield varint_bytes(len(string))
     yield string
Beispiel #10
0
def py_encode_text(s):
    yield b'"'
    yield force_bytes(ESCAPE.sub(replace, s), encoding="iso-8859-1")
    yield b'"'
Beispiel #11
0
 def write(self, data):
     """ Write the compression of `data` to the underlying buffer writer. """
     self._writer.write(self._compressor.compress(force_bytes(data)))