Example #1
0
 def test_subvector(self):
     a = IntervalVector(range(0, 10))
     self.assertEqual(len(a), 10)
     b = a.subvector(3, 6)
     self.assertEqual(len(b), 4)
     b[0] = Interval(-2, 3)
     self.assertEqual(b[0], Interval(-2, 3))
Example #2
0
	def test_subvector(self):
		a = IntervalVector(list(range(0,10)))
		self.assertEqual(len(a), 10)
		b = a.subvector(3,6)
		self.assertEqual(len(b), 4)
		b[0] = Interval(-2,3)
		self.assertEqual(b[0], Interval(-2,3))
Example #3
0
 def test_ops_4(self):
     a = IntervalVector(2, Interval(-1, 1))
     b = IntervalVector(2, Interval(-3, 1))
     self.assertEqual(a * b, Interval(-6, 6))
     self.assertEqual(3 * a, IntervalVector(2, Interval(-3, 3)))
     self.assertEqual(a * [2, 2], Interval(-4, 4))
     self.assertEqual(
         Interval(2, 3) * a, IntervalVector(2, Interval(-3, 3)))
Example #4
0
 def test_put(self):
     a = IntervalVector(range(0, 10))
     self.assertEqual(len(a), 10)
     a.put(3, IntervalVector([1, 2, 3]))
     self.assertEqual(a[3], Interval(1))
     self.assertEqual(a[4], Interval(2))
     self.assertEqual(a[5], Interval(3))
     self.assertEqual(a[6], Interval(6))
Example #5
0
	def test_put(self):
		a = IntervalVector(list(range(0,10)))
		self.assertEqual(len(a), 10)
		a.put(3, IntervalVector([1,2,3]))
		self.assertEqual(a[3], Interval(1))
		self.assertEqual(a[4], Interval(2))
		self.assertEqual(a[5], Interval(3))
		self.assertEqual(a[6], Interval(6))
Example #6
0
 def test_is_bisectable(self):
     a = IntervalVector(2, Interval(-2, 4))
     self.assertTrue(a.is_bisectable())
     b = IntervalVector(2, Interval(1, 3))
     self.assertTrue(b.is_bisectable())
     b[0] = Interval(0)
     self.assertTrue(b.is_bisectable())
     b[1] = Interval(0)
     self.assertFalse(b.is_bisectable())
Example #7
0
 def test_ops_2(self):
     a = IntervalVector(2, Interval(-1, 1))
     b = IntervalVector(2, Interval(-3, 1))
     a += b
     self.assertEqual(a, IntervalVector(2, Interval(-4, 2)))
     a = IntervalVector(2, Interval(-1, 1))
     a -= b
     self.assertEqual(a, IntervalVector(2, Interval(-2, 4)))
     a = IntervalVector(2, Interval(-1, 1))
     a &= b
     self.assertEqual(a, IntervalVector(2, Interval(-1, 1)))
     a = IntervalVector(2, Interval(-1, 1))
     a |= b
     self.assertEqual(a, IntervalVector(2, Interval(-3, 1)))
Example #8
0
    def test_gettiem2(self):
        """
		check if gettiem returns a non constant reference on an Interval
		"""
        c = IntervalVector((1, 2, 3))
        b = c[1]
        self.assertEqual(b, Interval(2))
        c[1] = Interval(-1, 2)
        self.assertEqual(c[1], Interval(-1, 2))
        self.assertEqual(b, Interval(-1, 2))
Example #9
0
 def __init__(self, max, figureName=None):
     SetVisitor.__init__(self)
     self.frame = IntervalVector(2, max * Interval(-1, 1))
     self.figureName = figureName
     if figureName != None:
         vibes.newFigure(figureName)
         vibes.setFigureProperties({
             'x': 0,
             'y': 0,
             'width': 500,
             'height': 500
         })
Example #10
0
 def test_ops_plus(self):
     a = IntervalVector(2, Interval(-1, 1))
     b = IntervalVector(2, Interval(-3, 1))
     self.assertEqual(a + b, IntervalVector(2, Interval(-4, 2)))
     self.assertEqual(a - b, IntervalVector(2, Interval(-2, 4)))
     self.assertEqual(a & b, IntervalVector(2, Interval(-1, 1)))
     self.assertEqual(a | b, IntervalVector(2, Interval(-3, 1)))
     self.assertTrue(a != b)
