@@ -827,4 +827,60 @@ def test_ractor
827827 end . take
828828 assert_same obj1 , obj2
829829 end if defined? ( Ractor )
830+
831+ def test_rotate_with_symbol
832+ assert_equal ( Matrix [ [ 4 , 1 ] , [ 5 , 2 ] , [ 6 , 3 ] ] , @m1 . rotate_entries )
833+ assert_equal ( @m1 . rotate_entries , @m1 . rotate_entries ( :clockwise ) )
834+ assert_equal ( Matrix [ [ 4 , 1 ] , [ 5 , 2 ] , [ 6 , 3 ] ] ,
835+ @m1 . rotate_entries ( :clockwise ) )
836+ assert_equal ( Matrix [ [ 3 , 6 ] , [ 2 , 5 ] , [ 1 , 4 ] ] ,
837+ @m1 . rotate_entries ( :counter_clockwise ) )
838+ assert_equal ( Matrix [ [ 6 , 5 , 4 ] , [ 3 , 2 , 1 ] ] ,
839+ @m1 . rotate_entries ( :half_turn ) )
840+ assert_equal ( Matrix [ [ 6 , 5 , 4 ] , [ 3 , 2 , 1 ] ] ,
841+ @m1 . rotate_entries ( :half_turn ) )
842+ assert_equal ( Matrix . empty ( 0 , 2 ) ,
843+ @e1 . rotate_entries ( :clockwise ) )
844+ assert_equal ( Matrix . empty ( 0 , 2 ) ,
845+ @e1 . rotate_entries ( :counter_clockwise ) )
846+ assert_equal ( Matrix . empty ( 2 , 0 ) ,
847+ @e1 . rotate_entries ( :half_turn ) )
848+ assert_equal ( Matrix . empty ( 0 , 3 ) ,
849+ @e2 . rotate_entries ( :half_turn ) )
850+ end
851+
852+ def test_rotate_with_numeric
853+ assert_equal ( Matrix [ [ 4 , 1 ] , [ 5 , 2 ] , [ 6 , 3 ] ] ,
854+ @m1 . rotate_entries ( 1 ) )
855+ assert_equal ( @m2 . rotate_entries ( :half_turn ) ,
856+ @m2 . rotate_entries ( 2 ) )
857+ assert_equal ( @m2 . rotate_entries ( :half_turn ) ,
858+ @m1 . rotate_entries ( 2 ) )
859+ assert_equal ( @m1 . rotate_entries ( :counter_clockwise ) ,
860+ @m1 . rotate_entries ( 3 ) )
861+ assert_equal ( @m1 ,
862+ @m1 . rotate_entries ( 4 ) )
863+ assert_equal ( @m1 ,
864+ @m1 . rotate_entries ( 4 ) )
865+ assert_not_same ( @m1 ,
866+ @m1 . rotate_entries ( 4 ) )
867+ assert_equal ( @m1 . rotate_entries ( :clockwise ) ,
868+ @m1 . rotate_entries ( 5 ) )
869+ assert_equal ( Matrix . empty ( 0 , 2 ) ,
870+ @e1 . rotate_entries ( 1 ) )
871+ assert_equal ( @e2 ,
872+ @e2 . rotate_entries ( 2 ) )
873+ assert_equal ( @e2 . rotate_entries ( 1 ) ,
874+ @e2 . rotate_entries ( 3 ) )
875+ assert_equal ( @e2 . rotate_entries ( :counter_clockwise ) ,
876+ @e2 . rotate_entries ( -1 ) )
877+ assert_equal ( @m1 . rotate_entries ( :counter_clockwise ) ,
878+ @m1 . rotate_entries ( -1 ) )
879+ assert_equal ( Matrix [ [ 6 , 5 , 4 ] , [ 3 , 2 , 1 ] ] ,
880+ @m1 . rotate_entries ( -2 ) )
881+ assert_equal ( @m1 ,
882+ @m1 . rotate_entries ( -4 ) )
883+ assert_equal ( @m1 . rotate_entries ( -1 ) ,
884+ @m1 . rotate_entries ( -5 ) )
885+ end
830886end
0 commit comments