def test_sign_mult(self): assert_equals(Curvature.sign_mul(Sign.POSITIVE, (1,1), Curvature.CONVEX, (1,1)), Curvature.CONVEX) assert_equals(Curvature.sign_mul(Sign.UNKNOWN, (1,1), Curvature.CONSTANT, (1,1)), Curvature.CONSTANT) assert_equals(Curvature.sign_mul(Sign.NEGATIVE, (1,1), Curvature.CONCAVE, (1,1)), Curvature.CONVEX) assert_equals(Curvature.sign_mul(Sign.ZERO, (1,1), Curvature.UNKNOWN, (1,1)), Curvature.AFFINE)
def test_sign_mult(self): assert_equals(Curvature.sign_mul(Sign.POSITIVE, Curvature.CONVEX), Curvature.CONVEX) assert_equals(Curvature.sign_mul(Sign.UNKNOWN, Curvature.CONSTANT), Curvature.CONSTANT) assert_equals(Curvature.sign_mul(Sign.NEGATIVE, Curvature.CONCAVE), Curvature.CONVEX) assert_equals(Curvature.sign_mul(Sign.ZERO, Curvature.UNKNOWN), Curvature.CONSTANT)
def setup_class(self): self.n = 5 self.arr = np.atleast_2d(self.n * [[np.bool_(True)]]) # Vectors self.cvx_vec = Curvature(self.arr, ~self.arr, np.bool_(True)) self.conc_vec = Curvature(~self.arr, self.arr, np.bool_(True)) self.noncvx_vec = Curvature(self.arr, self.arr, np.bool_(True)) self.aff_vec = Curvature(~self.arr, ~self.arr, np.bool_(True)) self.const_vec = Curvature(~self.arr, ~self.arr, np.bool_(False))
def test_get_readable_repr(self): """Tests the get_readable_repr method. """ assert_equals(Curvature.CONSTANT.get_readable_repr(1,1), Curvature.CONSTANT_KEY) assert_equals(Curvature.CONSTANT.get_readable_repr(5,4), Curvature.CONSTANT_KEY) assert_equals(Curvature.AFFINE.get_readable_repr(1,1), Curvature.AFFINE_KEY) assert_equals(Curvature.AFFINE.get_readable_repr(5,4), Curvature.AFFINE_KEY) assert_equals(Curvature.CONVEX.get_readable_repr(1,1), Curvature.CONVEX_KEY) assert_equals(Curvature.CONVEX.get_readable_repr(5,4), Curvature.CONVEX_KEY) assert_equals(Curvature.CONCAVE.get_readable_repr(1,1), Curvature.CONCAVE_KEY) assert_equals(Curvature.CONCAVE.get_readable_repr(5,4), Curvature.CONCAVE_KEY) assert_equals(Curvature.UNKNOWN.get_readable_repr(1,1), Curvature.UNKNOWN_KEY) assert_equals(Curvature.UNKNOWN.get_readable_repr(5,4), Curvature.UNKNOWN_KEY) # Mixed curvatures. mix_vec = np.vstack([self.arr, ~self.arr]) cv = Curvature(mix_vec, mix_vec, np.bool_(True)) unknown_str_arr = np.atleast_2d(self.n*[[Curvature.UNKNOWN_KEY]]) affine_str_arr = np.atleast_2d(self.n*[[Curvature.AFFINE_KEY]]) str_arr = np.vstack([unknown_str_arr, affine_str_arr]) assert (cv.get_readable_repr(2*self.n, 1) == str_arr).all() cv = Curvature(mix_vec, ~mix_vec, np.bool_(True)) conc_str_arr = np.atleast_2d(self.n*[[Curvature.CONCAVE_KEY]]) cvx_str_arr = np.atleast_2d(self.n*[[Curvature.CONVEX_KEY]]) str_arr = np.vstack([cvx_str_arr, conc_str_arr]) assert (cv.get_readable_repr(2*self.n, 1) == str_arr).all() # # Test the vstack method. # def test_vstack(self): # curvs = self.n*[(Curvature.CONSTANT, (1,1))] # vs = Curvature.vstack(*curvs) # print vs # assert_equals(vs, self.const_vec) # curvs = self.n*[(Curvature.CONVEX, (1,1))] # assert_equals(Curvature.vstack(*curvs), self.cvx_vec)
def test_get_readable_repr(self): """Tests the get_readable_repr method. """ assert_equals(Curvature.CONSTANT.get_readable_repr(1, 1), Curvature.CONSTANT_KEY) assert_equals(Curvature.CONSTANT.get_readable_repr(5, 4), Curvature.CONSTANT_KEY) assert_equals(Curvature.AFFINE.get_readable_repr(1, 1), Curvature.AFFINE_KEY) assert_equals(Curvature.AFFINE.get_readable_repr(5, 4), Curvature.AFFINE_KEY) assert_equals(Curvature.CONVEX.get_readable_repr(1, 1), Curvature.CONVEX_KEY) assert_equals(Curvature.CONVEX.get_readable_repr(5, 4), Curvature.CONVEX_KEY) assert_equals(Curvature.CONCAVE.get_readable_repr(1, 1), Curvature.CONCAVE_KEY) assert_equals(Curvature.CONCAVE.get_readable_repr(5, 4), Curvature.CONCAVE_KEY) assert_equals(Curvature.UNKNOWN.get_readable_repr(1, 1), Curvature.UNKNOWN_KEY) assert_equals(Curvature.UNKNOWN.get_readable_repr(5, 4), Curvature.UNKNOWN_KEY) # Mixed curvatures. mix_vec = np.vstack([self.arr, ~self.arr]) cv = Curvature(mix_vec, mix_vec, np.bool_(True)) unknown_str_arr = np.atleast_2d(self.n * [[Curvature.UNKNOWN_KEY]]) affine_str_arr = np.atleast_2d(self.n * [[Curvature.AFFINE_KEY]]) str_arr = np.vstack([unknown_str_arr, affine_str_arr]) assert (cv.get_readable_repr(2 * self.n, 1) == str_arr).all() cv = Curvature(mix_vec, ~mix_vec, np.bool_(True)) conc_str_arr = np.atleast_2d(self.n * [[Curvature.CONCAVE_KEY]]) cvx_str_arr = np.atleast_2d(self.n * [[Curvature.CONVEX_KEY]]) str_arr = np.vstack([cvx_str_arr, conc_str_arr]) assert (cv.get_readable_repr(2 * self.n, 1) == str_arr).all()