algograph-algebraic-portfol.../tests/test_algograph_basic.py

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)