/** * tests mult(IntegerPolynomial) and mult(BigIntPolynomial) */ public void testMult() { SecureRandom random = new SecureRandom(); SparseTernaryPolynomial p1 = SparseTernaryPolynomial.GenerateRandom(1000, 500, 500, random); IntegerPolynomial p2 = DenseTernaryPolynomial.GenerateRandom(1000, random); IntegerPolynomial prod1 = p1.Multiply(p2); IntegerPolynomial prod2 = p1.Multiply(p2); Assert.AreEqual(prod1.coeffs, prod2.coeffs); BigIntPolynomial p3 = new BigIntPolynomial(p2); BigIntPolynomial prod3 = p1.Multiply(p3); Assert.AreEqual((new BigIntPolynomial(prod1)).coeffs, prod3.coeffs); }
/** tests mult(IntegerPolynomial) and mult(BigIntPolynomial) */ private void MultTest() { CSPRng rng = new CSPRng(); SparseTernaryPolynomial p1 = SparseTernaryPolynomial.GenerateRandom(1000, 500, 500, rng); IntegerPolynomial p2 = PolynomialGeneratorForTesting.generateRandom(1000); IntegerPolynomial prod1 = p1.Multiply(p2); prod1 = p1.Multiply(p2); IntegerPolynomial prod2 = p1.Multiply(p2); if (!Compare.Equals(prod1, prod2)) { throw new Exception("SparseTernaryPolynomial multiplication test failed!"); } BigIntPolynomial p3 = new BigIntPolynomial(p2); BigIntPolynomial prod3 = p1.Multiply(p3); if (!Compare.Equals(new BigIntPolynomial(prod1), prod3)) { throw new Exception("SparseTernaryPolynomial multiplication test failed!"); } }