Change Log Report

Total number of changed sets: 1

Changes between 2023-11-22 and 2023-12-23

Total commits: 11
Total number of files changed: 17

Timestamp Author Details
2023-12-07 22:08:02 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-roman/src/test/groovy/epam/roman/RomanToArabicConverterSpec.groovy v 84be91c1cb8ab2088eebe104025a324a424f2393

Add Qodana configuration, modify test package and add GitHub Action

This commit introduces Qodana static code analysis by adding a qodana.yaml file. Qodana is expected to facilitate better code quality management. Also, a small adjustment was made to the package declaration of the RomanToArabicConverterSpec.groovy test file – removing the semicolon for consistency. Lastly, a new GitHub Action (publish.yaml in .github/workflows) was added, aimed at automating the website publication process.
2023-12-05 16:11:09 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-flipflop/src/test/groovy/epam/flipflop/FlipFlopPredicateAiSpec.groovy v 42c31319f6178f8820a68671fd012839cb3a0f48

Update FlipFlopPredicate test to use Object

The FlipFlopPredicate test in FlipFlopPredicateAiSpec.groovy was updated to utilize Object instead of Boolean. This modification allows a more diverse range of inputs for testing. The test method has been updated to reflect this change. Additionally, an 'and' clause was added in the 'given' section to improve readability.
2023-12-04 12:59:29 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/docs/epam-ai-legal-age-predicate.md v eeac2f8e561ad244f4b5203b230730f8a16ceb5c
epam-ai-dial/docs/spock-framework.md v eeac2f8e561ad244f4b5203b230730f8a16ceb5c

Add guidelines for Spock framework, revise epam-ai-legal-age-predicate document

This commit includes the addition of a new document detailing the rules and guidelines for using the Spock framework for Java and Groovy developers in AI dialogue. The purpose of the change is to improve the test coverage and ensure consistency across the development.

In addition, an unnecessary line in the 'epam-ai-legal-age-predicate' document was removed for overall content cleanliness.
2023-12-03 20:57:26 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-flipflop/src/main/java/epam/flipflop/FlipFlopPredicate.java v ec0a974ee3eef20b00d77aea533b29350988c418
epam-ai-dial/epam-ai-flipflop/src/test/groovy/epam/flipflop/FlipFlopPredicateAiSpec.groovy v ec0a974ee3eef20b00d77aea533b29350988c418
epam-ai-dial/epam-ai-legal-age/src/test/groovy/epam/legalage/LegalAgePredicateSpec.groovy v ec0a974ee3eef20b00d77aea533b29350988c418

Revamp FlipFlopPredicate and adjust test files

Refactored FlipFlopPredicate class for clarity and efficiency. Introduced NPE checks for input predicates. Renamed variables for better understanding of their purposes. Streamlined test method in FlipFlopPredicateAiSpec. Minor text adjustment in LegalAgePredicateSpec.

The changes are made to improve readability, maintainability and to ensure safety from NullPointerExceptions by requiring non-null values for input predicates.
2023-12-03 20:21:57 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-roman/src/main/java/epam/roman/RomanToArabicConverter.java v 387bf40e0a33b320e669c0af95c823e558579337
epam-ai-dial/epam-ai-roman/src/test/groovy/epam/roman/RomanToArabicConverterSpec.groovy v 387bf40e0a33b320e669c0af95c823e558579337
epam-ai-dial/epam-ai-roman/src/test/java/epam/roman/RomanToArabicConverterAiTest.java v 387bf40e0a33b320e669c0af95c823e558579337

Add Roman to Arabic numeral converter and tests

Adding a new utility, RomanToArabicConverter, to convert Roman numerals to their Arabic counterparts. This functionality is necessary to support features that rely on Roman numeral inputs. The implementation uses a HashMap to map the numerals and converts the input string from right to left.

Tests for this conversion method have also been added, ensuring all typical cases (minimum value, subtraction cases, maximum value) are correctly handled. Tests are executed with both Groovy and JUnit, increasing testing reliability and coverage.
2023-12-03 20:10:59 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/docs/epam-ai-flipflop-predicate.md v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/docs/epam-ai-legal-age-predicate.md v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/docs/tdd-junit5-assertj.txt v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-flipflop/pom.xml v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-flipflop/src/main/java/epam/flipflop/FlipFlopPredicate.java v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-flipflop/src/test/java/epam/flipflop/FlipFlopPredicateAiTest.java v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-legal-age/src/test/groovy/epam/legalage/LegalAgePredicateSpec.groovy v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/epam-ai-roman/pom.xml v ea4316eff58f044ab258e698f0a282ba2e571811
epam-ai-dial/pom.xml v ea4316eff58f044ab258e698f0a282ba2e571811

