/// Constructor

 // new Rectangle()
(top=0, right=0, bottom=0, left=0, topLeft=(x=0, y=0), bottomRight=(x=0, y=0), width=0, height=0, size=(x=0, y=0), x=0, y=0)

 // new Rectangle(1)
(top=undefined, right=NaN, bottom=NaN, left=1, topLeft=(x=1, y=undefined), bottomRight=(x=NaN, y=NaN), width=undefined, height=undefined, size=(x=undefined, y=undefined), x=1, y=undefined)

 // new Rectangle(1, 2)
(top=2, right=NaN, bottom=NaN, left=1, topLeft=(x=1, y=2), bottomRight=(x=NaN, y=NaN), width=undefined, height=undefined, size=(x=undefined, y=undefined), x=1, y=2)

 // new Rectangle(1, 2, 3)
(top=2, right=4, bottom=NaN, left=1, topLeft=(x=1, y=2), bottomRight=(x=4, y=NaN), width=3, height=undefined, size=(x=3, y=undefined), x=1, y=2)

 // new Rectangle(1, 2, 3, 4)
(top=2, right=4, bottom=6, left=1, topLeft=(x=1, y=2), bottomRight=(x=4, y=6), width=3, height=4, size=(x=3, y=4), x=1, y=2)

 // new Rectangle({})
(top=undefined, right=NaN, bottom=NaN, left=[object Object], topLeft=(x=[object Object], y=undefined), bottomRight=(x=NaN, y=NaN), width=undefined, height=undefined, size=(x=undefined, y=undefined), x=[object Object], y=undefined)


/// top

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.top = 0
(top=0, right=6, bottom=10, left=1, topLeft=(x=1, y=0), bottomRight=(x=6, y=10), width=5, height=10, size=(x=5, y=10), x=1, y=0)

 // rect.top = 100
(top=100, right=6, bottom=10, left=1, topLeft=(x=1, y=100), bottomRight=(x=6, y=10), width=5, height=-90, size=(x=5, y=-90), x=1, y=100)

 // rect.top = -200
(top=-200, right=6, bottom=10, left=1, topLeft=(x=1, y=-200), bottomRight=(x=6, y=10), width=5, height=210, size=(x=5, y=210), x=1, y=-200)

 // rect.top = NaN
(top=NaN, right=6, bottom=NaN, left=1, topLeft=(x=1, y=NaN), bottomRight=(x=6, y=NaN), width=5, height=NaN, size=(x=5, y=NaN), x=1, y=NaN)

 // rect.top = [object Object]
(top=[object Object], right=6, bottom=NaN, left=1, topLeft=(x=1, y=[object Object]), bottomRight=(x=6, y=NaN), width=5, height=NaN, size=(x=5, y=NaN), x=1, y=[object Object])

 // rect.top = Infinity
(top=Infinity, right=6, bottom=NaN, left=1, topLeft=(x=1, y=Infinity), bottomRight=(x=6, y=NaN), width=5, height=-Infinity, size=(x=5, y=-Infinity), x=1, y=Infinity)

 // rect.top = undefined
(top=undefined, right=6, bottom=NaN, left=1, topLeft=(x=1, y=undefined), bottomRight=(x=6, y=NaN), width=5, height=NaN, size=(x=5, y=NaN), x=1, y=undefined)


/// right

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.right = 0
(top=3, right=0, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=0, y=10), width=-1, height=7, size=(x=-1, y=7), x=1, y=3)

 // rect.right = 100
(top=3, right=100, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=100, y=10), width=99, height=7, size=(x=99, y=7), x=1, y=3)

 // rect.right = -200
(top=3, right=-200, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=-200, y=10), width=-201, height=7, size=(x=-201, y=7), x=1, y=3)

 // rect.right = NaN
(top=3, right=NaN, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=10), width=NaN, height=7, size=(x=NaN, y=7), x=1, y=3)

 // rect.right = [object Object]
(top=3, right=NaN, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=10), width=NaN, height=7, size=(x=NaN, y=7), x=1, y=3)

 // rect.right = Infinity
(top=3, right=Infinity, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=Infinity, y=10), width=Infinity, height=7, size=(x=Infinity, y=7), x=1, y=3)

 // rect.right = undefined
(top=3, right=NaN, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=10), width=NaN, height=7, size=(x=NaN, y=7), x=1, y=3)


/// left

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.left = 0
(top=3, right=6, bottom=10, left=0, topLeft=(x=0, y=3), bottomRight=(x=6, y=10), width=6, height=7, size=(x=6, y=7), x=0, y=3)

 // rect.left = 100
(top=3, right=6, bottom=10, left=100, topLeft=(x=100, y=3), bottomRight=(x=6, y=10), width=-94, height=7, size=(x=-94, y=7), x=100, y=3)

 // rect.left = -200
(top=3, right=6, bottom=10, left=-200, topLeft=(x=-200, y=3), bottomRight=(x=6, y=10), width=206, height=7, size=(x=206, y=7), x=-200, y=3)

 // rect.left = NaN
(top=3, right=NaN, bottom=10, left=NaN, topLeft=(x=NaN, y=3), bottomRight=(x=NaN, y=10), width=NaN, height=7, size=(x=NaN, y=7), x=NaN, y=3)

 // rect.left = [object Object]
(top=3, right=NaN, bottom=10, left=[object Object], topLeft=(x=[object Object], y=3), bottomRight=(x=NaN, y=10), width=NaN, height=7, size=(x=NaN, y=7), x=[object Object], y=3)

 // rect.left = Infinity
(top=3, right=NaN, bottom=10, left=Infinity, topLeft=(x=Infinity, y=3), bottomRight=(x=NaN, y=10), width=-Infinity, height=7, size=(x=-Infinity, y=7), x=Infinity, y=3)

 // rect.left = undefined
(top=3, right=NaN, bottom=10, left=undefined, topLeft=(x=undefined, y=3), bottomRight=(x=NaN, y=10), width=NaN, height=7, size=(x=NaN, y=7), x=undefined, y=3)


/// bottom

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.bottom = 0
(top=3, right=6, bottom=0, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=0), width=5, height=-3, size=(x=5, y=-3), x=1, y=3)

 // rect.bottom = 100
(top=3, right=6, bottom=100, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=100), width=5, height=97, size=(x=5, y=97), x=1, y=3)

 // rect.bottom = -200
(top=3, right=6, bottom=-200, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=-200), width=5, height=-203, size=(x=5, y=-203), x=1, y=3)

 // rect.bottom = NaN
(top=3, right=6, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=NaN), width=5, height=NaN, size=(x=5, y=NaN), x=1, y=3)

 // rect.bottom = [object Object]
(top=3, right=6, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=NaN), width=5, height=NaN, size=(x=5, y=NaN), x=1, y=3)

 // rect.bottom = Infinity
(top=3, right=6, bottom=Infinity, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=Infinity), width=5, height=Infinity, size=(x=5, y=Infinity), x=1, y=3)

 // rect.bottom = undefined
(top=3, right=6, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=NaN), width=5, height=NaN, size=(x=5, y=NaN), x=1, y=3)


/// width

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.width = 0
(top=3, right=1, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=1, y=10), width=0, height=7, size=(x=0, y=7), x=1, y=3)

 // rect.width = 100
(top=3, right=101, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=101, y=10), width=100, height=7, size=(x=100, y=7), x=1, y=3)

 // rect.width = -200
(top=3, right=-199, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=-199, y=10), width=-200, height=7, size=(x=-200, y=7), x=1, y=3)

 // rect.width = NaN
(top=3, right=NaN, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=10), width=NaN, height=7, size=(x=NaN, y=7), x=1, y=3)

 // rect.width = [object Object]
(top=3, right=NaN, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=10), width=[object Object], height=7, size=(x=[object Object], y=7), x=1, y=3)

 // rect.width = Infinity
(top=3, right=Infinity, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=Infinity, y=10), width=Infinity, height=7, size=(x=Infinity, y=7), x=1, y=3)

 // rect.width = undefined
(top=3, right=NaN, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=10), width=undefined, height=7, size=(x=undefined, y=7), x=1, y=3)


/// height

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.height = 0
(top=3, right=6, bottom=3, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=3), width=5, height=0, size=(x=5, y=0), x=1, y=3)

 // rect.height = 100
(top=3, right=6, bottom=103, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=103), width=5, height=100, size=(x=5, y=100), x=1, y=3)

 // rect.height = -200
(top=3, right=6, bottom=-197, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=-197), width=5, height=-200, size=(x=5, y=-200), x=1, y=3)

 // rect.height = NaN
(top=3, right=6, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=NaN), width=5, height=NaN, size=(x=5, y=NaN), x=1, y=3)

 // rect.height = [object Object]
(top=3, right=6, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=NaN), width=5, height=[object Object], size=(x=5, y=[object Object]), x=1, y=3)

 // rect.height = Infinity
(top=3, right=6, bottom=Infinity, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=Infinity), width=5, height=Infinity, size=(x=5, y=Infinity), x=1, y=3)

 // rect.height = undefined
(top=3, right=6, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=NaN), width=5, height=undefined, size=(x=5, y=undefined), x=1, y=3)


/// x

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.x = 0
(top=3, right=5, bottom=10, left=0, topLeft=(x=0, y=3), bottomRight=(x=5, y=10), width=5, height=7, size=(x=5, y=7), x=0, y=3)

 // rect.x = 100
(top=3, right=105, bottom=10, left=100, topLeft=(x=100, y=3), bottomRight=(x=105, y=10), width=5, height=7, size=(x=5, y=7), x=100, y=3)

 // rect.x = -200
(top=3, right=-195, bottom=10, left=-200, topLeft=(x=-200, y=3), bottomRight=(x=-195, y=10), width=5, height=7, size=(x=5, y=7), x=-200, y=3)

 // rect.x = NaN
(top=3, right=NaN, bottom=10, left=NaN, topLeft=(x=NaN, y=3), bottomRight=(x=NaN, y=10), width=5, height=7, size=(x=5, y=7), x=NaN, y=3)

 // rect.x = [object Object]
(top=3, right=NaN, bottom=10, left=[object Object], topLeft=(x=[object Object], y=3), bottomRight=(x=NaN, y=10), width=5, height=7, size=(x=5, y=7), x=[object Object], y=3)

 // rect.x = Infinity
(top=3, right=Infinity, bottom=10, left=Infinity, topLeft=(x=Infinity, y=3), bottomRight=(x=Infinity, y=10), width=5, height=7, size=(x=5, y=7), x=Infinity, y=3)

 // rect.x = undefined
(top=3, right=NaN, bottom=10, left=undefined, topLeft=(x=undefined, y=3), bottomRight=(x=NaN, y=10), width=5, height=7, size=(x=5, y=7), x=undefined, y=3)


/// y

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.y = 0
(top=0, right=6, bottom=7, left=1, topLeft=(x=1, y=0), bottomRight=(x=6, y=7), width=5, height=7, size=(x=5, y=7), x=1, y=0)

 // rect.y = 100
(top=100, right=6, bottom=107, left=1, topLeft=(x=1, y=100), bottomRight=(x=6, y=107), width=5, height=7, size=(x=5, y=7), x=1, y=100)

 // rect.y = -200
(top=-200, right=6, bottom=-193, left=1, topLeft=(x=1, y=-200), bottomRight=(x=6, y=-193), width=5, height=7, size=(x=5, y=7), x=1, y=-200)

 // rect.y = NaN
(top=NaN, right=6, bottom=NaN, left=1, topLeft=(x=1, y=NaN), bottomRight=(x=6, y=NaN), width=5, height=7, size=(x=5, y=7), x=1, y=NaN)

 // rect.y = [object Object]
(top=[object Object], right=6, bottom=NaN, left=1, topLeft=(x=1, y=[object Object]), bottomRight=(x=6, y=NaN), width=5, height=7, size=(x=5, y=7), x=1, y=[object Object])

 // rect.y = Infinity
(top=Infinity, right=6, bottom=Infinity, left=1, topLeft=(x=1, y=Infinity), bottomRight=(x=6, y=Infinity), width=5, height=7, size=(x=5, y=7), x=1, y=Infinity)

 // rect.y = undefined
(top=undefined, right=6, bottom=NaN, left=1, topLeft=(x=1, y=undefined), bottomRight=(x=6, y=NaN), width=5, height=7, size=(x=5, y=7), x=1, y=undefined)


/// topLeft

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.topLeft = (x=0, y=0)
(top=0, right=6, bottom=10, left=0, topLeft=(x=0, y=0), bottomRight=(x=6, y=10), width=6, height=10, size=(x=6, y=10), x=0, y=0)

 // rect.topLeft = (x=-100, y=-200)
