From 5efa4cbfcb671ce19f9c9615b8ab3877ef246b6f Mon Sep 17 00:00:00 2001 From: Hardik Kaurani Date: Mon, 19 Oct 2026 16:49:18 +0530 Subject: [PATCH] fix(machine_learning): call features.any() in linear_discriminant_analysis In linear_discriminant_analysis, line 146 wrote if features.any: instead of calling if features.any():. Because the method object is always truthy, the else branch handling empty datasets was unreachable dead code, triggering ty warning[redundant-condition]. Call eatures.any() (matching line 107 in principal_component_analysis) and add a test case in test_linear_discriminant_analysis verifying that an empty dataset properly enters the else branch. Validation: - uvx ty check machine_learning/dimensionality_reduction.py -> All checks passed (0 diagnostics) - uvx --with scipy --with scikit-learn --with numpy pytest machine_learning/dimensionality_reduction.py --doctest-modules -> 9 passed - uvx ruff check / format -> clean --- machine_learning/dimensionality_reduction.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/machine_learning/dimensionality_reduction.py b/machine_learning/dimensionality_reduction.py index 6080d0a4f11f..3912a9d9cf5e 100644 --- a/machine_learning/dimensionality_reduction.py +++ b/machine_learning/dimensionality_reduction.py @@ -143,7 +143,7 @@ def linear_discriminant_analysis( assert classes > dimensions # Check if features have been already loaded - if features.any: + if features.any(): _, eigenvectors = eigh( covariance_between_classes(features, labels, classes), covariance_within_classes(features, labels, classes), @@ -363,6 +363,11 @@ def test_linear_discriminant_analysis() -> None: ) assert error_info.type is AssertionError + with pytest.raises(AssertionError): + linear_discriminant_analysis( + np.array([]), np.array([]), classes=2, dimensions=1 + ) + def test_principal_component_analysis() -> None: features = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])