public function testAddInfinityReturnsOriginalPoint() { $adapter = new Gmp(); $curve = new CurveFp(23, 1, 1, $adapter); $infinity = $curve->getInfinity(); $point = new Point($adapter, $curve, 13, 7, 7); $sum = $point->add($infinity); $this->assertTrue($point->equals($sum)); $sum = $infinity->add($point); $this->assertTrue($point->equals($sum)); }
/** * * @dataProvider getAdapters */ public function testInfinity(MathAdapterInterface $math) { $c = new CurveFp(23, 1, 1, $math); $g = $c->getPoint(13, 7, 7); $check = $c->getInfinity(); for ($i = 0; $i < 8; $i++) { $mul = $i % 7; $p = $g->mul($mul); $this->assertTrue($check->equals($p), "{$g} * {$mul} = {$p}, expected {$check}"); $check = $g->add($check); } }