(top=-200, right=6, bottom=10, left=-100, topLeft=(x=-100, y=-200), bottomRight=(x=6, y=10), width=106, height=210, size=(x=106, y=210), x=-100, y=-200)

 // rect.topLeft = (x=100, y=200)
(top=200, right=6, bottom=10, left=100, topLeft=(x=100, y=200), bottomRight=(x=6, y=10), width=-94, height=-190, size=(x=-94, y=-190), x=100, y=200)

 // rect.topLeft = [object Object]
(top=-50, right=6, bottom=10, left=50, topLeft=(x=50, y=-50), bottomRight=(x=6, y=10), width=-44, height=60, size=(x=-44, y=60), x=50, y=-50)

 // rect.topLeft = (x=Infinity, y=Infinity)
(top=Infinity, right=NaN, bottom=NaN, left=Infinity, topLeft=(x=Infinity, y=Infinity), bottomRight=(x=NaN, y=NaN), width=-Infinity, height=-Infinity, size=(x=-Infinity, y=-Infinity), x=Infinity, y=Infinity)

 // rect.topLeft = (x=NaN, y=NaN)
(top=NaN, right=NaN, bottom=NaN, left=NaN, topLeft=(x=NaN, y=NaN), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=NaN, y=NaN)

 // rect.topLeft = undefined
(top=undefined, right=NaN, bottom=NaN, left=undefined, topLeft=(x=undefined, y=undefined), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=undefined, y=undefined)

 // rect.topLeft = 100
(top=undefined, right=NaN, bottom=NaN, left=undefined, topLeft=(x=undefined, y=undefined), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=undefined, y=undefined)


/// bottomRight

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.bottomRight = (x=0, y=0)
(top=3, right=0, bottom=0, left=1, topLeft=(x=1, y=3), bottomRight=(x=0, y=0), width=-1, height=-3, size=(x=-1, y=-3), x=1, y=3)

 // rect.bottomRight = (x=-100, y=-200)
(top=3, right=-100, bottom=-200, left=1, topLeft=(x=1, y=3), bottomRight=(x=-100, y=-200), width=-101, height=-203, size=(x=-101, y=-203), x=1, y=3)

 // rect.bottomRight = (x=100, y=200)
(top=3, right=100, bottom=200, left=1, topLeft=(x=1, y=3), bottomRight=(x=100, y=200), width=99, height=197, size=(x=99, y=197), x=1, y=3)

 // rect.bottomRight = [object Object]
(top=3, right=50, bottom=-50, left=1, topLeft=(x=1, y=3), bottomRight=(x=50, y=-50), width=49, height=-53, size=(x=49, y=-53), x=1, y=3)

 // rect.bottomRight = (x=Infinity, y=Infinity)
(top=3, right=Infinity, bottom=Infinity, left=1, topLeft=(x=1, y=3), bottomRight=(x=Infinity, y=Infinity), width=Infinity, height=Infinity, size=(x=Infinity, y=Infinity), x=1, y=3)

 // rect.bottomRight = (x=NaN, y=NaN)
(top=3, right=NaN, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=1, y=3)

 // rect.bottomRight = undefined
(top=3, right=NaN, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=1, y=3)

 // rect.bottomRight = 100
(top=3, right=NaN, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=1, y=3)


/// size

 // before modifications
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.size = (x=0, y=0)
(top=3, right=1, bottom=3, left=1, topLeft=(x=1, y=3), bottomRight=(x=1, y=3), width=0, height=0, size=(x=0, y=0), x=1, y=3)

 // rect.size = (x=-100, y=-200)
(top=3, right=-99, bottom=-197, left=1, topLeft=(x=1, y=3), bottomRight=(x=-99, y=-197), width=-100, height=-200, size=(x=-100, y=-200), x=1, y=3)

 // rect.size = (x=100, y=200)
(top=3, right=101, bottom=203, left=1, topLeft=(x=1, y=3), bottomRight=(x=101, y=203), width=100, height=200, size=(x=100, y=200), x=1, y=3)

 // rect.size = [object Object]
(top=3, right=51, bottom=-47, left=1, topLeft=(x=1, y=3), bottomRight=(x=51, y=-47), width=50, height=-50, size=(x=50, y=-50), x=1, y=3)

 // rect.size = (x=Infinity, y=Infinity)
