예제 #1
0
 def test_fast_primitives_coder(self):
     coder = coders.FastPrimitivesCoder(coders.SingletonCoder(len))
     self.check_coder(coder, None, 1, -1, 1.5, 'str\0str',
                      u'unicode\0\u0101')
     self.check_coder(coder, (), (1, 2, 3))
     self.check_coder(coder, [], [1, 2, 3])
     self.check_coder(coder, dict(), {'a': 'b'}, {0: dict(), 1: len})
     self.check_coder(coder, set(), {'a', 'b'})
     self.check_coder(coder, True, False)
     self.check_coder(coder, len)
     self.check_coder(coders.TupleCoder((coder, )), ('a', ), (1, ))
예제 #2
0
    def test_deterministic_coder(self):
        coder = coders.FastPrimitivesCoder()
        deterministic_coder = coders.DeterministicFastPrimitivesCoder(
            coder, 'step')
        self.check_coder(deterministic_coder, 'a', 1, 1.5, (1, 2, 3))
        with self.assertRaises(TypeError):
            self.check_coder(deterministic_coder, dict())
        with self.assertRaises(TypeError):
            self.check_coder(deterministic_coder, [1, dict()])

        self.check_coder(coders.TupleCoder((deterministic_coder, coder)),
                         (1, dict()), ('a', [dict()]))