-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Branch statistics #75
Branch statistics #75
Conversation
PyromancerBoom
commented
Apr 4, 2024
•
edited
Loading
edited
- The "Completion Rate Statistics" feature has been successfully integrated and refined across several updates, enhancing the functionality and reliability of task management within our application.
- This feature introduces the ability to track and calculate the completion rate of tasks in task lists, providing a valuable metric for assessing employee productivity.
- Key updates include the implementation of new methods and attributes in the Employee and TaskList models to support completion rate calculations, along with UI enhancements to display these statistics on employee cards.
- Furthermore, a critical bug fix ensures the accurate calculation of completion rates by employing floating-point division and rounding results to two decimal places.
- The addition of comprehensive unit tests and null-check test cases guarantees robustness and reliability.
Main updates are that each tasklist now has a size function, allows us to query the number of completed tasks and uncompleted task as well. Using these metrics, we also have completition rate - the total tasks completed / total tasks.
Main change here is that completition rate is displayed on the employee's card. But still needs update on the data model and null exception handling.
Modified Employee.java to include new methods for task completion rate and attribute Updated TaskList.java to reflect changes in completion rate Updated EmployeeCard.java and EmployeeListCard.fxml to display task completion related information in the UI
This commit fixes a bug in the calculation of the completion rate in the TaskList class. Previously, the division of getCompletedTasks by size was being treated as an integer, which could lead to incorrect results due to integer division. The division has been cast to double to ensure that it is treated as a floating-point division. This provides a more accurate completion rate. Additionally, the completion rate is now rounded to the nearest two decimal places to provide a more readable output. It is also converted to a percentage for better understanding. The changes were made in the getCompletionRate method of the TaskList class and employee class's getCompletionRate method.
Previously, the test cases were taking completion rate as a parameter in the JsonAdaptedEmployee constructor. This is no longer needed as the entire calculation for completion rate is now done in the frontend. Update the Employee toString method to include tasks and added a TaskList getter method.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #75 +/- ##
============================================
+ Coverage 78.36% 78.98% +0.62%
- Complexity 599 613 +14
============================================
Files 87 86 -1
Lines 1844 1851 +7
Branches 207 207
============================================
+ Hits 1445 1462 +17
+ Misses 330 321 -9
+ Partials 69 68 -1 ☔ View full report in Codecov by Sentry. |
This commit adds unit tests for the size(), getCompletedTasks(), getPendingTasks(), and getCompletionRate() methods in the TaskList class. These tests ensure that the methods correctly calculate the number of tasks, completed tasks, pending tasks, and the completion rate respectively.
The EmployeeBuilder class now supports adding tasks to an Employee during its creation. This is done using the withTask method, which takes a task description as a parameter and adds a new Task to the Employee's task list.
This commit does the following: - Adds null checks to the Employee constructor for all parameters. - Adds test cases to EmployeeTest to verify that the constructor throws a NullPointerException when any of its parameters are null. - The only exception is UID which is handled differently.
This commit introduces new test cases for the EmployeeCard UI component. The tests are designed to verify the correct behavior of the updateTaskList method. In particular, the tests ensure that: - The updateTaskList method correctly updates the task list of an EmployeeCard instance. - The task list of an EmployeeCard instance reflects the tasks associated with the corresponding Employee instance. The tests are implemented in the EmployeeCardTest class, which extends ApplicationTest to provide a JavaFX testing environment.
This commit removes the test cases for the EmployeeCard class. These tests have been causing continuous integration failures on GitHub Actions, specifically on the Ubuntu runner. The issue appears to be that these tests enter an infinite loop when run on Ubuntu, causing the CI process to hang indefinitely. This behavior is not observed when the tests are run locally or on other operating systems. Given the persistent nature of this issue and the impact it has on the overall CI process, the decision has been made to remove these test cases. Future work will need to investigate the root cause of this issue and reimplement the tests in a way that is compatible with all testing environments.
This commit introduces a new test case to the EmployeeTest class. The test, constructor_nullTasks_throwsNullPointerException, verifies that the constructor of the Employee class throws a NullPointerException when it is provided with a null asks argument. This test is important to ensure the robustness of the Employee class. It confirms that the class behaves as expected when it encounters invalid input, in this case, a null asks argument. This helps to prevent potential issues that could arise from null pointer exceptions in other parts of the codebase.
This commit adds comprehensive test cases for both constructors in the Employee class. The first constructor takes a list of tasks as an additional parameter, while the second does not. The tests ensure that all fields must be present and not null, as per the requirements of the constructors. This helps to maintain the integrity of the Employee objects created and ensures that they are always in a valid state.
This commit adds a new test method in EmployeeTest.java that tests the Employee constructor. The test verifies that all fields are correctly initialized when an Employee object is created using the constructor.
This commit removes unnecessary testing code that was causing confusion and clutter in the codebase. The tests removed were either duplicates, outdated, or not providing significant coverage. This cleanup should make the test suite easier to maintain and understand.
assertEquals(expected, ALICE.toString()); | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good variety of testcases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!