CMPU-102, Spring, 2020 Homework: A Simple Calculator. Date due: February 11, 2020. Objectives: practice. create a FunctionTester class that does all the work so main won't have to. Create a VERY SIMPLE Calculator class. It will provide functions add, subtract, multiply, divide, and modulo. These functions will accept two paremeters, each of type double. And, each function will return a result of type double. We will soon see details that show how, besides functions, operators can be overloaded too*. Be careful, these functions may need to have some extra checks, just in case the input parameters are not quite right. Use the technique that returns NaN, just as lab 1's Function class does, when the parameters are not quite right (even if this solution is also not quite right.) Recreate a FunctionTester class. This class will create a Calculator object, and will test all of the functions. How will it do this? My recommendation is: create a member variable of type Calculator, use the constructor to setup memory for the Calculator object (what is the keyword?) declare a start() method that does the work. It doesn't need to take any parameters or return any values. In our first lab, we created a FunctionTester class. It had one method, getRootAndConfirm(). The "work" of testing was carried out in main(). For example, here is a lab snippet... double m = 1; double b = 6; Function f1 = new LinearFunction(m, b); getRootAndConfirm(f1); Our main() function will essentially do one thing: get FunctionTester to test the calculator: a) create a FunctionTester object, similar to the way lab 1 created functions. b) execute the FunctionTester's start method. The FunctionTester's start method should confirm the result of each test. Something like the following: Result from multiply 2.0 and 3.0 is 6.0. Expected value is 6.0. How much testing is needed? This is your decision, but you should do a little bit more than inputs of 0.0, 1.0, 2.0, etc. in the calculator. "What should I hand in?" Assuming that you did the assignment in folder ~/cmpu102/hw0, follow the same procedure from last week's lab. That is, tar up the files in your project and email the resultant tar file to me. "tar -czvf cmpu102-hw0-petelemieszewski.tar.gz cmpu102/hw0/" (By the way, instead of google, you can check "man pages" on the linux for standard commands like tar. Open a terminal, and enter the command: man tar) * Actually, we did see a little bit of this in our toString() method where '+' used to concatenate strings.