Beispiel #1
0
 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)
Beispiel #2
0
 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)
Beispiel #3
0
 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)
Beispiel #4
0
 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))
Beispiel #5
0
    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)
Beispiel #6
0
    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()