Coverage report:
100%
hide covered
Files
Functions
Classes
coverage.py v7.15.0
, created at 2026-07-11 10:51 +0000
File
function
statements
missing
excluded
coverage
src
/
cvxmarkowitz
/
__init__.py
(no function)
0
0
0
100%
src
/
cvxmarkowitz
/
builder.py
Builder.__post_init__
9
0
0
100%
src
/
cvxmarkowitz
/
builder.py
Builder.objective
0
0
0
100%
src
/
cvxmarkowitz
/
builder.py
Builder.build
6
0
0
100%
src
/
cvxmarkowitz
/
builder.py
Builder.weights
1
0
0
100%
src
/
cvxmarkowitz
/
builder.py
Builder.risk
1
0
0
100%
src
/
cvxmarkowitz
/
builder.py
Builder.factor_weights
1
0
0
100%
src
/
cvxmarkowitz
/
builder.py
(no function)
33
0
0
100%
src
/
cvxmarkowitz
/
cvxerror.py
(no function)
1
0
0
100%
src
/
cvxmarkowitz
/
model.py
Model.estimate
0
0
0
100%
src
/
cvxmarkowitz
/
model.py
Model.update
0
0
0
100%
src
/
cvxmarkowitz
/
model.py
Model.constraints
1
0
0
100%
src
/
cvxmarkowitz
/
model.py
(no function)
15
0
0
100%
src
/
cvxmarkowitz
/
models
/
__init__.py
(no function)
0
0
0
100%
src
/
cvxmarkowitz
/
models
/
bounds.py
Bounds.estimate
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
bounds.py
Bounds._f
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
bounds.py
Bounds.__post_init__
2
0
0
100%
src
/
cvxmarkowitz
/
models
/
bounds.py
Bounds.update
2
0
0
100%
src
/
cvxmarkowitz
/
models
/
bounds.py
Bounds.constraints
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
bounds.py
(no function)
16
0
0
100%
src
/
cvxmarkowitz
/
models
/
expected_returns.py
ExpectedReturns.__post_init__
2
0
0
100%
src
/
cvxmarkowitz
/
models
/
expected_returns.py
ExpectedReturns.estimate
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
expected_returns.py
ExpectedReturns.update
6
0
0
100%
src
/
cvxmarkowitz
/
models
/
expected_returns.py
(no function)
14
0
0
100%
src
/
cvxmarkowitz
/
models
/
holding_costs.py
HoldingCosts.__post_init__
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
holding_costs.py
HoldingCosts.estimate
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
holding_costs.py
HoldingCosts.update
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
holding_costs.py
(no function)
13
0
0
100%
src
/
cvxmarkowitz
/
models
/
trading_costs.py
TradingCosts.__post_init__
2
0
0
100%
src
/
cvxmarkowitz
/
models
/
trading_costs.py
TradingCosts.estimate
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
trading_costs.py
TradingCosts.update
1
0
0
100%
src
/
cvxmarkowitz
/
models
/
trading_costs.py
(no function)
13
0
0
100%
src
/
cvxmarkowitz
/
names.py
(no function)
33
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
__init__.py
(no function)
0
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
max_sharpe.py
MaxSharpe.objective
1
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
max_sharpe.py
MaxSharpe.__post_init__
6
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
max_sharpe.py
(no function)
15
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
min_var.py
MinVar.objective
1
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
min_var.py
MinVar.__post_init__
3
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
min_var.py
(no function)
12
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
soft_risk.py
SoftRisk.objective
3
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
soft_risk.py
SoftRisk.__post_init__
10
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
soft_risk.py
(no function)
17
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
utils.py
approx
2
0
0
100%
src
/
cvxmarkowitz
/
portfolios
/
utils.py
(no function)
4
0
0
100%
src
/
cvxmarkowitz
/
problem.py
deserialize
4
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.update
6
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.solve
4
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.value
1
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.is_dpp
1
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.data
3
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.parameter
1
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.variables
1
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.weights
1
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.factor_weights
1
0
0
100%
src
/
cvxmarkowitz
/
problem.py
_Problem.serialize
2
0
0
100%
src
/
cvxmarkowitz
/
problem.py
(no function)
33
0
0
100%
src
/
cvxmarkowitz
/
risk
/
__init__.py
(no function)
5
0
0
100%
src
/
cvxmarkowitz
/
risk
/
cvar
/
__init__.py
(no function)
3
0
0
100%
src
/
cvxmarkowitz
/
risk
/
cvar
/
cvar.py
CVar.__post_init__
1
0
0
100%
src
/
cvxmarkowitz
/
risk
/
cvar
/
cvar.py
CVar.estimate
2
0
0
100%
src
/
cvxmarkowitz
/
risk
/
cvar
/
cvar.py
CVar.update
1
0
0
100%
src
/
cvxmarkowitz
/
risk
/
cvar
/
cvar.py
(no function)
15
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
__init__.py
(no function)
3
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
FactorModel.__post_init__
5
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
FactorModel.estimate
3
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
FactorModel._residual_risk
1
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
FactorModel._systematic_risk
1
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
FactorModel.update
6
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
FactorModel._validate
4
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
FactorModel._check_shapes
9
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
FactorModel.constraints
1
0
0
100%
src
/
cvxmarkowitz
/
risk
/
factor
/
factor.py
(no function)
20
0
0
100%
src
/
cvxmarkowitz
/
risk
/
sample
/
__init__.py
(no function)
3
0
0
100%
src
/
cvxmarkowitz
/
risk
/
sample
/
sample.py
SampleCovariance.__post_init__
2
0
0
100%
src
/
cvxmarkowitz
/
risk
/
sample
/
sample.py
SampleCovariance.estimate
1
0
0
100%
src
/
cvxmarkowitz
/
risk
/
sample
/
sample.py
SampleCovariance.update
4
0
0
100%
src
/
cvxmarkowitz
/
risk
/
sample
/
sample.py
SampleCovariance.constraints
1
0
0
100%
src
/
cvxmarkowitz
/
risk
/
sample
/
sample.py
(no function)
15
0
0
100%
src
/
cvxmarkowitz
/
types.py
(no function)
11
0
0
100%
src
/
cvxmarkowitz
/
utils
/
__init__.py
(no function)
0
0
0
100%
src
/
cvxmarkowitz
/
utils
/
fill.py
fill_vector
3
0
0
100%
src
/
cvxmarkowitz
/
utils
/
fill.py
fill_matrix
4
0
0
100%
src
/
cvxmarkowitz
/
utils
/
fill.py
(no function)
4
0
0
100%
Total
440
0
0
100%
No items found using the specified filter.