Example #11
0
    def __init__(self, img, x0, y0, x_res, y_res, is_II=True):
        Ctc.__init__(self, 2)
        img = img.astype(np.int)
        # test on image
        if np.max(img) > 1 and np.min(img) < 0:
            print("Error min max image !!! ")
        self._origin = np.array([x0, y0])
        self._leaf_size = np.array([x_res, y_res])
        self._II = copy.copy(img)
        if is_II == False:
            self.II = self.II.cumsum(axis=0).cumsum(axis=1)

        self._boundingBox = IntervalVector([[x0, x0 * img.shape[0] * x_res],
                                            [y0, y0 * img.shape[0] * y_res]])
Example #12
0
    def test_ops_3(self):
        a = IntervalVector(2, Interval(-1, 1))
        a += [2, 2]
        self.assertEqual(a, IntervalVector(2, Interval(1, 3)))

        a = IntervalVector(2, Interval(-1, 1))
        a -= [2, 2]
        self.assertEqual(a, IntervalVector(2, Interval(-3, -1)))

        a = IntervalVector(2, Interval(-1, 1))
        a *= Interval(2, 3)
        self.assertEqual(a, IntervalVector(2, Interval(-3, 3)))

        a = IntervalVector(2, Interval(-1, 1))
        a *= 3.0
        self.assertEqual(a, IntervalVector(2, Interval(-3, 3)))
Example #13
0
	def test_is_bisectable(self):
		a = IntervalVector(2, Interval(-2,4))
		self.assertTrue(a.is_bisectable())
		b = IntervalVector(2, Interval(1,3))
		self.assertTrue(b.is_bisectable())
		b[0]  = Interval(0)
		self.assertTrue(b.is_bisectable())
		b[1]  = Interval(0)
		self.assertFalse(b.is_bisectable())
Example #14
0
 def test_constructor(self):
     a = IntervalVector(3)
     a = IntervalVector(3, Interval(-2, 3))
     self.assertEqual(a[0], Interval(-2, 3))
     a = IntervalVector([1, 2, 3])
     self.assertEqual(a[0], Interval(1))
     a = IntervalVector((1, 2, 3))
     self.assertEqual(a[1], Interval(2))
     b = IntervalVector(a)
     self.assertEqual(a[1], b[1])
     c = IntervalVector([[1, 2], [5, 6]])
     self.assertEqual(c[0], Interval(1, 2))
Example #15
0
 def test_resize(self):
     a = IntervalVector(3, Interval(-2, 4))
     self.assertEqual(a.size(), 3)
     a.resize(1000)
     self.assertEqual(a.size(), 1000)
Example #16
0
 def test_bwd_mul(self):
     a = IntervalVector(2, Interval(2, 4))
     b = Interval(1, 2)
     c = IntervalVector(2)
     pyIbex.bwd_mul(a, b, c)
     pyIbex.bwd_mul(b, a, c)
Example #17
0
 def test_init(self):
     a = IntervalVector(3, Interval(-2, 4))
     a.init(Interval(2, 4))
     self.assertEqual(a[0], Interval(2, 4))
Example #18
0
	def test_is_unbounded(self):
		a = IntervalVector(3, Interval(-2,3))
		self.assertFalse(a.is_unbounded())
		a[1] = Interval.POS_REALS
		self.assertTrue(a.is_unbounded())
Example #19
0
	def test_is_disjoint(self):
		a = IntervalVector(2, Interval(-2,4))
		b = IntervalVector(2, Interval(1,3))
		c = IntervalVector(2, Interval(-4,-2.5))
		self.assertFalse(a.is_disjoint(b))
		self.assertTrue(a.is_disjoint(c))
Example #20
0
 def test_ub(self):
     a = IntervalVector(range(0, 7)).inflate(1)
     test = [1, 2, 3, 4, 5, 6, 7]
     self.assertEqual(test, a.ub())
Example #21
0
            if (enclosed_pixels(i, cxmax, cymin, cymax) > 0):
                cxmax = i
                break
        # down
        for j in range(cymin, cymax + 1):
            if (enclosed_pixels(cxmin, cxmax, cymin, j) > 0):
                cymin = j
                break
        # up
        for j in range(cymax, cymin - 1, -1):
            if (enclosed_pixels(cxmin, cxmax, j, cymax) > 0):
                cymax = j
                break

    def enclosed_pixels(xmin, xmax, ymin, ymax):
        b1 = self._II[xmax, ymax]
        b2 = self._II[xmax, ymin - 1]
        b3 = self._II[xmin - 1, ymax]
        b4 = self._II[xmin - 1, ymin - 1]
        return b1 - b2 - b3 + b4


if __name__ == '__main__':
    a = np.zeros((10, 10))
    a[5:7, 4:6] = 1
    print(a)
    ctc = CtcPixelMap2D(a, 0, 0, 1, 1)
    X = IntervalVector(2, [2, 10])
    ctc.contract(X)
    print(X)