(top=3, right=Infinity, bottom=Infinity, left=1, topLeft=(x=1, y=3), bottomRight=(x=Infinity, y=Infinity), width=Infinity, height=Infinity, size=(x=Infinity, y=Infinity), x=1, y=3)

 // rect.size = (x=NaN, y=NaN)
(top=3, right=NaN, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=1, y=3)

 // rect.size = undefined
(top=3, right=NaN, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=NaN), width=undefined, height=undefined, size=(x=undefined, y=undefined), x=1, y=3)

 // rect.size = 100
(top=3, right=NaN, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=NaN, y=NaN), width=undefined, height=undefined, size=(x=undefined, y=undefined), x=1, y=3)


/// clone

 // orig
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // cloned
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// orig == cloned
false

// orig.equals(cloned)
true


/// equals

 // orig
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// orig.equals(new Rectangle(1, 3, 5, 7))
true

// orig.equals({x: 1, y: 3, width: 5, height: 7})
false


/// isEmpty

// new Rectangle().isEmpty()
true

// new Rectangle(0, 0, 0, 0).isEmpty()
true

// new Rectangle(1, 2, 3, 0).isEmpty()
true

// new Rectangle(1, 2, 0, 4).isEmpty()
true

// new Rectangle(1, 2, 3, 4).isEmpty()
false

// new Rectangle(1, 2, Infinity, Infinity).isEmpty()
false

// new Rectangle(1, 2, NaN, NaN).isEmpty()
true

// new Rectangle(1, 2, undefined, undefined).isEmpty()
true

// new Rectangle(1, 2, -1, -2).isEmpty()
true


/// setEmpty

 // orig
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// orig.setEmpty()
undefined

 // orig
(top=0, right=0, bottom=0, left=0, topLeft=(x=0, y=0), bottomRight=(x=0, y=0), width=0, height=0, size=(x=0, y=0), x=0, y=0)


/// contains

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.contains()
undefined

// rect.contains(1)
undefined

// rect.contains(1, 2)
false

// rect.contains(1, 3)
true

// rect.contains(1.1, 3.1)
true

// rect.contains(6, 10)
false

// rect.contains(5.9, 9.9)
true

// rect.contains(4, NaN)
undefined

// rect.contains(undefined, 5)
undefined

// rect.contains(5, 5)
true

// rect.contains(5, Infinity)
false

// rect.contains()
undefined


/// containsPoint

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.containsPoint((x=0, y=0))
false

// rect.containsPoint((x=1, y=undefined))
undefined

// rect.containsPoint((x=1, y=2))
false

// rect.containsPoint((x=1, y=3))
true

// rect.containsPoint((x=1.1, y=3.1))
true

// rect.containsPoint((x=6, y=10))
false

// rect.containsPoint((x=5.9, y=9.9))
true

// rect.containsPoint((x=undefined, y=5))
undefined

// rect.containsPoint([object Object])
false

// rect.containsPoint([object Object])
true


/// containsRectangle

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.containsRectangle()
undefined

// rect.containsRectangle((x=1, y=3, w=5, h=7))
true

// rect.containsRectangle((x=0.9, y=2.9, w=5, h=7))
false

// rect.containsRectangle((x=1, y=3, w=5.1, h=7.1))
false

// rect.containsRectangle((x=2, y=undefined, w=1, h=1))
undefined

// rect.containsRectangle((x=5, y=5, w=NaN, h=1))
undefined

// rect.containsRectangle([object Object])
true

// rect.containsRectangle([object Object])
undefined


/// inflate

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.inflate()
undefined

 // rect
(top=NaN, right=NaN, bottom=NaN, left=NaN, topLeft=(x=NaN, y=NaN), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=NaN, y=NaN)

// rect.inflate(1)
undefined

 // rect
(top=NaN, right=7, bottom=NaN, left=0, topLeft=(x=0, y=NaN), bottomRight=(x=7, y=NaN), width=7, height=NaN, size=(x=7, y=NaN), x=0, y=NaN)

// rect.inflate(1, 2)
undefined

 // rect
(top=1, right=7, bottom=12, left=0, topLeft=(x=0, y=1), bottomRight=(x=7, y=12), width=7, height=11, size=(x=7, y=11), x=0, y=1)

// rect.inflate(-3, -4)
undefined

 // rect
