The Java project has been named as "Coding_Challenge"
Execution:
Please run the "ProcessFiles" java file (ProcessFiles.java), as it begins the flow by reading given the text files.
For the unit test, please runf the test suite "AllTests" (AllTests.java)
Details of Development:
The attached code is developed using Java8 and unit testing is done using JUnit5 library on Eclipse IDE.
The following has been verified for evaluation:
-
Correct Output - as per the output mentioned as part of the problem statement
-
Code is simple in terms of flow and class/method/variable names with proper comments.
-
Unit testing has been performed using JUnit5 and the spreadsheet can be found attached or using below URL:
https://docs.google.com/spreadsheets/d/1vqUxlwbuJZbIAwFJvBQiEMsAwSNB20qQ5z4s4iHr32c/edit?usp=sharing
-
Followed Object Oriented Design principles such as:
As stated by S.O.L.I.D:
S - Single Responsibility
O - Open/Closed
L - Liskov Substitution
I - Interface Segrgation
D - Dependency Inversion
-
Simple nouns and verbs with camel case naming convention has been used to improve the readability of the code conforming with the flow along with necessary comments.
-
Instructions has been followed as suggested, such as:
a. Including this file (README.txt)
b. JUnit5 has been used for unit testing
c. Not used any build tool, as it was not mandatory