### Question:
Size2dI implements Sc2ApiSerializable<Common.Size2DI> { public static Size2dI of(int x, int y) { return new Size2dI(x, y); } private  Size2dI(Common.Size2DI sc2ApiSize2dI); private  Size2dI(int x, int y); static Size2dI from(Common.Size2DI sc2ApiSize2dI); @Override Common.Size2DI toSc2Api(); int getX(); int getY(); @Override boolean equals(Object o); @Override int hashCode(); @Override String toString(); static Size2dI of(int x, int y);  }### Answer:
@Test void throwsExceptionWhenSize2dIIsNotInValidRange() { assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> Size2dI.of(-1, 1)) .withMessage("size2di [x] has value -1 and is lower than 0"); assertThatExceptionOfType(IllegalArgumentException.class) .isThrownBy(() -> Size2dI.of(1, -1)) .withMessage("size2di [y] has value -1 and is lower than 0"); }