Example #22
0
	def test_diff(self):
		a = IntervalVector([[-1,1], [0,2], [1, 5]])
		b = IntervalVector(list(range(0,3))).inflate(1)
		l = a.diff(b)
		self.assertEqual(len(l), 1)
		self.assertEqual(l[0], IntervalVector([[-1,1], [0,2], [3, 5]]))
Example #23
0
	def test_diff_2(self):
		a = IntervalVector([[-1,1], [0,2], [1, 5]])
		b = IntervalVector(a)
		l = a.diff(b)
		self.assertEqual(len(l), 0)
Example #24
0
	def test_perimeter(self):
		a = IntervalVector(list(range(0,3))).inflate(1)
		self.assertEqual(a.perimeter(), 6.0)
Example #25
0
	def test_rel_distance(self):
		a = IntervalVector(list(range(0,3))).inflate(1)
		b = IntervalVector(list(range(0,3)))
		self.assertEqual(a.rel_distance(b), 0.5)
Example #26
0
	def test_volume(self):
		a = IntervalVector(list(range(0,3))).inflate(1)
		self.assertEqual(round(a.volume()), 8)
Example #27
0
	def test_min_max_diam(self):
		a = IntervalVector(list(range(0,3))).inflate(1)
		a[1] = a[1].inflate(0.2)
		a[2] = a[2].inflate(0.5)
		self.assertEqual(a.max_diam(),3)
		self.assertEqual(a.min_diam(),2)
Example #28
0
	def test_diam(self):
		a = IntervalVector(list(range(0,3))).inflate(1)
		self.assertEqual(a.rad(),[1,1,1])
Example #29
0
	def test_mid(self):
		a = IntervalVector(list(range(0,7))).inflate(1)
		test = list(range(0,7))
		self.assertEqual(test, a.mid())
Example #30
0
	def test_complementary(self):
		a = IntervalVector(list(range(0,1))).inflate(1)
		l = a.complementary()
		self.assertEqual(l[0], IntervalVector(1, Interval(float("-inf"), -1)))
		self.assertEqual(l[1], IntervalVector(1, Interval(1, float("inf"))))
Example #31
0
 def test_size(self):
     a = IntervalVector(range(0, 10))
     self.assertTrue(a.size() == 10)
Example #32
0
	def test_is_flat(self):
		a = IntervalVector(list(range(1,5)))
		self.assertTrue(a.is_flat())
Example #33
0
 def test_mag(self):
     a = IntervalVector(range(0, 7)).inflate(1)
     self.assertEqual([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], a.mag())
Example #34
0
 def test_ops_6(self):
     a = IntervalVector(2, Interval(-1, 1))
     self.assertEqual(a - [1, 1], IntervalVector(2, Interval(-2, 0)))
     self.assertEqual([1, 1] - a, IntervalVector(2, Interval(0, 2)))
Example #35
0
	def test_overlaps(self):
		a = IntervalVector(2, Interval(-2,4))
		b = IntervalVector(2, Interval(1,3))
		self.assertTrue(a.overlaps(b))
Example #36
0
 def test_set_empty(self):
     a = IntervalVector(3)
     a.set_empty()
     self.assertTrue(a.is_empty())
Example #37
0
	def test_bisect(self):
		a = IntervalVector(list(range(0,3))).inflate(1)
		(c,d) = a.bisect(2)
Example #38
0
	def test_is_zero(self):
		a = IntervalVector(list(range(0,3)))
		self.assertFalse(a.is_zero())
		a = IntervalVector([0,0,0])
		self.assertTrue(a.is_zero())
Example #39
0
 def test_ops_5(self):
     a = IntervalVector(2, Interval(-1, 1))
     self.assertEqual(a + [1, 1], IntervalVector(2, Interval(0, 2)))
     self.assertEqual([1, 1] + a, IntervalVector(2, Interval(0, 2)))
Example #40
0
	def test_empty(self):
		a  = IntervalVector.empty(3)
		self.assertEqual(a.size(), 3)
		self.assertEqual(len(a), 3)
		self.assertTrue(a.is_empty())
Example #41
0
 def test_abs(self):
     a = IntervalVector(2, Interval(-2, 4))
     self.assertEqual(pyIbex.abs(a), IntervalVector(2, Interval(0, 4)))
Example #42
0
	def test_set_empty(self):
		a = IntervalVector(3)
		a.set_empty()
		self.assertTrue(a.is_empty())
Example #43
0
 def test_bwd_mul(self):
     a = IntervalVector(2, Interval(2, 4))
     b = IntervalVector(2, Interval(-3, 4))
     c = IntervalVector(2)
     pyIbex.bwd_mul(c, a, b)
Example #44
0
	def test_clear(self):
		a = IntervalVector(3, Interval(-2,4))
		a.clear()
		self.assertEqual(a[0], Interval(0))
Example #45
0
 def test_clear(self):
     a = IntervalVector(3, Interval(-2, 4))
     a.clear()
     self.assertEqual(a[0], Interval(0))
Example #46
0
	def test_init(self):
		a = IntervalVector(3, Interval(-2,4))
		a.init(Interval(2,4))
		self.assertEqual(a[0], Interval(2,4))
Example #47
0
 def test_inflate(self):
     a = IntervalVector(3, Interval(-2, 4))
     a.inflate(2)
     b = IntervalVector(3, Interval(-4, 6))
Example #48
0
	def test_inflate(self):
		a = IntervalVector(3, Interval(-2,4))
		a.inflate(2)
		b = IntervalVector(3, Interval(-4,6))
Example #49
0
	def test_mag(self):
		a = IntervalVector(list(range(0,7))).inflate(1)
		self.assertEqual([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0], a.mag())
Example #50
0
	def test_interior_contains(self):
		a = IntervalVector(list(range(0,7))).inflate(1)
		self.assertTrue(a.contains(list(range(0,7))))
Example #51
0
	def test_is_strict_superset(self):
		a = IntervalVector(3, Interval(-2,3))
		b = IntervalVector([-2.0, -1, 2])
		self.assertTrue(a.is_strict_superset(b))
Example #52
0
	def test_is_strict_interior_subset(self):
		a = IntervalVector(3, Interval(-2,3))
		b = IntervalVector([-1.8, -1, 2]).inflate(0.1)
		self.assertTrue(b.is_strict_interior_subset(a))
Example #53
0
 def test_lb(self):
     a = IntervalVector(range(0, 7)).inflate(1)
     test = [-1, 0, 1, 2, 3, 4, 5]
     self.assertEqual(test, a.lb())
Example #54
0
 def test_bisect(self):
     a = IntervalVector(range(0, 3)).inflate(1)
     (c, d) = a.bisect(2)
Example #55
0
 def test_mid(self):
     a = IntervalVector(range(0, 7)).inflate(1)
     test = range(0, 7)
     self.assertEqual(test, a.mid())
Example #56
0
	def test_is_subset(self):
		a = IntervalVector(3, Interval(-2,3))
		b = IntervalVector([-2.0, -1, 2])
		self.assertTrue(b.is_subset(a))
Example #57
0
from vibes import vibes
import pyIbex as ibex
from pyPredicate import pyPdcIn
from pyVisitors import ToVibes
import numpy as np



if __name__ == '__main__':

    params = {'color_in': '#888888[#444444]', 'color_out':
                  '#888888[#DDDDDD]', 'color_maybe': '#888888[w]'}
    vibes.beginDrawing()


    P = IntervalVector(2, [-4, 4])
    A = Paving(P,BoolInterval(YES))
    f = Function("x", "y", "x^2 + y^2")
    pdcA = pyPdcIn(f, IntervalVector(1, [0, 3]), IntervalVector(1, [4, 1000]))
    A.Sivia(pdcA,ibex.op_And,0.03);
    A.visit(ToVibes(10, "Aset"))
    
    B = Paving(P,BoolInterval(YES));
    f = Function("x[2]", 'x[0]^2 + (1 + x[1])^2 + (x[0] + x[1])^2')
    pdcB = pyPdcIn(f, IntervalVector(1, [0, 3]), IntervalVector(1, [6, 10000]))
    B.Sivia(pdcB,ibex.op_And,0.03);
    B.visit(ToVibes(10, "Bset"))
    
    AmoinsB = Paving(P, MAYBE);
    op_binaire(AmoinsB,A,B,ibex.op_Restrict);
    AmoinsB.visit(ToVibes(10, "AmoinsB"))
Example #58
0
 def test_empty(self):
     a = IntervalVector.empty(3)
     self.assertEqual(a.size(), 3)
     self.assertEqual(len(a), 3)
     self.assertTrue(a.is_empty())
Example #59
0
	def test_resize(self):
		a = IntervalVector(3, Interval(-2,4))
		self.assertEqual(a.size(),3)
		a.resize(1000)
		self.assertEqual(a.size(),1000)
Example #60
0
	def test_intersects(self):
		a = IntervalVector(list(range(0,7))).inflate(2)
		b = IntervalVector(list(range(0,7))).inflate(1)
		self.assertTrue(a.intersects(b))