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)