Download and study the code provided in the BlueJ project roman_numerals_buggy.zip. Rename this BlueJ project to roman_numeral_soln (this is the BlueJ project you will be submitting). You can rename the project by renaming the folder from roman_numerals_buggy to roman_numeral_soln after extracting the zip file. The purpose of this code is to convert Arabic numerals into Roman numerals. Make an instance of RomanNumerals and invoke the method toRoman(int n). Enter a number in the Arabic notation and it will convert it to a Roman numeral. For example “17” will be converted to “XVII”.You will notice a test suite that we provide with the code. Run the test suite by right-clicking on RomanNumeralsTest and choosing Test All as shown in Figure 6.3 of the book. Alternatively, you can click on the Run Tests button as shown in Figure 6.2 of the book, if you have enabled the ‘Show unit testing tools’ preference. To enable it, go to Tools > Preferences > Miscellaneous, and select ‘Show unit testing tools’.
You will notice a total of eight tests of which two fail.
Your first task in this assignment is to study the given code, identify why the two tests fail, and correct the code.
On studying the code further, you will notice a few more bugs/limitations in the provided code (i.e. the provided code will not give the correct Roman numeral conversion for some numbers). Identify them and correct the code to handle those situations also.
Also, the test suite itself has a bug, i.e. it will flag an error in a particular case even when the code gives the right answer. Identify that situation and correct it.
Add five more tests to RomanNumeralsTest to give you confidence that all numbers between 1 and 3,000 will be converted correctly.
By the end of this assignment you will have code that converts from Arabic numerals to Roman numerals which handles all possibilities and is fully tested by an additional five tests (hence, a total of 13 tests: eight we provide and five you write).
Create a new project in BlueJ by clicking on the menu option Project > New project. This will create a folder with the project name (see below). All BlueJ project-related files for this project will be stored in this folder. Create new classes by clicking on the [New Class] button. All Java class files that you create (.java files) will be stored in the BlueJ project folder. The project folder will contain other files as well. After completing and testing your assignment, zip the entire BlueJ folder and submit it. Since your Instructor will need all files in the project folder, make sure you zip the entire folder. For this assignment the names of the BlueJ project, Java class files, and the zip file you submit are given below:
BlueJ project: roman_numeral_soln (note that you would have downloaded roman_numberal_buggy.zip, unzipped and renamed the project to roman_numberal_soln.)
Java classes: RomanNumerals.java, RomanNumeralsTest.java