Update FlipFlopPredicate and LegalAgePredicate

Extended FlipFlopPredicate tests and functionality to meet the modified specification where it returns true while the state has been changed from active to inactive on the input satisfying the end condition.

Added tests and implementation for LegalAgePredicate which determines if a person of a given birthdate has reached legal age. Implementation and tests are provided with two Predicate constructors allowing to use different Clock for date mocking in tests.

Added a detailed dialogue transcript explaining the reason behind all decisions and clarifications asked during the task implementation.
2023-12-03 18:38:16 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-legal-age/src/test/groovy/epam/legalage/LegalAgePredicateSpec.groovy v 2cba7964441969e0704d72dedd9a0d0f3c43bd45
epam-ai-dial/epam-ai-legal-age/src/test/java/epam/legalage/LegalAgePredicateAiTest.java v 2cba7964441969e0704d72dedd9a0d0f3c43bd45
epam-ai-dial/pom.xml v 2cba7964441969e0704d72dedd9a0d0f3c43bd45

Updated legal age test cases & added Spock dependency

Added JUnit5 and Spock Framework dependencies in pom.xml to facilitate additional testing scenarios. Created a new Groovy file, LegalAgePredicateSpec.groovy, for testing with Spock Framework which allows more comprehensive testing scenarios in a clear, readable form.
2023-12-03 17:56:16 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-legal-age/pom.xml v 62155f6a55fc3dbc565ad15ac0fb671bec24085b
epam-ai-dial/epam-ai-legal-age/src/main/java/epam/legalage/LegalAgePredicate.java v 62155f6a55fc3dbc565ad15ac0fb671bec24085b
epam-ai-dial/epam-ai-legal-age/src/test/java/epam/legalage/LegalAgePredicateAiTest.java v 62155f6a55fc3dbc565ad15ac0fb671bec24085b
epam-ai-dial/pom.xml v 62155f6a55fc3dbc565ad15ac0fb671bec24085b

New module epam-ai-legal-age has been added to the project. This module introduced a LegalAgePredicate class for checking whether a user is over 18 years old based on their date of birth. This logic is tested in LegalAgePredicateAiTest. These changes are essential for ensuring the software does not provide services to underage users, complying with international laws regarding the provision of certain digital services. Furthermore, the parent pom.xml and epam-ai-dial/pom.xml were updated to include new dependencies and modules required for these changes.
2023-12-03 13:20:30 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/pom.xml v 5d41f493a8e33363078706825f558a376a5876b0

Update Maven configurations and add README

Updated the Maven POM files to include more accurate project descriptions, better security checks, and improved report plugins. README.md was added, providing an overview of this project. Changes made to maven configurations include:

- `pom.xml`: Incorporating OWASP dependency-check plugin for better security; also rearranged the reporting plugins sections.
- `diffblue-cover`, `github-copilot`, and `diffblue-roman` pom files: Corrected the project description and URL for a clearer understanding of the application.
- `epam-ai-dial` pom file: Removed the extra line.

These updates provide better project clarity and enhance the security levels of our code base.

@coderabbitai ignore
2023-12-02 18:17:54 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/epam-ai-roman/pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3
epam-ai-dial/pom.xml v 8e3afabb9fadbb70ad2d7aba661f9a94b80dcbf3

Reorganized project structure and renamed modules

Deleted files and directories related to the 'diffblue' and 'roman-to-integer' modules. These modules are part of a larger restructuring of the project. 'diffblue' and 'roman-to-integer' renamed to 'diffblue-cover' and 'diffblue-roman' respectively for better understanding of the role each module plays. The 'github-copilot' module created to introduce GitHub Copilot samples. Unit tests were also reorganised in accordance to the new hierarchy. Necessary changes in pom.xml were done to reflect the changes.

@coderabbitai ignore
2023-12-02 08:13:31 Jegors Čemisovs <jegors_cemisovs@epam.com> epam-ai-dial/pom.xml v 22452cb00213b139d9d5bbe74c233d7d644629f2

Add pom.xml for new module epam-ai-dial

Added a new pom.xml file for a fresh module called epam-ai-dial. This module is needed for Autonomous Java Unit Test Writing with AI for Code. In addition to the new file, the main pom.xml was edited to include new module and add XML and HTML report formats for Jacoco maven plugin.