|
6 | 6 | import pandas as pd |
7 | 7 | import pytest |
8 | 8 |
|
9 | | -pytestmark = pytest.mark.slow |
10 | | - |
11 | 9 | from diff_diff import SyntheticDiD |
12 | 10 | from diff_diff.trop import TROP, TROPResults, trop |
13 | 11 | from diff_diff.prep import generate_factor_data |
@@ -465,6 +463,7 @@ def test_nan_propagation_when_se_zero(self): |
465 | 463 | assert results.att == 1.0, "ATT should still be valid" |
466 | 464 |
|
467 | 465 |
|
| 466 | +@pytest.mark.slow |
468 | 467 | class TestTROPvsSDID: |
469 | 468 | """Tests comparing TROP to SDID under different DGPs.""" |
470 | 469 |
|
@@ -543,6 +542,7 @@ def test_convenience_with_kwargs(self, simple_panel_data): |
543 | 542 | assert isinstance(results, TROPResults) |
544 | 543 |
|
545 | 544 |
|
| 545 | +@pytest.mark.slow |
546 | 546 | class TestMethodologyVerification: |
547 | 547 | """Tests verifying TROP methodology matches paper specifications. |
548 | 548 |
|
@@ -1260,6 +1260,7 @@ def test_d_matrix_validation_error_message_helpful(self): |
1260 | 1260 | assert "D[t, i] = 1 for all t >= first treatment" in error_msg |
1261 | 1261 |
|
1262 | 1262 |
|
| 1263 | +@pytest.mark.slow |
1263 | 1264 | class TestCyclingSearch: |
1264 | 1265 | """Tests for LOOCV cycling (coordinate descent) search.""" |
1265 | 1266 |
|
@@ -1348,6 +1349,7 @@ def test_cycling_search_single_value_grids(self, simple_panel_data): |
1348 | 1349 | assert results.lambda_nn == 0.1 |
1349 | 1350 |
|
1350 | 1351 |
|
| 1352 | +@pytest.mark.slow |
1351 | 1353 | class TestPaperConformanceFixes: |
1352 | 1354 | """Tests verifying fixes for paper conformance issues. |
1353 | 1355 |
|
@@ -2716,6 +2718,7 @@ def test_zero_weights_no_division_error(self): |
2716 | 2718 | assert result.shape == (6, 4), f"Expected (6, 4), got {result.shape}" |
2717 | 2719 |
|
2718 | 2720 |
|
| 2721 | +@pytest.mark.slow |
2719 | 2722 | class TestTROPJointMethod: |
2720 | 2723 | """Tests for TROP method='joint'. |
2721 | 2724 |
|
|
0 commit comments