aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2019-02-14 09:21:00 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2019-02-14 09:21:00 +0800
commit2df559456b9936ff8e69300fe7c6978ff3953ab7 (patch)
tree2b60a810a82c5e627ced3aa17c722bd0b07e627a
parentbd1b8dc6239955e0bfe2b1bde09d3824e0b5e551 (diff)
downloaddexon-mcl-2df559456b9936ff8e69300fe7c6978ff3953ab7.tar.gz
dexon-mcl-2df559456b9936ff8e69300fe7c6978ff3953ab7.tar.zst
dexon-mcl-2df559456b9936ff8e69300fe7c6978ff3953ab7.zip
add test of affine+generic
-rw-r--r--test/ec_test.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/test/ec_test.cpp b/test/ec_test.cpp
index a78357e..ec49adb 100644
--- a/test/ec_test.cpp
+++ b/test/ec_test.cpp
@@ -160,6 +160,42 @@ struct Test {
Ec::mul(Q, P, 1);
CYBOZU_TEST_EQUAL(P, Q);
}
+ {
+ Ec R2;
+ P += P;
+ Q += P;
+ CYBOZU_TEST_ASSERT(!P.z.isOne());
+ CYBOZU_TEST_ASSERT(!Q.z.isOne());
+ Ec::add(R2, P, Q);
+
+ P.normalize();
+ CYBOZU_TEST_ASSERT(P.z.isOne());
+ CYBOZU_TEST_ASSERT(!Q.z.isOne());
+ // affine + generic
+ Ec::add(R, P, Q);
+ CYBOZU_TEST_EQUAL(R, R2);
+ // generic + affine
+ Ec::add(R, Q, P);
+ CYBOZU_TEST_EQUAL(R, R2);
+
+ Q.normalize();
+ CYBOZU_TEST_ASSERT(P.z.isOne());
+ CYBOZU_TEST_ASSERT(Q.z.isOne());
+ // affine + affine
+ Ec::add(R, P, Q);
+ CYBOZU_TEST_EQUAL(R, R2);
+
+ P += P;
+ CYBOZU_TEST_ASSERT(!P.z.isOne());
+ // generic
+ Ec::dbl(R2, P);
+
+ P.normalize();
+ CYBOZU_TEST_ASSERT(P.z.isOne());
+ // affine
+ Ec::dbl(R, P);
+ CYBOZU_TEST_EQUAL(R, R2);
+ }
}
void mul() const