@@ -994,6 +994,42 @@ def test_sequence_tuple(self):
994994        self .assertRaises (TypeError , xtuple , 42 )
995995        self .assertRaises (SystemError , xtuple , NULL )
996996
997+     def  test_sequence_fast (self ):
998+         # Test PySequence_Fast() 
999+         sequence_fast  =  _testlimitedcapi .sequence_fast 
1000+         sequence_fast_get_size  =  _testcapi .sequence_fast_get_size 
1001+         sequence_fast_get_item  =  _testcapi .sequence_fast_get_item 
1002+ 
1003+         tpl  =  ('a' , 'b' , 'c' )
1004+         fast  =  sequence_fast (tpl , "err_msg" )
1005+         self .assertIs (fast , tpl )
1006+         self .assertEqual (sequence_fast_get_size (fast ), 3 )
1007+         self .assertEqual (sequence_fast_get_item (fast , 2 ), 'c' )
1008+ 
1009+         lst  =  ['a' , 'b' , 'c' ]
1010+         fast  =  sequence_fast (lst , "err_msg" )
1011+         self .assertIs (fast , lst )
1012+         self .assertEqual (sequence_fast_get_size (fast ), 3 )
1013+         self .assertEqual (sequence_fast_get_item (fast , 2 ), 'c' )
1014+ 
1015+         it  =  iter (['A' , 'B' ])
1016+         fast  =  sequence_fast (it , "err_msg" )
1017+         self .assertEqual (fast , ['A' , 'B' ])
1018+         self .assertEqual (sequence_fast_get_size (fast ), 2 )
1019+         self .assertEqual (sequence_fast_get_item (fast , 1 ), 'B' )
1020+ 
1021+         text  =  'fast' 
1022+         fast  =  sequence_fast (text , "err_msg" )
1023+         self .assertEqual (fast , ['f' , 'a' , 's' , 't' ])
1024+         self .assertEqual (sequence_fast_get_size (fast ), 4 )
1025+         self .assertEqual (sequence_fast_get_item (fast , 0 ), 'f' )
1026+ 
1027+         self .assertRaises (TypeError , sequence_fast , 42 , "err_msg" )
1028+         self .assertRaises (SystemError , sequence_fast , NULL , "err_msg" )
1029+ 
1030+         # CRASHES sequence_fast_get_size(NULL) 
1031+         # CRASHES sequence_fast_get_item(NULL, 0) 
1032+ 
9971033    def  test_object_generichash (self ):
9981034        # Test PyObject_GenericHash() 
9991035        generichash  =  _testcapi .object_generichash 
0 commit comments