@@ -75,3 +75,46 @@ def scan_wrap():
7575 10 + 1 + 1 + 1 + 3 ,
7676 10 + 1 + 1 + 1 + 1 + 4 ,
7777 ]
78+
79+
80+ def test_sorted ():
81+ def key_test (a : int ) -> int :
82+ return a
83+
84+ @basic
85+ def main ():
86+ ls = [2 , 3 , 1 , 5 , 4 ]
87+ return (
88+ ilist .sorted (ls ),
89+ ilist .sorted (ls , key = key_test ),
90+ ilist .sorted (ls , reverse = True ),
91+ )
92+
93+ main .print ()
94+
95+ ls1 , ls2 , ls3 = main ()
96+ assert ls1 .data == [1 , 2 , 3 , 4 , 5 ]
97+ assert ls2 .data == ls1 .data
98+ assert ls3 .data == [5 , 4 , 3 , 2 , 1 ]
99+
100+ def first (x : tuple [str , int ]) -> str :
101+ return x [0 ]
102+
103+ def second (x : tuple [str , int ]) -> int :
104+ return x [1 ]
105+
106+ @basic
107+ def main2 ():
108+ ls = [("a" , 4 ), ("b" , 3 ), ("c" , 1 )]
109+ return (
110+ ilist .sorted (ls , key = first ),
111+ ilist .sorted (ls , key = second ),
112+ ilist .sorted (ls , key = second , reverse = True ),
113+ )
114+
115+ main2 .print ()
116+
117+ ls1 , ls2 , ls3 = main2 ()
118+ assert ls1 .data == [("a" , 4 ), ("b" , 3 ), ("c" , 1 )]
119+ assert ls3 .data == ls1 .data
120+ assert ls2 .data == [("c" , 1 ), ("b" , 3 ), ("a" , 4 )]
0 commit comments