@@ -334,6 +334,31 @@ def test_get_flags_and_set_flags
334334 e . set_flags ( 0 )
335335 assert_equal ( 4 , e . get_flags ( OpenSSL ::BN ::CONSTTIME ) )
336336 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
337362end
338363
339364end
0 commit comments