@@ -10,40 +10,42 @@ namespace Box2D.NET.Test;
10
10
11
11
public class B2CTZTest
12
12
{
13
- // uint에 대해 trailing zero count (CTZ)
14
- public static uint CTZ32 ( uint block )
15
- {
16
- return ( uint ) BitOperations . TrailingZeroCount ( block ) ;
17
- }
18
-
19
- // uint에 대해 leading zero count (CLZ)
20
- public static uint CLZ32 ( uint value )
21
- {
22
- return ( uint ) BitOperations . LeadingZeroCount ( value ) ;
23
- }
24
-
25
- // ulong에 대해 trailing zero count (CTZ)
26
- public static uint CTZ64 ( ulong block )
27
- {
28
- return ( uint ) BitOperations . TrailingZeroCount ( block ) ;
29
- }
30
-
31
13
[ Test ]
32
14
public void Test ( )
33
15
{
34
16
// 추가적인 엣지 케이스 테스트
35
- uint [ ] testCases32 = { 0 , 1 , 2 , 4 , 8 , 16 , 31 , 32 , 64 , 128 , 255 , 256 , 1023 , 1024 , 4294967295 , uint . MaxValue } ;
36
- ulong [ ] testCases64 = { 0 , 1 , 2 , 4 , 8 , 16 , 31 , 32 , 64 , 128 , 255 , 256 , 1023 , 1024 , 18446744073709551615 , ulong . MaxValue } ;
17
+ uint [ ] testCases32 =
18
+ {
19
+ 0 , 1 , 2 , 4 ,
20
+ 8 , 16 , 31 , 32 ,
21
+ 64 , 128 , 255 , 256 ,
22
+ 1023 , 1024 , 4294967295 , uint . MaxValue ,
23
+ 0x0000FFFF , 0xFFFF0000 , 0x0F0F0F0F , 0xF0F0F0F0 ,
24
+ 0xAAAAAAAA , 0x55555555 , 0x80000001 , 0x7FFFFFFF ,
25
+ 0x0000F000 , 0x00FF00FF , 0xC0000000 , 0x00000003 , 0xFFFFFFFF
26
+ } ;
27
+ ulong [ ] testCases64 =
28
+ {
29
+ 0 , 1 , 2 , 4 ,
30
+ 8 , 16 , 31 , 32 ,
31
+ 64 , 128 , 255 , 256 ,
32
+ 1023 , 1024 , 18446744073709551615 , ulong . MaxValue ,
33
+ 0x00000000FFFFFFFFul , 0xFFFFFFFF00000000ul , 0xAAAAAAAAAAAAAAAAul , 0x8000000000000001ul ,
34
+ 0x7FFFFFFFFFFFFFFFul , 0x000F000000000000ul , 0xF0F0F0F0F0F0F0F0ul , 0x000000000000FFFFul ,
35
+ 0x00FF00FF00FF00FFul
36
+ } ;
37
37
38
38
foreach ( uint value in testCases32 )
39
39
{
40
- Assert . That ( b2CTZ32 ( value ) , Is . EqualTo ( CTZ32 ( value ) ) , $ "CTZ32 failed for { value } ") ;
41
- Assert . That ( b2CLZ32 ( value ) , Is . EqualTo ( CLZ32 ( value ) ) , $ "CLZ32 failed for { value } ") ;
40
+ Assert . That ( b2CTZ32 ( value ) , Is . EqualTo ( BitOperations . TrailingZeroCount ( value ) ) , $ "CTZ32 failed for { value } ") ;
41
+ Assert . That ( b2CLZ32 ( value ) , Is . EqualTo ( BitOperations . LeadingZeroCount ( value ) ) , $ "CLZ32 failed for { value } ") ;
42
+ Assert . That ( b2PopCount64 ( value ) , Is . EqualTo ( BitOperations . PopCount ( value ) ) , $ "PopCount64 failed for { value } ") ;
42
43
}
43
44
44
45
foreach ( ulong value in testCases64 )
45
46
{
46
- Assert . That ( b2CTZ64 ( value ) , Is . EqualTo ( CTZ64 ( value ) ) , $ "CTZ64 failed for { value } ") ;
47
+ Assert . That ( b2CTZ64 ( value ) , Is . EqualTo ( BitOperations . TrailingZeroCount ( value ) ) , $ "CTZ64 failed for { value } ") ;
48
+ Assert . That ( b2PopCount64 ( value ) , Is . EqualTo ( BitOperations . PopCount ( value ) ) , $ "PopCount64 failed for { value } ") ;
47
49
}
48
50
}
49
- }
51
+ }
0 commit comments