test_slicing.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:zippy 作者: securesystemslab 项目源码 文件源码
def test_setslice_cint(self):
        a = (c_int * 100)(*range(1100, 1200))
        b = list(range(1100, 1200))

        a[32:47] = list(range(32, 47))
        self.assertEqual(a[32:47], list(range(32, 47)))
        a[32:47] = range(132, 147)
        self.assertEqual(a[32:47:], list(range(132, 147)))
        a[46:31:-1] = range(232, 247)
        self.assertEqual(a[32:47:1], list(range(246, 231, -1)))

        a[32:47] = range(1132, 1147)
        self.assertEqual(a[:], b)
        a[32:47:7] = range(3)
        b[32:47:7] = range(3)
        self.assertEqual(a[:], b)
        a[33::-3] = range(12)
        b[33::-3] = range(12)
        self.assertEqual(a[:], b)

        from operator import setitem

        # TypeError: int expected instead of str instance
        self.assertRaises(TypeError, setitem, a, slice(0, 5), "abcde")
        # TypeError: int expected instead of str instance
        self.assertRaises(TypeError, setitem, a, slice(0, 5),
                          ["a", "b", "c", "d", "e"])
        # TypeError: int expected instead of float instance
        self.assertRaises(TypeError, setitem, a, slice(0, 5),
                          [1, 2, 3, 4, 3.14])
        # ValueError: Can only assign sequence of same size
        self.assertRaises(ValueError, setitem, a, slice(0, 5), range(32))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号