z_mirror/flib

git clone https://git.raiguard.me/z_mirror/flib

Caleb HeuerMerge remote-tracking branch 'github/master' into flibbd1597d

trunk
2.2 KiB85 linesraw
1local position = require("__flib__.position")
2
3local res = position.add({ 1, 3 }, { -2, 1 })
4assert(res[1] == -1)
5assert(res[2] == 4)
6
7local res = position.ceil({ 1.2, 1.1 })
8assert(res[1] == 2)
9assert(res[2] == 2)
10
11local res = position.from_chunk({ 1, 3 })
12assert(res[1] == 32)
13assert(res[2] == 96)
14
15assert(position.distance({ 1, 3 }, { 2, 4 }) == math.sqrt(2))
16assert(position.distance_squared({ 1, 3 }, { 2, 4 }) == 2)
17
18local res = position.div({ 1, 2 }, { 5, 3 })
19assert(res[1] == 0.2)
20assert(res[2] == (2 / 3))
21local res = position.div({ x = 1, y = 2 }, { x = 5, y = 3 })
22assert(res.x == 0.2)
23assert(res.y == (2 / 3))
24
25local res = position.ensure_explicit({ x = 1, y = 2 })
26assert(res.x == 1)
27assert(res.y == 2)
28local res = position.ensure_explicit({ 1, 2 })
29assert(res.x == 1)
30assert(res.y == 2)
31
32local res = position.ensure_short({ x = 1, y = 2 })
33assert(res[1] == 1)
34assert(res[2] == 2)
35local res = position.ensure_short({ 1, 2 })
36assert(res[1] == 1)
37assert(res[2] == 2)
38
39assert(position.eq({ 1, 1 }, { 1, 1 }))
40assert(not position.eq({ 1, 3 }, { 1, 1 }))
41assert(not position.eq({ 3, 3 }, { 1, 1 }))
42
43local res = position.floor({ 1.1, 2.2 })
44assert(res[1] == 1)
45assert(res[2] == 2)
46
47local res = position.from_chunk({ 1, 2 })
48assert(res[1] == 32)
49assert(res[2] == 64)
50
51assert(position.le({ 1, 1 }, { 1, 1 }))
52assert(position.le({ 1, 0 }, { 1, 1 }))
53assert(position.le({ 0, 0 }, { 1, 1 }))
54assert(not position.le({ 2, 1 }, { 1, 1 }))
55assert(not position.le({ 2, 2 }, { 1, 1 }))
56
57assert(position.lt({ 0, 0 }, { 1, 1 }))
58assert(not position.lt({ 1, 1 }, { 1, 1 }))
59assert(not position.lt({ 1, 0 }, { 1, 1 }))
60assert(not position.lt({ 2, 1 }, { 1, 1 }))
61assert(not position.lt({ 2, 2 }, { 1, 1 }))
62
63local res = position.mod({ 4.5, 3 }, { 3, 3 })
64assert(res[1] == 1.5)
65assert(res[2] == 0)
66
67local res = position.mul({ 4.5, 3 }, { 3, 3 })
68assert(res[1] == 13.5)
69assert(res[2] == 9)
70
71local res = position.sub({ 4.5, 3 }, { 3, 3 })
72assert(res[1] == 1.5)
73assert(res[2] == 0)
74
75local res = position.pow({ 3, 3 }, { 3, 2 })
76assert(res[1] == 27)
77assert(res[2] == 9)
78
79local res = position.to_chunk({ 100, 150 })
80assert(res[1] == 3)
81assert(res[2] == 4)
82
83local res = position.to_tile({ 3.2, 3.5 })
84assert(res[1] == 3)
85assert(res[2] == 3)