### Question:
AltBn128Fq12Point extends AbstractFieldPoint<AltBn128Fq12Point> { public static AltBn128Fq12Point g12() { return twist(AltBn128Fq2Point.g2()); } AltBn128Fq12Point(final Fq12 x, final Fq12 y); static AltBn128Fq12Point g12(); static AltBn128Fq12Point twist(final AltBn128Fq2Point p); Fq12 getX(); Fq12 getY();  }### Answer:
@Test public void shouldProduceTheSameResultUsingAddsAndDoublings() { assertThat( AltBn128Fq12Point.g12() .doub() .add(AltBn128Fq12Point.g12()) .add(AltBn128Fq12Point.g12())) .isEqualTo(AltBn128Fq12Point.g12().doub().doub()); }
@Test public void shouldNotEqualEachOtherWhenDiferentPoints() { assertThat(AltBn128Fq12Point.g12().doub()).isNotEqualTo(AltBn128Fq12Point.g12()); }
@Test public void shouldEqualEachOtherWhenImpartialFractionsAreTheSame() { assertThat( AltBn128Fq12Point.g12() .multiply(BigInteger.valueOf(9)) .add(AltBn128Fq12Point.g12().multiply(BigInteger.valueOf(5)))) .isEqualTo( AltBn128Fq12Point.g12() .multiply(BigInteger.valueOf(12)) .add(AltBn128Fq12Point.g12().multiply(BigInteger.valueOf(2)))); }
@Test public void shouldBeInfinityWhenMultipliedByCurveOrder() { final BigInteger curveOrder = new BigInteger( "21888242871839275222246405745257275088548364400416034343698204186575808495617"); assertThat(AltBn128Fq12Point.g12().multiply(curveOrder).isInfinity()).isTrue(); }