### Question:
Fq2 extends AbstractFqp<Fq2> { public static final Fq2 create(final long c0, final long c1) { return create(BigInteger.valueOf(c0), BigInteger.valueOf((c1))); } private  Fq2(final Fq... coefficients); static final Fq2 create(final long c0, final long c1); static final Fq2 create(final BigInteger c0, final BigInteger c1); static Fq2 b2();  }### Answer:
@Test public void shouldBeTheSumWhenAdded() { final Fq2 x = Fq2.create(1, 0); final Fq2 f = Fq2.create(1, 2); final Fq2 fpx = Fq2.create(2, 2); assertThat(x.add(f)).isEqualTo(fpx); }
@Test public void shouldBeOneWhenPointIsDividedByItself() { final Fq2 f = Fq2.create(1, 2); final Fq2 one = Fq2.create(1, 0); assertThat(f.divide(f)).isEqualTo(one); }
@Test public void shouldBeALinearDivide() { final Fq2 x = Fq2.create(1, 0); final Fq2 f = Fq2.create(1, 2); final Fq2 one = Fq2.create(1, 0); assertThat(one.divide(f).add(x.divide(f))).isEqualTo(one.add(x).divide(f)); }
@Test public void shouldBeALinearMultiply() { final Fq2 x = Fq2.create(1, 0); final Fq2 f = Fq2.create(1, 2); final Fq2 one = Fq2.create(1, 0); assertThat(one.multiply(f).add(x.multiply(f))).isEqualTo(one.add(x).multiply(f)); }
@Test public void shouldEqualOneWhenRaisedToFieldModulus() { final Fq2 x = Fq2.create(1, 0); final Fq2 one = Fq2.create(1, 0); assertThat(x.power(FieldElement.FIELD_MODULUS.pow(2).subtract(BigInteger.ONE))).isEqualTo(one); }