Skip to content

Commit ac63a5a

Browse files
committed
Updated report
1 parent 4551d14 commit ac63a5a

File tree

1 file changed

+97
-0
lines changed
  • courseProjectDocs/integration-testing

1 file changed

+97
-0
lines changed

courseProjectDocs/integration-testing/report.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,100 @@ This integration testing effort focuses on verifying interactions between multip
2727
1. **validate_fillna_kwargs with clean_fill_method**: Tests delegation from validator to missing data module for method normalization
2828
2. **Series.fillna/ffill operations**: Tests complete pipeline from user API through validation to missing data handling
2929

30+
### Test 3: Dtype Backend-Libs Integration (Mallikarjuna)
31+
**Modules Integrated:**
32+
- `pandas.util._validators` (validation functions)
33+
- `pandas._libs.lib` (C extension library with sentinel values)
34+
- `numpy` (array handling and validation)
35+
36+
**Interactions Tested:**
37+
1. **check_dtype_backend with lib.no_default**: Tests validator interaction with C library sentinel values
38+
2. **validate_percentile with numpy arrays**: Tests pandas validation with numpy array conversion and bounds checking
39+
40+
## Test Data Preparation
41+
42+
### Input Data Generation
43+
44+
**Test 1 - Series/DataFrame Integration:**
45+
- **Input**: Created Series with explicit dtype (`int32`) and sample data `[1, 2, 3]`
46+
- **Input**: Created multiple Series with different dtypes: int64, float32, object
47+
- **Rationale**: Different dtypes exercise type preservation logic across module boundaries
48+
49+
**Test 2 - Validation/Missing Data:**
50+
- **Input**: Series with `np.nan` values: `[1.0, np.nan, 3.0, np.nan, 5.0]`
51+
- **Input**: Method names `"pad"`, `"ffill"` and `None` values
52+
- **Rationale**: Missing values and various method names test validation and fill method delegation
53+
54+
**Test 3 - Backend/Libs Validation:**
55+
- **Input**: `lib.no_default` sentinel, valid backends (`"numpy_nullable"`, `"pyarrow"`), invalid backend string
56+
- **Input**: Valid percentiles (`0.5`, `[0.25, 0.5, 0.75]`) and invalid (`1.5`, `[0.25, 1.5, 0.75]`)
57+
- **Rationale**: Mix of valid/invalid inputs tests error handling across module boundaries
58+
59+
### Expected Output Data
60+
61+
All tests include explicit expected outputs:
62+
- Series/DataFrame tests verify dtype preservation and data integrity
63+
- Validation tests verify normalized method names and appropriate ValueError exceptions
64+
- Backend tests verify acceptance of valid values and rejection with specific error messages
65+
66+
## Execution and Results
67+
68+
**Test File**: `pandas/tests/util/test_integration.py`
69+
70+
**Execution Command:**
71+
```bash
72+
python -m pytest pandas/tests/util/test_integration.py -v
73+
```
74+
75+
**Test Results:**
76+
```
77+
collected 6 items
78+
79+
test_series_to_dataframe_dtype_preservation PASSED
80+
test_dataframe_from_dict_mixed_series_dtypes PASSED
81+
test_validate_fillna_with_clean_method PASSED
82+
test_series_fillna_integration PASSED
83+
test_check_dtype_backend_with_lib_sentinel PASSED
84+
test_percentile_validation_with_numpy_arrays PASSED
85+
86+
=================================== 6 passed in 0.94s
87+
```
88+
89+
**Summary:**
90+
- **Total Tests**: 6 integration tests
91+
- **Passed**: 6 (100%)
92+
- **Failed**: 0
93+
- **Execution Time**: 0.94 seconds
94+
95+
### Defects Discovered
96+
97+
**No defects were discovered during integration testing.** All module interactions functioned as expected:
98+
99+
- Series-to-DataFrame conversion preserves dtypes correctly
100+
- DataFrame construction handles mixed-dtype Series properly
101+
- Validation module correctly delegates to missing data module
102+
- Series fillna operations integrate validation and missing data modules
103+
- Backend validation properly handles C library sentinel values
104+
- Percentile validation correctly integrates with NumPy array handling
105+
106+
All error cases (ValueError for invalid inputs) behaved as designed, raising appropriate exceptions with descriptive messages.
107+
108+
## Bug Reports
109+
110+
**No bugs identified.** All integration points between modules are functioning correctly. The following expected behaviors were verified:
111+
112+
1. **Type preservation across module boundaries**: Dtypes maintained through Series→DataFrame→Internals conversions
113+
2. **Validation delegation**: Validators correctly call specialized modules (e.g., `clean_fill_method`)
114+
3. **Error propagation**: Invalid inputs raise appropriate exceptions with clear messages
115+
4. **Sentinel value handling**: C library sentinels (`lib.no_default`) recognized by validators
116+
117+
## Group Contributions
118+
119+
| Student | Test Cases | Modules Integrated | Coverage |
120+
|---------|------------|-------------------|----------|
121+
| **Sandeep Ramavath** | 2 tests | Series, DataFrame, Internals, Dtypes | Series-DataFrame conversion and construction |
122+
| **Nithikesh Bobbili** | 2 tests | Validators, Missing Data, Series, Internals | Fillna validation and operation pipeline |
123+
| **Mallikarjuna** | 2 tests | Validators, C Libs, NumPy | Backend validation and percentile checking |
124+
125+
**Total**: 6 integration tests covering 8+ distinct pandas modules with both normal and edge case scenarios.
126+

0 commit comments

Comments
 (0)