From e9ee1f545a3036a3830820fcf45cf08c309364c0 Mon Sep 17 00:00:00 2001
From: tschm
Date: Wed, 1 Jan 2025 08:06:34 +0000
Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20cvxgrp/c?=
=?UTF-8?q?vxmarkowitz@e9ebaa9147761b71c47587858c90d1b38390293a=20?=
=?UTF-8?q?=F0=9F=9A=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
tests/coverage/coverage.json | 2 +-
tests/coverage/coverage.xml | 2 +-
tests/html-coverage/class_index.html | 4 ++--
tests/html-coverage/function_index.html | 4 ++--
tests/html-coverage/index.html | 4 ++--
tests/html-coverage/z_0e0294e60ab98629___init___py.html | 4 ++--
tests/html-coverage/z_0e0294e60ab98629_factor_py.html | 4 ++--
tests/html-coverage/z_570ba6a7cf685cc0___init___py.html | 4 ++--
tests/html-coverage/z_570ba6a7cf685cc0_builder_py.html | 4 ++--
tests/html-coverage/z_570ba6a7cf685cc0_cvxerror_py.html | 4 ++--
tests/html-coverage/z_570ba6a7cf685cc0_model_py.html | 4 ++--
tests/html-coverage/z_570ba6a7cf685cc0_names_py.html | 4 ++--
tests/html-coverage/z_570ba6a7cf685cc0_types_py.html | 4 ++--
tests/html-coverage/z_6b6b8e0d310593fd___init___py.html | 4 ++--
tests/html-coverage/z_6b6b8e0d310593fd_cholesky_py.html | 4 ++--
tests/html-coverage/z_6b6b8e0d310593fd_pca_py.html | 4 ++--
tests/html-coverage/z_6b6b8e0d310593fd_random_py.html | 4 ++--
tests/html-coverage/z_6b6b8e0d310593fd_types_py.html | 4 ++--
tests/html-coverage/z_6b6b8e0d310593fd_valid_py.html | 4 ++--
tests/html-coverage/z_83668c6bc6c0e5d0___init___py.html | 4 ++--
tests/html-coverage/z_83668c6bc6c0e5d0_sample_py.html | 4 ++--
tests/html-coverage/z_8e3afc6584d47891___init___py.html | 4 ++--
tests/html-coverage/z_8e3afc6584d47891_bounds_py.html | 4 ++--
.../html-coverage/z_8e3afc6584d47891_expected_returns_py.html | 4 ++--
tests/html-coverage/z_8e3afc6584d47891_holding_costs_py.html | 4 ++--
tests/html-coverage/z_8e3afc6584d47891_trading_costs_py.html | 4 ++--
tests/html-coverage/z_973c2da8f5bd8588___init___py.html | 4 ++--
tests/html-coverage/z_973c2da8f5bd8588_fill_py.html | 4 ++--
tests/html-coverage/z_b81229d6eb8b4201___init___py.html | 4 ++--
tests/html-coverage/z_c3a6f484c9559d23___init___py.html | 4 ++--
tests/html-coverage/z_c3a6f484c9559d23_max_sharpe_py.html | 4 ++--
tests/html-coverage/z_c3a6f484c9559d23_min_var_py.html | 4 ++--
tests/html-coverage/z_c3a6f484c9559d23_soft_risk_py.html | 4 ++--
tests/html-coverage/z_c3a6f484c9559d23_utils_py.html | 4 ++--
tests/html-coverage/z_c88b7eba4a819884___init___py.html | 4 ++--
tests/html-coverage/z_c88b7eba4a819884_cvar_py.html | 4 ++--
tests/html-report/report.html | 4 ++--
37 files changed, 72 insertions(+), 72 deletions(-)
diff --git a/tests/coverage/coverage.json b/tests/coverage/coverage.json
index 5b20dd7a..e1707b23 100644
--- a/tests/coverage/coverage.json
+++ b/tests/coverage/coverage.json
@@ -1 +1 @@
-{"meta": {"format": 3, "version": "7.6.9", "timestamp": "2025-01-01T08:04:04.155729", "branch_coverage": false, "show_contexts": false}, "files": {"cvx/linalg/__init__.py": {"executed_lines": [14, 15, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 15, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 15, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/cholesky.py": {"executed_lines": [14, 16, 18, 20, 23, 27], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"cholesky": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 23], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 18, 20, 23, 27], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/pca.py": {"executed_lines": [14, 16, 18, 20, 22, 25, 26, 27, 28, 30, 31, 32, 36, 37, 40, 43, 44, 45, 47, 49, 51, 52, 53, 55, 56, 57, 59, 60, 61, 63, 64, 65, 67, 68, 69], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"PCA.__post_init__": {"executed_lines": [31, 32, 36, 37, 40, 43, 44, 45, 47, 49], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.explained_variance": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.cov": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.systematic_returns": {"executed_lines": [61], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.idiosyncratic_returns": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.idiosyncratic_vola": {"executed_lines": [69], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 22, 25, 26, 27, 28, 30, 51, 52, 55, 56, 59, 60, 63, 64, 67, 68], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PCA": {"executed_lines": [31, 32, 36, 37, 40, 43, 44, 45, 47, 49, 53, 57, 61, 65, 69], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 22, 25, 26, 27, 28, 30, 51, 52, 55, 56, 59, 60, 63, 64, 67, 68], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/random.py": {"executed_lines": [14, 16, 19, 20, 21], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"rand_cov": {"executed_lines": [20, 21], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 19], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 19, 20, 21], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/types.py": {"executed_lines": [14, 15, 16, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 15, 16, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 15, 16, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/valid.py": {"executed_lines": [14, 16, 18, 20, 23, 32, 33, 35, 36], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"valid": {"executed_lines": [32, 33, 35, 36], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 23], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 18, 20, 23, 32, 33, 35, 36], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/__init__.py": {"executed_lines": [0], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/builder.py": {"executed_lines": [14, 16, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38, 39, 42, 43, 44, 45, 47, 51, 52, 53, 54, 60, 62, 64, 68, 70, 71, 73, 75, 76, 77, 79, 80, 82, 83, 84, 85, 86, 88, 89, 90, 92, 93, 94, 96, 97, 98, 100, 101, 102, 104, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 118, 120, 121, 124, 126, 128, 131, 133, 137, 140, 142, 143, 144, 149, 153, 154, 155, 157, 158, 160, 162, 163, 164, 166, 167, 168, 170, 171, 172], "summary": {"covered_lines": 97, "num_statements": 97, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"deserialize": {"executed_lines": [38, 39], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.update": {"executed_lines": [51, 52, 53, 54, 60, 62], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.solve": {"executed_lines": [68, 70, 71, 73], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.value": {"executed_lines": [77], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.is_dpp": {"executed_lines": [80], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.data": {"executed_lines": [84, 85, 86], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.parameter": {"executed_lines": [90], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.variables": {"executed_lines": [94], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.weights": {"executed_lines": [98], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.factor_weights": {"executed_lines": [102], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.serialize": {"executed_lines": [105, 106], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.__post_init__": {"executed_lines": [120, 121, 124, 126, 128, 131, 133, 137, 140], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.objective": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.build": {"executed_lines": [153, 154, 155, 157, 158, 160], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.weights": {"executed_lines": [164], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.risk": {"executed_lines": [168], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.factor_weights": {"executed_lines": [172], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 42, 43, 44, 45, 47, 64, 75, 76, 79, 82, 83, 88, 89, 92, 93, 96, 97, 100, 101, 104, 109, 110, 111, 112, 113, 114, 115, 116, 118, 142, 143, 144, 149, 162, 163, 166, 167, 170, 171], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"_Problem": {"executed_lines": [51, 52, 53, 54, 60, 62, 68, 70, 71, 73, 77, 80, 84, 85, 86, 90, 94, 98, 102, 105, 106], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder": {"executed_lines": [120, 121, 124, 126, 128, 131, 133, 137, 140, 153, 154, 155, 157, 158, 160, 164, 168, 172], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38, 39, 42, 43, 44, 45, 47, 64, 75, 76, 79, 82, 83, 88, 89, 92, 93, 96, 97, 100, 101, 104, 109, 110, 111, 112, 113, 114, 115, 116, 118, 142, 143, 144, 149, 162, 163, 166, 167, 170, 171], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/cvxerror.py": {"executed_lines": [14, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CvxError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/model.py": {"executed_lines": [14, 16, 18, 19, 21, 23, 26, 27, 28, 30, 31, 32, 34, 35, 40, 41, 46, 50], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Model.estimate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Model.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Model.constraints": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 19, 21, 23, 26, 27, 28, 30, 31, 32, 34, 35, 40, 41, 46], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Model": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 19, 21, 23, 26, 27, 28, 30, 31, 32, 34, 35, 40, 41, 46], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/__init__.py": {"executed_lines": [0], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/bounds.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 33, 35, 37, 38, 40, 41, 46, 52, 53, 54, 56, 57], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Bounds.estimate": {"executed_lines": [35], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bounds._f": {"executed_lines": [38], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bounds.__post_init__": {"executed_lines": [41, 46], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bounds.update": {"executed_lines": [53, 54], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bounds.constraints": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 33, 37, 40, 52, 56], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Bounds": {"executed_lines": [35, 38, 41, 46, 53, 54, 57], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 33, 37, 40, 52, 56], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/expected_returns.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 35, 42, 49, 50, 52, 53, 54, 57, 58, 59, 61], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ExpectedReturns.__post_init__": {"executed_lines": [35, 42], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ExpectedReturns.estimate": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ExpectedReturns.update": {"executed_lines": [53, 54, 57, 58, 59, 61], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 49, 52], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ExpectedReturns": {"executed_lines": [35, 42, 50, 53, 54, 57, 58, 59, 61], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 49, 52], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/holding_costs.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 34, 36, 37, 39, 40], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"HoldingCosts.__post_init__": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "HoldingCosts.estimate": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "HoldingCosts.update": {"executed_lines": [40], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 36, 39], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"HoldingCosts": {"executed_lines": [34, 37, 40], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 36, 39], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/trading_costs.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 34, 37, 39, 40, 47, 48], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"TradingCosts.__post_init__": {"executed_lines": [34, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TradingCosts.estimate": {"executed_lines": [40], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TradingCosts.update": {"executed_lines": [48], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 39, 47], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"TradingCosts": {"executed_lines": [34, 37, 40, 48], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 39, 47], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/names.py": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DataNames": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelName": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConstraintName": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ParameterName": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/portfolios/__init__.py": {"executed_lines": [0], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/portfolios/max_sharpe.py": {"executed_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 29, 35, 36, 37, 39, 40, 42, 44, 46, 47, 48], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"MaxSharpe.objective": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MaxSharpe.__post_init__": {"executed_lines": [40, 42, 44, 46, 47, 48], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 29, 35, 36, 39], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MaxSharpe": {"executed_lines": [37, 40, 42, 44, 46, 47, 48], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 29, 35, 36, 39], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/portfolios/min_var.py": {"executed_lines": [14, 16, 18, 20, 21, 24, 25, 26, 32, 33, 34, 36, 37, 38, 39], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"MinVar.objective": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MinVar.__post_init__": {"executed_lines": [37, 38, 39], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 24, 25, 26, 32, 33, 36], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MinVar": {"executed_lines": [34, 37, 38, 39], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 24, 25, 26, 32, 33, 36], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/portfolios/soft_risk.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 0}, "missing_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 34, 35, 39, 40, 41, 42, 43, 45, 46, 48, 50, 52, 54, 55, 59, 60, 61, 62], "excluded_lines": [], "functions": {"SoftRisk.objective": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [41, 42, 43], "excluded_lines": []}, "SoftRisk.__post_init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [46, 48, 50, 52, 54, 55, 59, 60, 61, 62], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 34, 35, 39, 40, 45], "excluded_lines": []}}, "classes": {"SoftRisk": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [41, 42, 43, 46, 48, 50, 52, 54, 55, 59, 60, 61, 62], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 34, 35, 39, 40, 45], "excluded_lines": []}}}, "cvx/markowitz/portfolios/utils.py": {"executed_lines": [14, 16, 19, 22, 23], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"approx": {"executed_lines": [22, 23], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 19], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 19, 22, 23], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/__init__.py": {"executed_lines": [14, 16, 17, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 16, 17, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 17, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/cvar/__init__.py": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/cvar/cvar.py": {"executed_lines": [14, 16, 18, 19, 21, 22, 23, 24, 27, 28, 29, 31, 32, 34, 36, 42, 49, 50, 52, 53], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"CVar.__post_init__": {"executed_lines": [36], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CVar.estimate": {"executed_lines": [49, 50], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CVar.update": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 19, 21, 22, 23, 24, 27, 28, 29, 31, 32, 34, 42, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CVar": {"executed_lines": [36, 49, 50, 53], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 19, 21, 22, 23, 24, 27, 28, 29, 31, 32, 34, 42, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/factor/__init__.py": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/factor/factor.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 36, 37, 43, 49, 55, 62, 69, 73, 74, 76, 78, 79, 91, 92, 101, 103, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 122, 123, 124, 127, 130, 134, 135], "summary": {"covered_lines": 47, "num_statements": 47, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FactorModel.__post_init__": {"executed_lines": [37, 43, 49, 55, 62], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel.estimate": {"executed_lines": [73, 74, 76], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel._residual_risk": {"executed_lines": [79], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel._systematic_risk": {"executed_lines": [92], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel.update": {"executed_lines": [103, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 122, 123, 124, 127, 130], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel.constraints": {"executed_lines": [135], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 36, 69, 78, 91, 101, 134], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FactorModel": {"executed_lines": [37, 43, 49, 55, 62, 73, 74, 76, 79, 92, 103, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 122, 123, 124, 127, 130, 135], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 36, 69, 78, 91, 101, 134], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/sample/__init__.py": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/sample/sample.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 35, 41, 49, 53, 62, 63, 64, 66, 67, 69, 70], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"SampleCovariance.__post_init__": {"executed_lines": [35, 41], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SampleCovariance.estimate": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SampleCovariance.update": {"executed_lines": [63, 64, 66, 67], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SampleCovariance.constraints": {"executed_lines": [70], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 49, 62, 69], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SampleCovariance": {"executed_lines": [35, 41, 53, 63, 64, 66, 67, 70], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 49, 62, 69], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/types.py": {"executed_lines": [14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/utils/__init__.py": {"executed_lines": [0], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/utils/fill.py": {"executed_lines": [14, 16, 19, 23, 24, 25, 28, 33, 34, 35, 36], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"fill_vector": {"executed_lines": [23, 24, 25], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "fill_matrix": {"executed_lines": [33, 34, 35, 36], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 19, 28], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 19, 23, 24, 25, 28, 33, 34, 35, 36], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}}, "totals": {"covered_lines": 448, "num_statements": 476, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 28, "excluded_lines": 0}}
\ No newline at end of file
+{"meta": {"format": 3, "version": "7.6.9", "timestamp": "2025-01-01T08:06:20.664362", "branch_coverage": false, "show_contexts": false}, "files": {"cvx/linalg/__init__.py": {"executed_lines": [14, 15, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 15, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 15, 17, 18, 19], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/cholesky.py": {"executed_lines": [14, 16, 18, 20, 23, 27], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"cholesky": {"executed_lines": [27], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 23], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 18, 20, 23, 27], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/pca.py": {"executed_lines": [14, 16, 18, 20, 22, 25, 26, 27, 28, 30, 31, 32, 36, 37, 40, 43, 44, 45, 47, 49, 51, 52, 53, 55, 56, 57, 59, 60, 61, 63, 64, 65, 67, 68, 69], "summary": {"covered_lines": 34, "num_statements": 34, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"PCA.__post_init__": {"executed_lines": [31, 32, 36, 37, 40, 43, 44, 45, 47, 49], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.explained_variance": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.cov": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.systematic_returns": {"executed_lines": [61], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.idiosyncratic_returns": {"executed_lines": [65], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "PCA.idiosyncratic_vola": {"executed_lines": [69], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 22, 25, 26, 27, 28, 30, 51, 52, 55, 56, 59, 60, 63, 64, 67, 68], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"PCA": {"executed_lines": [31, 32, 36, 37, 40, 43, 44, 45, 47, 49, 53, 57, 61, 65, 69], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 22, 25, 26, 27, 28, 30, 51, 52, 55, 56, 59, 60, 63, 64, 67, 68], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/random.py": {"executed_lines": [14, 16, 19, 20, 21], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"rand_cov": {"executed_lines": [20, 21], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 19], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 19, 20, 21], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/types.py": {"executed_lines": [14, 15, 16, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 15, 16, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 15, 16, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/linalg/valid.py": {"executed_lines": [14, 16, 18, 20, 23, 32, 33, 35, 36], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"valid": {"executed_lines": [32, 33, 35, 36], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 23], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 18, 20, 23, 32, 33, 35, 36], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/__init__.py": {"executed_lines": [0], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/builder.py": {"executed_lines": [14, 16, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38, 39, 42, 43, 44, 45, 47, 51, 52, 53, 54, 60, 62, 64, 68, 70, 71, 73, 75, 76, 77, 79, 80, 82, 83, 84, 85, 86, 88, 89, 90, 92, 93, 94, 96, 97, 98, 100, 101, 102, 104, 105, 106, 109, 110, 111, 112, 113, 114, 115, 116, 118, 120, 121, 124, 126, 128, 131, 133, 137, 140, 142, 143, 144, 149, 153, 154, 155, 157, 158, 160, 162, 163, 164, 166, 167, 168, 170, 171, 172], "summary": {"covered_lines": 97, "num_statements": 97, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"deserialize": {"executed_lines": [38, 39], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.update": {"executed_lines": [51, 52, 53, 54, 60, 62], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.solve": {"executed_lines": [68, 70, 71, 73], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.value": {"executed_lines": [77], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.is_dpp": {"executed_lines": [80], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.data": {"executed_lines": [84, 85, 86], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.parameter": {"executed_lines": [90], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.variables": {"executed_lines": [94], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.weights": {"executed_lines": [98], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.factor_weights": {"executed_lines": [102], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "_Problem.serialize": {"executed_lines": [105, 106], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.__post_init__": {"executed_lines": [120, 121, 124, 126, 128, 131, 133, 137, 140], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.objective": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.build": {"executed_lines": [153, 154, 155, 157, 158, 160], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.weights": {"executed_lines": [164], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.risk": {"executed_lines": [168], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder.factor_weights": {"executed_lines": [172], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 42, 43, 44, 45, 47, 64, 75, 76, 79, 82, 83, 88, 89, 92, 93, 96, 97, 100, 101, 104, 109, 110, 111, 112, 113, 114, 115, 116, 118, 142, 143, 144, 149, 162, 163, 166, 167, 170, 171], "summary": {"covered_lines": 56, "num_statements": 56, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"_Problem": {"executed_lines": [51, 52, 53, 54, 60, 62, 68, 70, 71, 73, 77, 80, 84, 85, 86, 90, 94, 98, 102, 105, 106], "summary": {"covered_lines": 21, "num_statements": 21, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Builder": {"executed_lines": [120, 121, 124, 126, 128, 131, 133, 137, 140, 153, 154, 155, 157, 158, 160, 164, 168, 172], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 17, 18, 19, 20, 22, 23, 25, 26, 27, 28, 29, 30, 31, 32, 35, 38, 39, 42, 43, 44, 45, 47, 64, 75, 76, 79, 82, 83, 88, 89, 92, 93, 96, 97, 100, 101, 104, 109, 110, 111, 112, 113, 114, 115, 116, 118, 142, 143, 144, 149, 162, 163, 166, 167, 170, 171], "summary": {"covered_lines": 58, "num_statements": 58, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/cvxerror.py": {"executed_lines": [14, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CvxError": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 15], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/model.py": {"executed_lines": [14, 16, 18, 19, 21, 23, 26, 27, 28, 30, 31, 32, 34, 35, 40, 41, 46, 50], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Model.estimate": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Model.update": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Model.constraints": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 19, 21, 23, 26, 27, 28, 30, 31, 32, 34, 35, 40, 41, 46], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Model": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 19, 21, 23, 26, 27, 28, 30, 31, 32, 34, 35, 40, 41, 46], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/__init__.py": {"executed_lines": [0], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/bounds.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 33, 35, 37, 38, 40, 41, 46, 52, 53, 54, 56, 57], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"Bounds.estimate": {"executed_lines": [35], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bounds._f": {"executed_lines": [38], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bounds.__post_init__": {"executed_lines": [41, 46], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bounds.update": {"executed_lines": [53, 54], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "Bounds.constraints": {"executed_lines": [57], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 33, 37, 40, 52, 56], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"Bounds": {"executed_lines": [35, 38, 41, 46, 53, 54, 57], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 28, 29, 30, 31, 33, 37, 40, 52, 56], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/expected_returns.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 35, 42, 49, 50, 52, 53, 54, 57, 58, 59, 61], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"ExpectedReturns.__post_init__": {"executed_lines": [35, 42], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ExpectedReturns.estimate": {"executed_lines": [50], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ExpectedReturns.update": {"executed_lines": [53, 54, 57, 58, 59, 61], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 49, 52], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"ExpectedReturns": {"executed_lines": [35, 42, 50, 53, 54, 57, 58, 59, 61], "summary": {"covered_lines": 9, "num_statements": 9, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 49, 52], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/holding_costs.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 34, 36, 37, 39, 40], "summary": {"covered_lines": 16, "num_statements": 16, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"HoldingCosts.__post_init__": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "HoldingCosts.estimate": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "HoldingCosts.update": {"executed_lines": [40], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 36, 39], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"HoldingCosts": {"executed_lines": [34, 37, 40], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 36, 39], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/models/trading_costs.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 34, 37, 39, 40, 47, 48], "summary": {"covered_lines": 17, "num_statements": 17, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"TradingCosts.__post_init__": {"executed_lines": [34, 37], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TradingCosts.estimate": {"executed_lines": [40], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "TradingCosts.update": {"executed_lines": [48], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 39, 47], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"TradingCosts": {"executed_lines": [34, 37, 40, 48], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 29, 30, 31, 33, 39, 47], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/names.py": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"DataNames": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ModelName": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ConstraintName": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "ParameterName": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 37, 38, 39, 40, 41, 44, 45, 46, 47, 48, 49, 52, 53, 54, 55], "summary": {"covered_lines": 33, "num_statements": 33, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/portfolios/__init__.py": {"executed_lines": [0], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/portfolios/max_sharpe.py": {"executed_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 29, 35, 36, 37, 39, 40, 42, 44, 46, 47, 48], "summary": {"covered_lines": 20, "num_statements": 20, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"MaxSharpe.objective": {"executed_lines": [37], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MaxSharpe.__post_init__": {"executed_lines": [40, 42, 44, 46, 47, 48], "summary": {"covered_lines": 6, "num_statements": 6, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 29, 35, 36, 39], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MaxSharpe": {"executed_lines": [37, 40, 42, 44, 46, 47, 48], "summary": {"covered_lines": 7, "num_statements": 7, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 29, 35, 36, 39], "summary": {"covered_lines": 13, "num_statements": 13, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/portfolios/min_var.py": {"executed_lines": [14, 16, 18, 20, 21, 24, 25, 26, 32, 33, 34, 36, 37, 38, 39], "summary": {"covered_lines": 14, "num_statements": 14, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"MinVar.objective": {"executed_lines": [34], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "MinVar.__post_init__": {"executed_lines": [37, 38, 39], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 24, 25, 26, 32, 33, 36], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"MinVar": {"executed_lines": [34, 37, 38, 39], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 24, 25, 26, 32, 33, 36], "summary": {"covered_lines": 10, "num_statements": 10, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/portfolios/soft_risk.py": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 28, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 28, "excluded_lines": 0}, "missing_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 34, 35, 39, 40, 41, 42, 43, 45, 46, 48, 50, 52, 54, 55, 59, 60, 61, 62], "excluded_lines": [], "functions": {"SoftRisk.objective": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 3, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 3, "excluded_lines": 0}, "missing_lines": [41, 42, 43], "excluded_lines": []}, "SoftRisk.__post_init__": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 10, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 10, "excluded_lines": 0}, "missing_lines": [46, 48, 50, 52, 54, 55, 59, 60, 61, 62], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 34, 35, 39, 40, 45], "excluded_lines": []}}, "classes": {"SoftRisk": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 13, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 13, "excluded_lines": 0}, "missing_lines": [41, 42, 43, 46, 48, 50, 52, 54, 55, 59, 60, 61, 62], "excluded_lines": []}, "": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 15, "percent_covered": 0.0, "percent_covered_display": "0", "missing_lines": 15, "excluded_lines": 0}, "missing_lines": [14, 16, 18, 20, 21, 22, 23, 24, 27, 28, 34, 35, 39, 40, 45], "excluded_lines": []}}}, "cvx/markowitz/portfolios/utils.py": {"executed_lines": [14, 16, 19, 22, 23], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"approx": {"executed_lines": [22, 23], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 19], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 19, 22, 23], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/__init__.py": {"executed_lines": [14, 16, 17, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 16, 17, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 17, 18], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/cvar/__init__.py": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/cvar/cvar.py": {"executed_lines": [14, 16, 18, 19, 21, 22, 23, 24, 27, 28, 29, 31, 32, 34, 36, 42, 49, 50, 52, 53], "summary": {"covered_lines": 19, "num_statements": 19, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"CVar.__post_init__": {"executed_lines": [36], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CVar.estimate": {"executed_lines": [49, 50], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "CVar.update": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 19, 21, 22, 23, 24, 27, 28, 29, 31, 32, 34, 42, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"CVar": {"executed_lines": [36, 49, 50, 53], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 19, 21, 22, 23, 24, 27, 28, 29, 31, 32, 34, 42, 52], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/factor/__init__.py": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/factor/factor.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 36, 37, 43, 49, 55, 62, 69, 73, 74, 76, 78, 79, 91, 92, 101, 103, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 122, 123, 124, 127, 130, 134, 135], "summary": {"covered_lines": 47, "num_statements": 47, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"FactorModel.__post_init__": {"executed_lines": [37, 43, 49, 55, 62], "summary": {"covered_lines": 5, "num_statements": 5, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel.estimate": {"executed_lines": [73, 74, 76], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel._residual_risk": {"executed_lines": [79], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel._systematic_risk": {"executed_lines": [92], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel.update": {"executed_lines": [103, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 122, 123, 124, 127, 130], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "FactorModel.constraints": {"executed_lines": [135], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 36, 69, 78, 91, 101, 134], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"FactorModel": {"executed_lines": [37, 43, 49, 55, 62, 73, 74, 76, 79, 92, 103, 104, 105, 107, 108, 110, 111, 113, 114, 116, 117, 119, 120, 122, 123, 124, 127, 130, 135], "summary": {"covered_lines": 29, "num_statements": 29, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 36, 69, 78, 91, 101, 134], "summary": {"covered_lines": 18, "num_statements": 18, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/sample/__init__.py": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/risk/sample/sample.py": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 35, 41, 49, 53, 62, 63, 64, 66, 67, 69, 70], "summary": {"covered_lines": 23, "num_statements": 23, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"SampleCovariance.__post_init__": {"executed_lines": [35, 41], "summary": {"covered_lines": 2, "num_statements": 2, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SampleCovariance.estimate": {"executed_lines": [53], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SampleCovariance.update": {"executed_lines": [63, 64, 66, 67], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "SampleCovariance.constraints": {"executed_lines": [70], "summary": {"covered_lines": 1, "num_statements": 1, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 49, 62, 69], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"SampleCovariance": {"executed_lines": [35, 41, 53, 63, 64, 66, 67, 70], "summary": {"covered_lines": 8, "num_statements": 8, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 18, 20, 21, 23, 24, 25, 26, 27, 30, 31, 32, 34, 49, 62, 69], "summary": {"covered_lines": 15, "num_statements": 15, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/types.py": {"executed_lines": [14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 15, 17, 18, 19, 20, 22, 23, 24, 25, 26, 28], "summary": {"covered_lines": 12, "num_statements": 12, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/utils/__init__.py": {"executed_lines": [0], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [], "summary": {"covered_lines": 0, "num_statements": 0, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}, "cvx/markowitz/utils/fill.py": {"executed_lines": [14, 16, 19, 23, 24, 25, 28, 33, 34, 35, 36], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": [], "functions": {"fill_vector": {"executed_lines": [23, 24, 25], "summary": {"covered_lines": 3, "num_statements": 3, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "fill_matrix": {"executed_lines": [33, 34, 35, 36], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}, "": {"executed_lines": [14, 16, 19, 28], "summary": {"covered_lines": 4, "num_statements": 4, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}, "classes": {"": {"executed_lines": [14, 16, 19, 23, 24, 25, 28, 33, 34, 35, 36], "summary": {"covered_lines": 11, "num_statements": 11, "percent_covered": 100.0, "percent_covered_display": "100", "missing_lines": 0, "excluded_lines": 0}, "missing_lines": [], "excluded_lines": []}}}}, "totals": {"covered_lines": 448, "num_statements": 476, "percent_covered": 94.11764705882354, "percent_covered_display": "94", "missing_lines": 28, "excluded_lines": 0}}
\ No newline at end of file
diff --git a/tests/coverage/coverage.xml b/tests/coverage/coverage.xml
index fb34df2e..54da1caf 100644
--- a/tests/coverage/coverage.xml
+++ b/tests/coverage/coverage.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/tests/html-coverage/class_index.html b/tests/html-coverage/class_index.html
index e923fc1e..28f5e040 100644
--- a/tests/html-coverage/class_index.html
+++ b/tests/html-coverage/class_index.html
@@ -55,7 +55,7 @@
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -492,7 +492,7 @@
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -105,7 +105,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_0e0294e60ab98629_factor_py.html b/tests/html-coverage/z_0e0294e60ab98629_factor_py.html
index c90c5ef9..7ebe17c8 100644
--- a/tests/html-coverage/z_0e0294e60ab98629_factor_py.html
+++ b/tests/html-coverage/z_0e0294e60ab98629_factor_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -227,7 +227,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_570ba6a7cf685cc0___init___py.html b/tests/html-coverage/z_570ba6a7cf685cc0___init___py.html
index 43a24ba6..3fe4d5d0 100644
--- a/tests/html-coverage/z_570ba6a7cf685cc0___init___py.html
+++ b/tests/html-coverage/z_570ba6a7cf685cc0___init___py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -102,7 +102,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_570ba6a7cf685cc0_builder_py.html b/tests/html-coverage/z_570ba6a7cf685cc0_builder_py.html
index 7e119d22..72073a05 100644
--- a/tests/html-coverage/z_570ba6a7cf685cc0_builder_py.html
+++ b/tests/html-coverage/z_570ba6a7cf685cc0_builder_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -261,7 +261,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_570ba6a7cf685cc0_cvxerror_py.html b/tests/html-coverage/z_570ba6a7cf685cc0_cvxerror_py.html
index ce89581e..59975275 100644
--- a/tests/html-coverage/z_570ba6a7cf685cc0_cvxerror_py.html
+++ b/tests/html-coverage/z_570ba6a7cf685cc0_cvxerror_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -104,7 +104,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_570ba6a7cf685cc0_model_py.html b/tests/html-coverage/z_570ba6a7cf685cc0_model_py.html
index 4a5cfb73..492d2367 100644
--- a/tests/html-coverage/z_570ba6a7cf685cc0_model_py.html
+++ b/tests/html-coverage/z_570ba6a7cf685cc0_model_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -139,7 +139,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_570ba6a7cf685cc0_names_py.html b/tests/html-coverage/z_570ba6a7cf685cc0_names_py.html
index 4178d95a..e9d1e91d 100644
--- a/tests/html-coverage/z_570ba6a7cf685cc0_names_py.html
+++ b/tests/html-coverage/z_570ba6a7cf685cc0_names_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -144,7 +144,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_570ba6a7cf685cc0_types_py.html b/tests/html-coverage/z_570ba6a7cf685cc0_types_py.html
index 62f3364c..a65a9c74 100644
--- a/tests/html-coverage/z_570ba6a7cf685cc0_types_py.html
+++ b/tests/html-coverage/z_570ba6a7cf685cc0_types_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -117,7 +117,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_6b6b8e0d310593fd___init___py.html b/tests/html-coverage/z_6b6b8e0d310593fd___init___py.html
index d40d8ddb..0675b9ad 100644
--- a/tests/html-coverage/z_6b6b8e0d310593fd___init___py.html
+++ b/tests/html-coverage/z_6b6b8e0d310593fd___init___py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -108,7 +108,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_6b6b8e0d310593fd_cholesky_py.html b/tests/html-coverage/z_6b6b8e0d310593fd_cholesky_py.html
index 766ba647..2da75f56 100644
--- a/tests/html-coverage/z_6b6b8e0d310593fd_cholesky_py.html
+++ b/tests/html-coverage/z_6b6b8e0d310593fd_cholesky_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -116,7 +116,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_6b6b8e0d310593fd_pca_py.html b/tests/html-coverage/z_6b6b8e0d310593fd_pca_py.html
index 1fb8ec5f..c80e2cea 100644
--- a/tests/html-coverage/z_6b6b8e0d310593fd_pca_py.html
+++ b/tests/html-coverage/z_6b6b8e0d310593fd_pca_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -158,7 +158,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_6b6b8e0d310593fd_random_py.html b/tests/html-coverage/z_6b6b8e0d310593fd_random_py.html
index d4b4f3be..f7e6ba1a 100644
--- a/tests/html-coverage/z_6b6b8e0d310593fd_random_py.html
+++ b/tests/html-coverage/z_6b6b8e0d310593fd_random_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -110,7 +110,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_6b6b8e0d310593fd_types_py.html b/tests/html-coverage/z_6b6b8e0d310593fd_types_py.html
index e181a62e..30b046fc 100644
--- a/tests/html-coverage/z_6b6b8e0d310593fd_types_py.html
+++ b/tests/html-coverage/z_6b6b8e0d310593fd_types_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -107,7 +107,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_6b6b8e0d310593fd_valid_py.html b/tests/html-coverage/z_6b6b8e0d310593fd_valid_py.html
index ea6c0c1b..d9ed7f2f 100644
--- a/tests/html-coverage/z_6b6b8e0d310593fd_valid_py.html
+++ b/tests/html-coverage/z_6b6b8e0d310593fd_valid_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -125,7 +125,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_83668c6bc6c0e5d0___init___py.html b/tests/html-coverage/z_83668c6bc6c0e5d0___init___py.html
index a6e1ea3e..430307da 100644
--- a/tests/html-coverage/z_83668c6bc6c0e5d0___init___py.html
+++ b/tests/html-coverage/z_83668c6bc6c0e5d0___init___py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -105,7 +105,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_83668c6bc6c0e5d0_sample_py.html b/tests/html-coverage/z_83668c6bc6c0e5d0_sample_py.html
index b27e260a..3764cb57 100644
--- a/tests/html-coverage/z_83668c6bc6c0e5d0_sample_py.html
+++ b/tests/html-coverage/z_83668c6bc6c0e5d0_sample_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -161,7 +161,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_8e3afc6584d47891___init___py.html b/tests/html-coverage/z_8e3afc6584d47891___init___py.html
index f4973ca0..5be9e90b 100644
--- a/tests/html-coverage/z_8e3afc6584d47891___init___py.html
+++ b/tests/html-coverage/z_8e3afc6584d47891___init___py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -102,7 +102,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_8e3afc6584d47891_bounds_py.html b/tests/html-coverage/z_8e3afc6584d47891_bounds_py.html
index aac09af7..f6c82323 100644
--- a/tests/html-coverage/z_8e3afc6584d47891_bounds_py.html
+++ b/tests/html-coverage/z_8e3afc6584d47891_bounds_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -149,7 +149,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_8e3afc6584d47891_expected_returns_py.html b/tests/html-coverage/z_8e3afc6584d47891_expected_returns_py.html
index 139d32a5..b30c305a 100644
--- a/tests/html-coverage/z_8e3afc6584d47891_expected_returns_py.html
+++ b/tests/html-coverage/z_8e3afc6584d47891_expected_returns_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -150,7 +150,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_8e3afc6584d47891_holding_costs_py.html b/tests/html-coverage/z_8e3afc6584d47891_holding_costs_py.html
index 117ba199..5654c8a1 100644
--- a/tests/html-coverage/z_8e3afc6584d47891_holding_costs_py.html
+++ b/tests/html-coverage/z_8e3afc6584d47891_holding_costs_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -129,7 +129,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_8e3afc6584d47891_trading_costs_py.html b/tests/html-coverage/z_8e3afc6584d47891_trading_costs_py.html
index 988ffb4f..2aad5820 100644
--- a/tests/html-coverage/z_8e3afc6584d47891_trading_costs_py.html
+++ b/tests/html-coverage/z_8e3afc6584d47891_trading_costs_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -137,7 +137,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_973c2da8f5bd8588___init___py.html b/tests/html-coverage/z_973c2da8f5bd8588___init___py.html
index 10cb67b3..cb0bafa1 100644
--- a/tests/html-coverage/z_973c2da8f5bd8588___init___py.html
+++ b/tests/html-coverage/z_973c2da8f5bd8588___init___py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -102,7 +102,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_973c2da8f5bd8588_fill_py.html b/tests/html-coverage/z_973c2da8f5bd8588_fill_py.html
index b84a2791..18487c5e 100644
--- a/tests/html-coverage/z_973c2da8f5bd8588_fill_py.html
+++ b/tests/html-coverage/z_973c2da8f5bd8588_fill_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -125,7 +125,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_b81229d6eb8b4201___init___py.html b/tests/html-coverage/z_b81229d6eb8b4201___init___py.html
index 7ae3dc99..1dba7966 100644
--- a/tests/html-coverage/z_b81229d6eb8b4201___init___py.html
+++ b/tests/html-coverage/z_b81229d6eb8b4201___init___py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -107,7 +107,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_c3a6f484c9559d23___init___py.html b/tests/html-coverage/z_c3a6f484c9559d23___init___py.html
index 5ec49f68..0d02eead 100644
--- a/tests/html-coverage/z_c3a6f484c9559d23___init___py.html
+++ b/tests/html-coverage/z_c3a6f484c9559d23___init___py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -102,7 +102,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_c3a6f484c9559d23_max_sharpe_py.html b/tests/html-coverage/z_c3a6f484c9559d23_max_sharpe_py.html
index 7185f156..ed6cf95c 100644
--- a/tests/html-coverage/z_c3a6f484c9559d23_max_sharpe_py.html
+++ b/tests/html-coverage/z_c3a6f484c9559d23_max_sharpe_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -137,7 +137,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_c3a6f484c9559d23_min_var_py.html b/tests/html-coverage/z_c3a6f484c9559d23_min_var_py.html
index 1e6f1327..e8420fe4 100644
--- a/tests/html-coverage/z_c3a6f484c9559d23_min_var_py.html
+++ b/tests/html-coverage/z_c3a6f484c9559d23_min_var_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -128,7 +128,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_c3a6f484c9559d23_soft_risk_py.html b/tests/html-coverage/z_c3a6f484c9559d23_soft_risk_py.html
index 2b18a9f8..f83d0c06 100644
--- a/tests/html-coverage/z_c3a6f484c9559d23_soft_risk_py.html
+++ b/tests/html-coverage/z_c3a6f484c9559d23_soft_risk_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -151,7 +151,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_c3a6f484c9559d23_utils_py.html b/tests/html-coverage/z_c3a6f484c9559d23_utils_py.html
index 60ae422d..fa0c635f 100644
--- a/tests/html-coverage/z_c3a6f484c9559d23_utils_py.html
+++ b/tests/html-coverage/z_c3a6f484c9559d23_utils_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -112,7 +112,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_c88b7eba4a819884___init___py.html b/tests/html-coverage/z_c88b7eba4a819884___init___py.html
index 4547a52f..9190dedc 100644
--- a/tests/html-coverage/z_c88b7eba4a819884___init___py.html
+++ b/tests/html-coverage/z_c88b7eba4a819884___init___py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -105,7 +105,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-coverage/z_c88b7eba4a819884_cvar_py.html b/tests/html-coverage/z_c88b7eba4a819884_cvar_py.html
index db99edd7..77f83e16 100644
--- a/tests/html-coverage/z_c88b7eba4a819884_cvar_py.html
+++ b/tests/html-coverage/z_c88b7eba4a819884_cvar_py.html
@@ -65,7 +65,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
@@ -142,7 +142,7 @@
» next
coverage.py v7.6.9,
- created at 2025-01-01 08:04 +0000
+ created at 2025-01-01 08:06 +0000
diff --git a/tests/html-report/report.html b/tests/html-report/report.html
index 96b75ec1..6757c551 100644
--- a/tests/html-report/report.html
+++ b/tests/html-report/report.html
@@ -7,7 +7,7 @@
report.html
-
Report generated on 01-Jan-2025 at 08:04:04 by pytest-html
+
Report generated on 01-Jan-2025 at 08:06:20 by pytest-html
v4.1.1