Skip to content

Commit b173861

Browse files
authored
Create documentation.md
1 parent 99c5029 commit b173861

File tree

1 file changed

+84
-0
lines changed

1 file changed

+84
-0
lines changed

documentation.md

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
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

Comments
 (0)