| from test.test_support import vereq | 
 |  | 
 | import time | 
 |  | 
 | t = time.gmtime() | 
 | astuple = tuple(t) | 
 | vereq(len(t), len(astuple)) | 
 | vereq(t, astuple) | 
 |  | 
 | # Check that slicing works the same way; at one point, slicing t[i:j] with | 
 | # 0 < i < j could produce NULLs in the result. | 
 | for i in range(-len(t), len(t)): | 
 |     for j in range(-len(t), len(t)): | 
 |         vereq(t[i:j], astuple[i:j]) | 
 |  | 
 | # Devious code could crash structseqs' contructors | 
 | class C: | 
 |     def __getitem__(self, i): | 
 |         raise IndexError | 
 |     def __len__(self): | 
 |         return 9 | 
 |  | 
 | try: | 
 |     repr(time.struct_time(C())) | 
 | except: | 
 |     pass | 
 |  | 
 | # XXX more needed |