FFFFFFFFFFFFF.F                                                          [100%]
=================================== FAILURES ===================================
_________ test_shrinkage_uses_complete_observations[constant_variance] _________
tests/test_missing_return_estimation.py:20: in test_shrinkage_uses_complete_observations
    with pytest.warns(UserWarning, match="81.*incomplete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
E    Emitted warnings: [].
___________ test_shrinkage_uses_complete_observations[single_factor] ___________
tests/test_missing_return_estimation.py:20: in test_shrinkage_uses_complete_observations
    with pytest.warns(UserWarning, match="81.*incomplete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
E    Emitted warnings: [].
_______ test_shrinkage_uses_complete_observations[constant_correlation] ________
tests/test_missing_return_estimation.py:20: in test_shrinkage_uses_complete_observations
    with pytest.warns(UserWarning, match="81.*incomplete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
E    Emitted warnings: [].
________________ test_shrinkage_uses_complete_observations[oas] ________________
tests/test_missing_return_estimation.py:20: in test_shrinkage_uses_complete_observations
    with pytest.warns(UserWarning, match="81.*incomplete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
E    Emitted warnings: [].
____ test_shrinkage_requires_two_complete_observations[0-constant_variance] ____
tests/test_missing_return_estimation.py:33: in test_shrinkage_requires_two_complete_observations
    with pytest.raises(ValueError, match="two complete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
______ test_shrinkage_requires_two_complete_observations[0-single_factor] ______
tests/test_missing_return_estimation.py:33: in test_shrinkage_requires_two_complete_observations
    with pytest.raises(ValueError, match="two complete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
__ test_shrinkage_requires_two_complete_observations[0-constant_correlation] ___
tests/test_missing_return_estimation.py:33: in test_shrinkage_requires_two_complete_observations
    with pytest.raises(ValueError, match="two complete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
___________ test_shrinkage_requires_two_complete_observations[0-oas] ___________
tests/test_missing_return_estimation.py:33: in test_shrinkage_requires_two_complete_observations
    with pytest.raises(ValueError, match="two complete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
____ test_shrinkage_requires_two_complete_observations[1-constant_variance] ____
tests/test_missing_return_estimation.py:33: in test_shrinkage_requires_two_complete_observations
    with pytest.raises(ValueError, match="two complete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
______ test_shrinkage_requires_two_complete_observations[1-single_factor] ______
tests/test_missing_return_estimation.py:33: in test_shrinkage_requires_two_complete_observations
    with pytest.raises(ValueError, match="two complete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
__ test_shrinkage_requires_two_complete_observations[1-constant_correlation] ___
tests/test_missing_return_estimation.py:33: in test_shrinkage_requires_two_complete_observations
    with pytest.raises(ValueError, match="two complete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
___________ test_shrinkage_requires_two_complete_observations[1-oas] ___________
tests/test_missing_return_estimation.py:33: in test_shrinkage_requires_two_complete_observations
    with pytest.raises(ValueError, match="two complete"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
_____________ test_semicovariance_uses_pairwise_observation_counts _____________
tests/test_missing_return_estimation.py:41: in test_semicovariance_uses_pairwise_observation_counts
    pd.testing.assert_frame_equal(actual, expected)
pandas/_libs/testing.pyx:53: in pandas._libs.testing.assert_almost_equal
    ???
pandas/_libs/testing.pyx:171: in pandas._libs.testing.assert_almost_equal
    ???
E   AssertionError: DataFrame.iloc[:, 0] (column name="A") are different
E   
E   DataFrame.iloc[:, 0] (column name="A") values are different (50.0 %)
E   [index]: [A, B]
E   [left]:  [0.012500000000000002, 0.0]
E   [right]: [0.016666666666666666, 0.0]
E   At positional index 0, first diff: 0.012500000000000002 != 0.016666666666666666
_________ test_semicovariance_rejects_pairs_without_joint_observations _________
tests/test_missing_return_estimation.py:52: in test_semicovariance_rejects_pairs_without_joint_observations
    with pytest.raises(ValueError, match="joint observation"):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E   Failed: DID NOT RAISE ValueError
=============================== warnings summary ===============================
tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[0-single_factor]
  $WORKSPACE/pypfopt-missing/pypfopt/risk_models.py:595: RuntimeWarning: invalid value encountered in scalar divide
    k = (p - r) / c

tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[0-constant_correlation]
tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[1-constant_correlation]
  $WORKSPACE/pypfopt-missing/pypfopt/risk_models.py:85: UserWarning: The covariance matrix is non positive semidefinite. Amending eigenvalues.
    warnings.warn(

tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[0-constant_correlation]
tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[1-constant_correlation]
  $WORKSPACE/pypfopt-missing/pypfopt/risk_models.py:104: UserWarning: Could not fix matrix. Please try a different risk model.
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/test_missing_return_estimation.py::test_shrinkage_uses_complete_observations[constant_variance]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_uses_complete_observations[single_factor]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_uses_complete_observations[constant_correlation]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_uses_complete_observations[oas]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[0-constant_variance]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[0-single_factor]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[0-constant_correlation]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[0-oas]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[1-constant_variance]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[1-single_factor]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[1-constant_correlation]
FAILED tests/test_missing_return_estimation.py::test_shrinkage_requires_two_complete_observations[1-oas]
FAILED tests/test_missing_return_estimation.py::test_semicovariance_uses_pairwise_observation_counts
FAILED tests/test_missing_return_estimation.py::test_semicovariance_rejects_pairs_without_joint_observations
14 failed, 1 passed, 5 warnings in 1.34s
