Commit d1774a67 authored by Dr.李's avatar Dr.李

added tests from cvoptimizer

parent 6af6574d
......@@ -9,6 +9,7 @@ import unittest
import numpy as np
from alphamind.cython.optimizers import LPOptimizer
from alphamind.cython.optimizers import QPOptimizer
from alphamind.cython.optimizers import CVOptimizer
class TestOptimizers(unittest.TestCase):
......@@ -69,6 +70,90 @@ class TestOptimizers(unittest.TestCase):
[-0.02, 0.01, 0.03],
8)
def test_cvoptimizer_without_cons(self):
objective = np.array([0.1, 0.2, 0.3])
cov = np.array([[0.05, 0.01, 0.02],
[0.01, 0.06, 0.03],
[0.02, 0.03, 0.07]])
lbound = np.array([-0.3, -0.3, -0.3])
ubound = np.array([0.5, 0.5, 0.5])
cons = np.array([[1., 1., 1.]])
clbound = np.array([0.])
cubound = np.array([0.])
target_vol = 0.1
optimizer = CVOptimizer(objective,
cov,
lbound,
ubound,
None,
None,
None,
target_vol,
target_vol)
# check against known good result
np.testing.assert_array_almost_equal(optimizer.x_value(),
[.0231776, 0.1274768, 0.30130881],
4)
def test_cvoptimizer_with_cons(self):
objective = np.array([0.1, 0.2, 0.3])
cov = np.array([[0.05, 0.01, 0.02],
[0.01, 0.06, 0.03],
[0.02, 0.03, 0.07]])
lbound = np.array([-0.3, -0.3, -0.3])
ubound = np.array([0.5, 0.5, 0.5])
cons = np.array([[1., 1., 1.]])
clbound = np.array([0.])
cubound = np.array([0.])
target_vol = 0.1
optimizer = CVOptimizer(objective,
cov,
lbound,
ubound,
cons,
clbound,
cubound,
target_vol,
target_vol)
# check against known good result
np.testing.assert_array_almost_equal(optimizer.x_value(),
[-0.3, -0.10919033, 0.40919033],
4)
def test_cvoptimizer_with_cons_and_ieq(self):
objective = np.array([0.1, 0.2, 0.3])
cov = np.array([[0.05, 0.01, 0.02],
[0.01, 0.06, 0.03],
[0.02, 0.03, 0.07]])
lbound = np.array([-0.3, -0.3, -0.3])
ubound = np.array([0.5, 0.5, 0.5])
cons = np.array([[1., 1., 1.]])
clbound = np.array([0.])
cubound = np.array([0.])
target_vol = 0.1
optimizer = CVOptimizer(objective,
cov,
lbound,
ubound,
cons,
clbound,
cubound,
0.,
target_vol)
# check against known good result
np.testing.assert_array_almost_equal(optimizer.x_value(),
[-0.3, -0.10919033, 0.40919033],
4)
if __name__ == '__main__':
unittest.main()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment