diff --git a/src/test/java/com/github/pedrovgs/problem20/MultiplicationWithoutMultiplyTest.java b/src/test/java/com/github/pedrovgs/problem20/MultiplicationWithoutMultiplyTest.java index b022e231..45890ee0 100644 --- a/src/test/java/com/github/pedrovgs/problem20/MultiplicationWithoutMultiplyTest.java +++ b/src/test/java/com/github/pedrovgs/problem20/MultiplicationWithoutMultiplyTest.java @@ -25,6 +25,9 @@ */ public class MultiplicationWithoutMultiplyTest { + private final static int MAX_INT = Integer.MAX_VALUE; + private final static int MIN_INT = -MAX_INT; + private MultiplicationWithoutMultiply multiply; @Before public void setUp() { @@ -46,4 +49,24 @@ public class MultiplicationWithoutMultiplyTest { @Test public void shouldTakeIntoAccountNegativeNumbers() { assertEquals(-14, multiply.calculate(-2, 7)); } + + @Test public void boundaryTest() { + assertEquals(0, multiply.calculate(0, MAX_INT)); + assertEquals(0, multiply.calculate(0, MIN_INT)); + assertEquals(MAX_INT, multiply.calculate(1, MAX_INT)); + assertEquals(MIN_INT, multiply.calculate(1, MIN_INT)); + assertEquals(1, multiply.calculate(MAX_INT, MAX_INT)); + assertEquals(1, multiply.calculate(MIN_INT, MIN_INT)); + } + + @Test public void strongBoundaryTest() { + assertEquals(4, multiply.calculate(MAX_INT - 1, MAX_INT - 1)); + assertEquals(0, multiply.calculate(MAX_INT + 1, MAX_INT + 1)); + assertEquals(4, multiply.calculate(MIN_INT + 1, MIN_INT + 1)); + assertEquals(0, multiply.calculate(MIN_INT - 1, MIN_INT - 1)); + assertEquals(0, multiply.calculate(0, MAX_INT - 1)); + assertEquals(0, multiply.calculate(0, MIN_INT - 1)); + assertEquals(MAX_INT - 1, multiply.calculate(1, MAX_INT - 1)); + assertEquals(MIN_INT - 1, multiply.calculate(1, MIN_INT - 1)); + } }