Description of this paper





Download and study the code provided in the BlueJ project 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).


Paper#64080 | Written in 18-Jul-2015

Price : $22