|
| 1 | +## 1. Project Plan for Testing, Implementation, and Validation |
| 2 | + |
| 3 | +### 1.1 Team Roles and Responsibilities |
| 4 | +Our team consists of **Ahmed, Herdi, Maxim, Annika, and Kim**, with roles distributed as follows: |
| 5 | + |
| 6 | +| **Team Member** | **Role** | **Responsibilities** | |
| 7 | +|----------------|---------|-----------------| |
| 8 | +| **Ahmed** | Issue Resolution & Implementation | Implementing fixes for new date formats in `Period` class and modifying `parse_time_string` to integrate logic for these formats. | |
| 9 | +| **Herdi** | Repository Preparation, Test Execution & Additional Fixes | Setting up the environment, running the full test suite, integrating fixes, and handling additional bug fixes related to `Period` class behavior. | |
| 10 | +| **Maxim, Annika, Kim** | Testing Team | Writing, documenting, and structuring test cases in `test_period.py`. Running and validating test cases before and after implementation. Ensuring coverage analysis is performed. | |
| 11 | + |
| 12 | +--- |
| 13 | + |
| 14 | +### 1.2 Current Project Plan |
| 15 | +This project plan outlines how we implemented, tested, and validated the new date formats and additional fixes before merging into pandas. |
| 16 | + |
| 17 | +#### 1.2.1 Issue Overview |
| 18 | +We have implemented four new date formats in the `Period` class: |
| 19 | + |
| 20 | +1. **ISO 8601 Ordinal Dates** (e.g., `"1981-095"` → Interpreted as April 5, 1981). |
| 21 | +2. **Multi-Year Spans** (e.g., `"2019-2021"` → Represents the range of years 2019 to 2021). |
| 22 | +3. **Week Start-End Ranges** (e.g., `"20170123-20170129"` → Interpreted as a full week). |
| 23 | +4. **Quarter-Based Multi-Year Periods** (e.g., `"2023Q1-2024Q3"` → Generates a quarterly range). |
| 24 | +5. **`DateParseError` on weeks from the 24th century onwards** |
| 25 | +6. **`DateParseError` on weeks in the 60s, 70s, 80s, or 90s** of any century. |
| 26 | +7. **Correcting `freq` misinterpretations**, ensuring that hours are no longer mistaken for minutes in certain string formats. |
| 27 | + |
| 28 | +--- |
| 29 | + |
| 30 | +#### 1.2.2 Implementation, Testing, and Validation |
| 31 | +The **implementation, testing, and validation** of the new formats and fixes were conducted **in parallel** by the team. All team members contributed to different aspects of development, and the documentation was **iteratively revised and refined** after testing. |
| 32 | + |
| 33 | +##### **Test Preparation (Before Implementation)** |
| 34 | +- The **testing team (Maxim, Annika, and Kim)** worked on: |
| 35 | + - Writing **test cases** covering the issue requirements/features. |
| 36 | + - Documenting test cases, describing **what is tested and how they connect** to the feature. |
| 37 | + - Adding test descriptions as **issue documentation** and **method docstrings** in `test_period.py`. |
| 38 | + - Executing **test cases to confirm failure before implementation**, validating that the issue exists. |
| 39 | + |
| 40 | +##### **Feature Implementation** |
| 41 | +- **Ahmed** worked on: |
| 42 | + - Modifying `Period` and `parse_time_string` to **support the new formats**. |
| 43 | + - Pushing the fixes to a **feature branch** for testing. |
| 44 | +- **Herdi** worked on: |
| 45 | + - **Integrating the fixes** into the repository. |
| 46 | + - Ensuring **smooth compatibility** with existing pandas functionality. |
| 47 | + - **Implementing fixes for additional issues**, including `DateParseErrors` and frequency misinterpretations. |
| 48 | + |
| 49 | +##### **Test Execution (After Implementation)** |
| 50 | +- The **testing team**: |
| 51 | + - Executed the **full pandas test suite** to verify that new changes do not break existing functionality. |
| 52 | + - Ran the **new test cases** to ensure they **passed after implementation**. |
| 53 | + |
| 54 | +##### **Coverage and Final Validation** |
| 55 | +- The **testing team** analyzed: |
| 56 | + - **Test coverage**, ensuring that **key execution paths** were tested. |
| 57 | + - Re-ran the **full test suite** with `pytest --cov` to verify coverage levels. |
| 58 | + |
| 59 | +--- |
| 60 | + |
| 61 | +### 1.2.3. Documentation & Refinement |
| 62 | +Throughout the project, **all team members contributed** to the documentation, ensuring that it accurately described the issue, testing strategy, and implementation details. After completing the implementation and testing, the documentation was **revised and refined** to reflect the final methodology and test results. |
| 63 | + |
| 64 | +#### **Key Documentation Deliverables:** |
| 65 | +- **Issue documentation** describing **requirements, test cases, and feature mapping**. |
| 66 | +- **Test case descriptions** added to **test_period.py**. |
| 67 | +- Final **test results and coverage analysis documentation**. |
| 68 | +- **Structured patch submitted** to pandas for review. |
| 69 | + |
| 70 | +--- |
| 71 | +### 1.3 **Future Project Plan: Enhancing `Period` Class** |
| 72 | + |
| 73 | +#### **Planned Features for Next Iteration** |
| 74 | +- **Business Years Not Starting in January** |
| 75 | + - Support fiscal years with **custom start months** (e.g., `"2023FY-Apr"`). |
| 76 | + - Modify `Period` parsing to recognize and handle non-January year starts. |
| 77 | + |
| 78 | +- **Quarters Starting in Custom Months** |
| 79 | + - Extend quarter parsing to support **non-standard starts** (e.g., `"2024Q1-Feb"`). |
| 80 | + - Ensure consistency with fiscal calendars and existing pandas behavior. |
| 81 | + |
| 82 | +- **Business Days Support** |
| 83 | + - Introduce **business day-based periods** (e.g., `"2023-05-BD"`). |
| 84 | + - Align with pandas’ existing **BusinessDay (`BD`) frequency**. |
0 commit comments