@@ -50,25 +50,28 @@ static void ValidateSigned<T>() where T : INumber<T>
50
50
{
51
51
ValidateUnsigned < T > ( ) ;
52
52
53
- for ( int i = 1 ; i < 3 ; i ++ )
54
- {
55
- Assert . NotNull ( Enumerable . Sequence ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 122 ) , T . CreateTruncating ( - i ) ) ) ;
56
- }
53
+ // Test negative steps from 123 to 122
54
+ // step=-1: should give [123, 122] (2 elements)
55
+ // step=-2: should give [123] (1 element, step too large)
56
+ Assert . Equal ( 2 , Enumerable . Sequence ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 122 ) , T . CreateTruncating ( - 1 ) ) . Count ( ) ) ;
57
+ Assert . Single ( Enumerable . Sequence ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 122 ) , T . CreateTruncating ( - 2 ) ) ) ;
57
58
58
59
ValidateThrows ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 124 ) , T . CreateTruncating ( - 2 ) ) ;
59
60
}
60
61
61
62
static void ValidateUnsigned < T > ( ) where T : INumber < T >
62
63
{
64
+ // When start == end, all steps should return single element [123]
63
65
for ( int i = 0 ; i < 3 ; i ++ )
64
66
{
65
- Assert . NotNull ( Enumerable . Sequence ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 123 ) , T . CreateTruncating ( i ) ) ) ;
67
+ Assert . Single ( Enumerable . Sequence ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 123 ) , T . CreateTruncating ( i ) ) ) ;
66
68
}
67
69
68
- for ( int i = 1 ; i < 3 ; i ++ )
69
- {
70
- Assert . NotNull ( Enumerable . Sequence ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 124 ) , T . CreateTruncating ( i ) ) ) ;
71
- }
70
+ // Test positive steps from 123 to 124
71
+ // step=1: should give [123, 124] (2 elements)
72
+ // step=2: should give [123] (1 element, step too large)
73
+ Assert . Equal ( 2 , Enumerable . Sequence ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 124 ) , T . CreateTruncating ( 1 ) ) . Count ( ) ) ;
74
+ Assert . Single ( Enumerable . Sequence ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 124 ) , T . CreateTruncating ( 2 ) ) ) ;
72
75
73
76
ValidateThrows ( T . CreateTruncating ( 123 ) , T . CreateTruncating ( 122 ) , T . CreateTruncating ( 2 ) ) ;
74
77
}
0 commit comments