(top=7, right=3, bottom=6, left=4, topLeft=(x=4, y=7), bottomRight=(x=3, y=6), width=-1, height=-1, size=(x=-1, y=-1), x=4, y=7)

// rect.inflate(Infinity, 5)
undefined

 // rect
(top=-2, right=NaN, bottom=15, left=-Infinity, topLeft=(x=-Infinity, y=-2), bottomRight=(x=NaN, y=15), width=Infinity, height=17, size=(x=Infinity, y=17), x=-Infinity, y=-2)

// rect.inflate(5, NaN)
undefined

 // rect
(top=NaN, right=11, bottom=NaN, left=-4, topLeft=(x=-4, y=NaN), bottomRight=(x=11, y=NaN), width=15, height=NaN, size=(x=15, y=NaN), x=-4, y=NaN)

// rect.inflate(3, [object Object])
undefined

 // rect
(top=NaN, right=9, bottom=NaN, left=-2, topLeft=(x=-2, y=NaN), bottomRight=(x=9, y=NaN), width=11, height=NaN, size=(x=11, y=NaN), x=-2, y=NaN)


/// inflatePoint

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.inflatePoint()
undefined

 // rect
(top=NaN, right=NaN, bottom=NaN, left=NaN, topLeft=(x=NaN, y=NaN), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=NaN, y=NaN)

// rect.inflatePoint((x=0, y=0))
undefined

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.inflatePoint((x=1, y=2))
undefined

 // rect
(top=1, right=7, bottom=12, left=0, topLeft=(x=0, y=1), bottomRight=(x=7, y=12), width=7, height=11, size=(x=7, y=11), x=0, y=1)

// rect.inflatePoint([object Object])
undefined

 // rect
(top=-1, right=9, bottom=14, left=-2, topLeft=(x=-2, y=-1), bottomRight=(x=9, y=14), width=11, height=15, size=(x=11, y=15), x=-2, y=-1)

// rect.inflatePoint([object Object])
undefined

 // rect
(top=NaN, right=11, bottom=NaN, left=-4, topLeft=(x=-4, y=NaN), bottomRight=(x=11, y=NaN), width=15, height=NaN, size=(x=15, y=NaN), x=-4, y=NaN)


/// intersection

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.intersection()
(top=0, right=0, bottom=0, left=0, topLeft=(x=0, y=0), bottomRight=(x=0, y=0), width=0, height=0, size=(x=0, y=0), x=0, y=0)

 // rect.intersection((x=1, y=3, w=5, h=7))
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.intersection((x=3, y=5, w=7, h=9))
(top=5, right=6, bottom=10, left=3, topLeft=(x=3, y=5), bottomRight=(x=6, y=10), width=3, height=5, size=(x=3, y=5), x=3, y=5)

 // rect.intersection((x=-1, y=-3, w=5, h=7))
(top=3, right=4, bottom=4, left=1, topLeft=(x=1, y=3), bottomRight=(x=4, y=4), width=3, height=1, size=(x=3, y=1), x=1, y=3)

 // rect.intersection((x=30, y=50, w=1, h=1))
(top=0, right=0, bottom=0, left=0, topLeft=(x=0, y=0), bottomRight=(x=0, y=0), width=0, height=0, size=(x=0, y=0), x=0, y=0)

 // rect.intersection([object Object])
(top=5, right=6, bottom=6, left=3, topLeft=(x=3, y=5), bottomRight=(x=6, y=6), width=3, height=1, size=(x=3, y=1), x=3, y=5)

 // rect.intersection([object Object])
(top=0, right=0, bottom=0, left=0, topLeft=(x=0, y=0), bottomRight=(x=0, y=0), width=0, height=0, size=(x=0, y=0), x=0, y=0)


/// intersects

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.intersects()
false

// rect.intersects((x=1, y=3, w=5, h=7))
true

// rect.intersects((x=3, y=5, w=7, h=9))
true

// rect.intersects((x=-1, y=-3, w=5, h=7))
true

// rect.intersects([object Object])
true

// rect.intersects([object Object])
false


/// offset

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.offset()
undefined

 // rect
(top=NaN, right=NaN, bottom=NaN, left=NaN, topLeft=(x=NaN, y=NaN), bottomRight=(x=NaN, y=NaN), width=5, height=7, size=(x=5, y=7), x=NaN, y=NaN)

