cdisc-org / cdisc-rules-engine

Open source offering of the cdisc rules engine
MIT License
48 stars 13 forks source link

Rule fails when detecting dataset class and version is specified using a dot. Ex. 3.4 v 3-4 #479

Closed nhaydel closed 12 months ago

nhaydel commented 1 year ago

Steps to reproduce:

  1. Run the command: python core.py test -s sdtmig -v 3.4 -r rule.json -dp dataset.json with the attached rule and dataset
  2. You should see the rule get executed, but instead it is skipped due to an error datasets.zip
nhaydel commented 1 year ago

Assigned to myself since it is related to the recent get_dataset_class changes.

RamilCDISC commented 1 year ago

The issue is clear from QA validation.The changes have been thoroughly reviewed and the problem with the rules engine failing when a version number with a dot was provided has been successfully resolved.

I have attached the screenshot showing successful run and generated report also.

479

CORE-Report-2023-07-28T13-33-59.xlsx

RamilCDISC commented 1 year ago

VALIDATION SUMMARY

Validation Methodology

The validation process incorporated rigorous testing methodologies to ensure the accuracy and reliability of the system. This included:

Unit Testing: Unit Testing was done to verify the implementation of the Acceptance criteria. Unit tests were designed to test the made changes using edge cases. All those tests were then run using pytest to verify compliance with acceptance criteria.

Rules Engine: The rules engine test (in core.py) functionality was utilized to run a validation to confirm that the error is removed.

Code Review: The code changes in the code files were reviewed and were found to be in accordance with the Acceptance criteria. Also, the code was reviewed for following:

Regression Testing: Regression tests were run to validate that the changes did not affect any functionality of the overall system.

Test Execution:

The tests were executed in the following order:

Code Review: The code for all the changes files was reviewed first to check the proper implementation of the Acceptance criteria.

Unit Tests: The unit tests were run using the following command in the terminal from the root of the project python -m pytests path/to/the/test/files

Rules Engine: A number of test validations were performed using rules engine covering scenerioes of mentioning the version flag with '.' and '-' both.

Regression Tests: The regression tests were then run to confirm that the changes in engine did not break any other part of the implementation

Results:

After successful running of unit, Rule Engine test, regression tests and careful validation, the issue was found to be good to close as the Acceptance criteria was fulfilled and all validations passed.

Deviations and Non-conformances:

No deviations or non-conformances were observed.

Summary of Findings:

Test Results: All tests conducted during the validation process passed successfully, indicating that the system functions as intended and meets the specified requirements. The tests covered various scenarios and edge cases, providing confidence in the system's reliability and correctness. Unit Regression: The unit regression tests were executed, and no regressions or issues were identified. This indicates that the changes made during the development or modification of the system did not introduce any unintended side effects or break existing functionality. Code Reviews: The code reviews conducted by both development and QA teams were completed, and no major issues or concerns were identified. The code adheres to coding standards and best practices, demonstrating good code quality, readability, and maintainability.