Add some operations (add,sub,mul,etc.) to points/size/rectangles

This commit is contained in:
David Capello 2019-09-23 10:22:33 -03:00
parent 710e6d7ea2
commit 7ded5ec710
3 changed files with 88 additions and 1 deletions

View File

@ -33,3 +33,43 @@ assert(pt.y == 25)
pt = -pt
assert(pt.x == -45)
assert(pt.y == -25)
-- add/sub/mul/div/mod/pow/idiv
pt = Point(1, 2) + 4
pt2 = 4 + Point(1, 2)
assert(pt.x == 5)
assert(pt.y == 6)
assert(pt == pt2)
pt = Point(1, 2) + Point(3, 4)
assert(pt.x == 4)
assert(pt.y == 6)
pt = Point(3, 4) - 1
assert(pt.x == 2)
assert(pt.y == 3)
pt = Point(1, 5) - Point(3, 2)
assert(pt.x == -2)
assert(pt.y == 3)
pt = Point(6, 10) * 2
assert(pt.x == 12)
assert(pt.y == 20)
pt = Point(6, 10) / 2
assert(pt.x == 3)
assert(pt.y == 5)
pt = Point(10, 5) % 2
assert(pt.x == 0)
assert(pt.y == 1)
pt = Point(2, 5) ^ 2
assert(pt.x == 4)
assert(pt.y == 25)
pt = Point(31, 10) // 3
assert(pt.x == 10)
assert(pt.y == 3)

View File

@ -63,7 +63,10 @@ b = Rectangle{x=3, y=4, width=4, height=5}
c = Rectangle{x=3, y=4, width=3, height=4}
assert(c == a:intersect(b))
assert(c == b:intersect(a))
assert((a & b) == c)
-- Rectangle:union
assert(Rectangle{x=2, y=3, width=5, height=6} == a:union(b))
c = Rectangle{x=2, y=3, width=5, height=6}
assert(c == a:union(b))
assert(c == (a | b))

View File

@ -29,3 +29,47 @@ assert(sz.height == 20)
sz = Size{45, 25}
assert(sz.width == 45)
assert(sz.height == 25)
sz = -sz
assert(sz.width == -45)
assert(sz.height == -25)
-- add/sub/mul/div/mod/pow/idiv
sz = Size(1, 2) + 4
sz2 = 4 + Size(1, 2)
assert(sz.width == 5)
assert(sz.height == 6)
assert(sz == sz2)
sz = Size(1, 2) + Size(3, 4)
assert(sz.width == 4)
assert(sz.height == 6)
sz = Size(3, 4) - 1
assert(sz.width == 2)
assert(sz.height == 3)
sz = Size(8, 5) - Size(3, 2)
assert(sz.width == 5)
assert(sz.height == 3)
sz = Size(6, 10) * 2
assert(sz.width == 12)
assert(sz.height == 20)
sz = Size(6, 10) / 2
assert(sz.width == 3)
assert(sz.height == 5)
sz = Size(10, 5) % 2
assert(sz.width == 0)
assert(sz.height == 1)
sz = Size(2, 5) ^ 2
assert(sz.width == 4)
assert(sz.height == 25)
sz = Size(31, 10) // 3
assert(sz.width == 10)
assert(sz.height == 3)