summaryrefslogtreecommitdiff
path: root/test/openssl/test_bn.rb
diff options
context:
space:
mode:
authorRick Mark <rick.mark@coinbase.com>2021-04-01 12:29:21 -0700
committerKazuki Yamaguchi <k@rhe.jp>2021-07-18 17:44:39 +0900
commit01fcb8f45b28d9b33e04c9b9873e47276faf5581 (patch)
tree5946ff1b2155b9e281ce2989cd3641b3cfc4e77c /test/openssl/test_bn.rb
parented1e5663a4019291e2e8cb38f1630f007697bb6b (diff)
[ruby/openssl] BN.abs and BN uplus
Adds standard math abs fuction and revises uplus to return a duplicated object due to BN mutability https://github.com/ruby/openssl/commit/0321b1e945
Diffstat (limited to 'test/openssl/test_bn.rb')
-rw-r--r--test/openssl/test_bn.rb21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/openssl/test_bn.rb b/test/openssl/test_bn.rb
index 6c26b5ec55..77cc209658 100644
--- a/test/openssl/test_bn.rb
+++ b/test/openssl/test_bn.rb
@@ -130,6 +130,27 @@ class OpenSSL::TestBN < OpenSSL::TestCase
assert_equal(-999, +@e2)
assert_equal(-999, -@e1)
assert_equal(+999, -@e2)
+
+ # These methods create new BN instances due to BN mutability
+ # Ensure that the instance isn't the same
+ e1_plus = +@e1
+ e1_minus = -@e1
+ assert_equal(false, @e1.equal?(e1_plus))
+ assert_equal(true, @e1 == e1_plus)
+ assert_equal(false, @e1.equal?(e1_minus))
+ end
+
+ def test_abs
+ assert_equal(@e1, @e2.abs)
+ assert_equal(@e3, @e4.abs)
+ assert_not_equal(@e2, @e2.abs)
+ assert_not_equal(@e4, @e4.abs)
+ assert_equal(false, @e2.abs.negative?)
+ assert_equal(false, @e4.abs.negative?)
+ assert_equal(true, (-@e1.abs).negative?)
+ assert_equal(true, (-@e2.abs).negative?)
+ assert_equal(true, (-@e3.abs).negative?)
+ assert_equal(true, (-@e4.abs).negative?)
end
def test_mod