Create a public class TestArrayMax
that provides a single void class method named test
.
test
accepts a single parameter: an instance of ArrayMax
.
Each ArrayMax
provides a method max
that accepts an int[]
and returns the maximum of the values as an int
.
If the array is null
or empty max
should throw an IllegalArgumentException
.
However, some ArrayMax
implementations are broken!
Your job is to identify all of them correctly.
To do this you should use assert
to test various inputs.
(Do not throw
other kinds of exceptions on failure.)
Here's an example:
Your function does not need to return a value. Instead, if the code is correct no assertion should fail, and if it is incorrect one should.
As you design test inputs, here are two conflicting objectives to keep in mind:
null
, off-by-one errors, not handling special cases properly, etc.You'll also need to think about how to use try-catch
to handle places where the code should throw an
exception, how to ensure that it does, and how to make sure it throws the right type.
Good luck and have fun!
Stuck? You may find these lessons helpful: