### Question:
Geom { public static Localizable createLocalizable(double x, double y) { return new LocalizableImpl(x, y); } private  Geom(); static Optional<Coord> intersection(Line l1, Line l2); static Localizable createLocalizable(double x, double y); static Area createArea(double x, double y, double width, double height); static boolean same(Localizable a, Localizable b);  }### Answer:
@Test void testCreateLocalizable() { final Localizable localizable = Geom.createLocalizable(1.5, 2.5); assertEquals(1.5, localizable.getX()); assertEquals(2.5, localizable.getY()); }
@Test void testEqualsLocalizable() { final Localizable localizable = Geom.createLocalizable(1.5, 2.5); assertNotEquals(localizable, null); assertNotEquals(localizable, new Object()); assertNotEquals(localizable, Geom.createLocalizable(2.5, 2.5)); assertNotEquals(localizable, Geom.createLocalizable(1.5, 1.5)); assertEquals(localizable, localizable); assertEquals(localizable, Geom.createLocalizable(1.5, 2.5)); assertEquals(Geom.createLocalizable(1.5, 2.5), localizable); assertEquals(Geom.createLocalizable(1.5, 2.5), Geom.createLocalizable(1.5, 2.5)); }
@Test void testHashCodeLocalizable() { final Localizable localizable = Geom.createLocalizable(1.5, 2.5); assertHashNotEquals(localizable, new Object()); assertHashNotEquals(localizable, Geom.createLocalizable(2.5, 2.5)); assertHashNotEquals(localizable, Geom.createLocalizable(1.5, 1.5)); assertHashEquals(localizable, Geom.createLocalizable(1.5, 2.5)); }
@Test void testToStringLocalizable() { assertEquals("LocalizableImpl [x=1.5, y=2.5]", Geom.createLocalizable(1.5, 2.5).toString()); }