def METHOD_NAME(self):
    # create classes holding simple numeric types, and check
    # various properties.
    init = range(15, 25)
    for fmt in formats:
        alen = len(init)
        int_array = ARRAY(fmt, alen)
        ia = int_array(*init)
        # length of instance ok?
        self.assertEqual(len(ia), alen)
        # slot values ok?
        values = [ia[i] for i in range(len(init))]
        self.assertEqual(values, init)
        # change the items
        from operator import setitem
        new_values = range(42, 42+alen)
        [setitem(ia, n, new_values[n]) for n in range(alen)]
        values = [ia[i] for i in range(len(init))]
        self.assertEqual(values, new_values)
        # are the items initialized to 0?
        ia = int_array()
        values = [ia[i] for i in range(len(init))]
        self.assertEqual(values, [0] * len(init))
        # Too many initializers should be caught
        self.assertRaises(IndexError, int_array, *range(alen*2))
    CharArray = ARRAY(c_char, 3)
    ca = CharArray("a", "b", "c")
    # Should this work? It doesn't:
    # CharArray("abc")
    self.assertRaises(TypeError, CharArray, "abc")
    self.assertEqual(ca[0], "a")
    self.assertEqual(ca[1], "b")
    self.assertEqual(ca[2], "c")
    self.assertEqual(ca[-3], "a")
    self.assertEqual(ca[-2], "b")
    self.assertEqual(ca[-1], "c")
    self.assertEqual(len(ca), 3)
    # slicing is now supported, but not extended slicing (3-argument)!
    from operator import getslice, delitem
    self.assertRaises(TypeError, getslice, ca, 0, 1, -1)
    # cannot delete items
    self.assertRaises(TypeError, delitem, ca, 0)