@@ -334,6 +334,31 @@ def test_get_flags_and_set_flags
334
334
e . set_flags ( 0 )
335
335
assert_equal ( 4 , e . get_flags ( OpenSSL ::BN ::CONSTTIME ) )
336
336
end
337
+
338
+ if respond_to? ( :ractor )
339
+ ractor
340
+ def test_ractor
341
+ assert_equal ( @e1 , Ractor . new { OpenSSL ::BN . new ( "999" ) } . take )
342
+ assert_equal ( @e3 , Ractor . new { OpenSSL ::BN . new ( "\a \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF " , 2 ) } . take )
343
+ assert_equal ( "999" , Ractor . new ( @e1 ) { |e1 | e1 . to_s } . take )
344
+ assert_equal ( "07FFFFFFFFFFFFFFFFFFFFFFFFFF" , Ractor . new ( @e3 ) { |e3 | e3 . to_s ( 16 ) } . take )
345
+ assert_equal ( 2 **107 -1 , Ractor . new ( @e3 ) { _1 . to_i } . take )
346
+ assert_equal ( [ 1000 , -999 ] , Ractor . new ( @e2 ) { _1 . coerce ( 1000 ) } . take )
347
+ assert_equal ( false , Ractor . new { 1 . to_bn . zero? } . take )
348
+ assert_equal ( true , Ractor . new { 1 . to_bn . one? } . take )
349
+ assert_equal ( true , Ractor . new ( @e2 ) { _1 . negative? } . take )
350
+ assert_equal ( "-03E7" , Ractor . new ( @e2 ) { _1 . to_s ( 16 ) } . take )
351
+ assert_equal ( 2 **107 -1 , Ractor . new ( @e3 ) { _1 . to_i } . take )
352
+ assert_equal ( [ 1000 , -999 ] , Ractor . new ( @e2 ) { _1 . coerce ( 1000 ) } . take )
353
+ assert_equal ( true , Ractor . new { 0 . to_bn . zero? } . take )
354
+ assert_equal ( true , Ractor . new { 1 . to_bn . one? } . take )
355
+ assert_equal ( false , Ractor . new { 2 . to_bn . odd? } . take )
356
+ assert_equal ( true , Ractor . new ( @e2 ) { _1 . negative? } . take )
357
+ assert_include ( 128 ..255 , Ractor . new { OpenSSL ::BN . rand ( 8 ) } . take )
358
+ assert_include ( 0 ...2 **32 , Ractor . new { OpenSSL ::BN . generate_prime ( 32 ) } . take )
359
+ assert_equal ( 0 , Ractor . new { OpenSSL ::BN . new ( 999 ) . get_flags ( OpenSSL ::BN ::CONSTTIME ) } . take )
360
+ end
361
+ end
337
362
end
338
363
339
364
end
0 commit comments