// rect.offset(1)
undefined

 // rect
(top=NaN, right=7, bottom=NaN, left=2, topLeft=(x=2, y=NaN), bottomRight=(x=7, y=NaN), width=5, height=7, size=(x=5, y=7), x=2, y=NaN)

// rect.offset(1, 2)
undefined

 // rect
(top=5, right=7, bottom=12, left=2, topLeft=(x=2, y=5), bottomRight=(x=7, y=12), width=5, height=7, size=(x=5, y=7), x=2, y=5)

// rect.offset(-3, -4)
undefined

 // rect
(top=-1, right=3, bottom=6, left=-2, topLeft=(x=-2, y=-1), bottomRight=(x=3, y=6), width=5, height=7, size=(x=5, y=7), x=-2, y=-1)

// rect.offset(Infinity, 5)
undefined

 // rect
(top=8, right=Infinity, bottom=15, left=Infinity, topLeft=(x=Infinity, y=8), bottomRight=(x=Infinity, y=15), width=5, height=7, size=(x=5, y=7), x=Infinity, y=8)

// rect.offset(5, NaN)
undefined

 // rect
(top=NaN, right=11, bottom=NaN, left=6, topLeft=(x=6, y=NaN), bottomRight=(x=11, y=NaN), width=5, height=7, size=(x=5, y=7), x=6, y=NaN)

// rect.offset(3, [object Object])
undefined

 // rect
(top=NaN, right=9, bottom=NaN, left=4, topLeft=(x=4, y=NaN), bottomRight=(x=9, y=NaN), width=5, height=7, size=(x=5, y=7), x=4, y=NaN)


/// offsetPoint

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.offsetPoint()
undefined

 // rect
(top=NaN, right=NaN, bottom=NaN, left=NaN, topLeft=(x=NaN, y=NaN), bottomRight=(x=NaN, y=NaN), width=5, height=7, size=(x=5, y=7), x=NaN, y=NaN)

// rect.offsetPoint((x=0, y=0))
undefined

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

// rect.offsetPoint((x=1, y=2))
undefined

 // rect
(top=5, right=7, bottom=12, left=2, topLeft=(x=2, y=5), bottomRight=(x=7, y=12), width=5, height=7, size=(x=5, y=7), x=2, y=5)

// rect.offsetPoint([object Object])
undefined

 // rect
(top=7, right=9, bottom=14, left=4, topLeft=(x=4, y=7), bottomRight=(x=9, y=14), width=5, height=7, size=(x=5, y=7), x=4, y=7)

// rect.offsetPoint([object Object])
undefined

 // rect
(top=NaN, right=11, bottom=NaN, left=6, topLeft=(x=6, y=NaN), bottomRight=(x=11, y=NaN), width=5, height=7, size=(x=5, y=7), x=6, y=NaN)


/// union

 // rect
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.union()
(top=NaN, right=NaN, bottom=NaN, left=NaN, topLeft=(x=NaN, y=NaN), bottomRight=(x=NaN, y=NaN), width=NaN, height=NaN, size=(x=NaN, y=NaN), x=NaN, y=NaN)

 // rect.union((x=1, y=3, w=5, h=7))
(top=3, right=6, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=10), width=5, height=7, size=(x=5, y=7), x=1, y=3)

 // rect.union((x=3, y=5, w=7, h=9))
(top=3, right=10, bottom=14, left=1, topLeft=(x=1, y=3), bottomRight=(x=10, y=14), width=9, height=11, size=(x=9, y=11), x=1, y=3)

 // rect.union((x=-1, y=-3, w=5, h=7))
(top=-3, right=6, bottom=10, left=-1, topLeft=(x=-1, y=-3), bottomRight=(x=6, y=10), width=7, height=13, size=(x=7, y=13), x=-1, y=-3)

 // rect.union([object Object])
(top=3, right=10, bottom=10, left=1, topLeft=(x=1, y=3), bottomRight=(x=10, y=10), width=9, height=7, size=(x=9, y=7), x=1, y=3)

 // rect.union([object Object])
(top=3, right=6, bottom=NaN, left=1, topLeft=(x=1, y=3), bottomRight=(x=6, y=NaN), width=5, height=NaN, size=(x=5, y=NaN), x=1, y=3)

