From 2641abb3be0ae06d8861c38470fc77feaacf873b Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Sat, 19 May 2018 06:27:33 +1200 Subject: [PATCH] Add tests of field arithmetic --- sapling_jubjub.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/sapling_jubjub.py b/sapling_jubjub.py index 66e57ef..3a0a81a 100644 --- a/sapling_jubjub.py +++ b/sapling_jubjub.py @@ -116,15 +116,28 @@ class Fr(FieldElement): def __str__(self): return 'Fr(%s)' % self.s +Fq.ZERO = Fq(0) +Fq.ONE = Fq(1) +Fq.MINUS_ONE = Fq(-1) + +assert Fq.ZERO + Fq.ZERO == Fq.ZERO +assert Fq.ZERO + Fq.ONE == Fq.ONE +assert Fq.ONE + Fq.ZERO == Fq.ONE +assert Fq.ZERO - Fq.ONE == Fq.MINUS_ONE +assert Fq.ZERO * Fq.ONE == Fq.ZERO +assert Fq.ONE * Fq.ZERO == Fq.ZERO + +_A = Fq(-13443226831829260228624682877674385705155231329884953466695813022153219761455) +_A_SQUARED = Fq(1615918303262283860389448007513155112015187847020867660361132469416696757234) +assert _A * _A == _A_SQUARED +assert _A.exp(2) == _A_SQUARED +assert _A_SQUARED.sqrt() == _A + # # Point arithmetic # -Fq.ZERO = Fq(0) -Fq.ONE = Fq(1) -Fq.MINUS_ONE = Fq(-1) - JUBJUB_A = Fq.MINUS_ONE JUBJUB_D = Fq(-10240) / Fq(10241) JUBJUB_COFACTOR = Fr(8)