30 lines
747 B
Python
30 lines
747 B
Python
import numpy as np
|
|
|
|
from algograph_algebraic_portfolio_compiler_f import (
|
|
PortfolioBlock,
|
|
solve_min_variance,
|
|
SignalMorphism,
|
|
PlanDelta,
|
|
DualVariables,
|
|
)
|
|
|
|
|
|
def test_min_variance_solver_basic():
|
|
cov = [
|
|
[0.04, 0.01],
|
|
[0.01, 0.09],
|
|
]
|
|
block = PortfolioBlock(id="b1", assets=["A", "B"], cov=cov)
|
|
x = solve_min_variance(block)
|
|
assert isinstance(x, np.ndarray)
|
|
assert x.shape == (2,)
|
|
assert (x >= 0).all()
|
|
assert abs(float(x.sum()) - 1.0) < 1e-6
|
|
|
|
|
|
def test_plan_delta_and_dualvariables_types():
|
|
pd = PlanDelta(version=1, delta={"alloc": [0.5, 0.5]}, author="tester")
|
|
dv = DualVariables([0.1, 0.2])
|
|
assert isinstance(pd, PlanDelta)
|
|
assert isinstance(dv, DualVariables)
|