• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

excessive / cpml / 6132588926

09 Sep 2023 06:38PM UTC coverage: 14.013% (-44.7%) from 58.701%
6132588926

push

github

FatalError42O
fixed Busted support (hopefully)

975 of 6958 relevant lines covered (14.01%)

10.82 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.48
/spec/bound3_spec.lua
1
local bound3      = require "modules.bound3"
5✔
2
local vec3      = require "modules.vec3"
×
3
local DBL_EPSILON = require("modules.constants").DBL_EPSILON
×
4

5
describe("bound3:", function()
×
6
        it("creates an empty bound3", function()
×
7
                local a = bound3()
×
8
                assert.is.equal(0, a.min.x)
×
9
                assert.is.equal(0, a.min.y)
×
10
                assert.is.equal(0, a.min.z)
×
11
                assert.is.equal(0, a.max.x)
×
12
                assert.is.equal(0, a.max.y)
×
13
                assert.is.equal(0, a.max.z)
×
14
        end)
15

16
        it("creates a bound3 from vec3s", function()
×
17
                local a = bound3(vec3(1,2,3), vec3(4,5,6))
×
18
                assert.is.equal(1, a.min.x)
×
19
                assert.is.equal(2, a.min.y)
×
20
                assert.is.equal(3, a.min.z)
×
21
                assert.is.equal(4, a.max.x)
×
22
                assert.is.equal(5, a.max.y)
×
23
                assert.is.equal(6, a.max.z)
×
24
        end)
25

26
        it("creates a bound3 using new()", function()
×
27
                local a = bound3.new(vec3(1,2,3), vec3(4,5,6))
×
28
                assert.is.equal(1, a.min.x)
×
29
                assert.is.equal(2, a.min.y)
×
30
                assert.is.equal(3, a.min.z)
×
31
                assert.is.equal(4, a.max.x)
×
32
                assert.is.equal(5, a.max.y)
×
33
                assert.is.equal(6, a.max.z)
×
34
        end)
35

36
        it("creates a bound3 using at()", function()
×
37
                local a = bound3.at(vec3(4,5,6), vec3(1,2,3))
×
38
                assert.is.equal(1, a.min.x)
×
39
                assert.is.equal(2, a.min.y)
×
40
                assert.is.equal(3, a.min.z)
×
41
                assert.is.equal(4, a.max.x)
×
42
                assert.is.equal(5, a.max.y)
×
43
                assert.is.equal(6, a.max.z)
×
44
        end)
45

46
        it("clones a bound3", function()
×
47
                local a = bound3(vec3(1,2,3), vec3(4,5,6))
×
48
                local b = a:clone()
×
49
                a.max = vec3.new(9,9,9)
×
50
                assert.is.equal(a.min, b.min)
×
51
                assert.is.not_equal(a.max, b.max)
×
52
        end)
53

54
        it("uses bound3 check()", function()
×
55
                local a = bound3(vec3(4,2,6), vec3(1,5,3)):check()
×
56
                assert.is.equal(1, a.min.x)
×
57
                assert.is.equal(2, a.min.y)
×
58
                assert.is.equal(3, a.min.z)
×
59
                assert.is.equal(4, a.max.x)
×
60
                assert.is.equal(5, a.max.y)
×
61
                assert.is.equal(6, a.max.z)
×
62
        end)
63

64
        it("queries a bound3 size", function()
×
65
                local a = bound3(vec3(1,2,3), vec3(4,6,8))
×
66
                local v = a:size()
×
67
                local r = a:radius()
×
68
                assert.is.equal(3, v.x)
×
69
                assert.is.equal(4, v.y)
×
70
                assert.is.equal(5, v.z)
×
71

72
                assert.is.equal(1.5, r.x)
×
73
                assert.is.equal(2, r.y)
×
74
                assert.is.equal(2.5, r.z)
×
75
        end)
76

77
        it("sets a bound3 size", function()
×
78
                local a = bound3(vec3(1,2,3), vec3(4,5,6))
×
79
                local b = a:with_size(vec3(1,1,1))
×
80

81
                assert.is.equal(1, a.min.x)
×
82
                assert.is.equal(2, a.min.y)
×
83
                assert.is.equal(3, a.min.z)
×
84
                assert.is.equal(4, a.max.x)
×
85
                assert.is.equal(5, a.max.y)
×
86
                assert.is.equal(6, a.max.z)
×
87

88
                assert.is.equal(1, b.min.x)
×
89
                assert.is.equal(2, b.min.y)
×
90
                assert.is.equal(3, b.min.z)
×
91
                assert.is.equal(2, b.max.x)
×
92
                assert.is.equal(3, b.max.y)
×
93
                assert.is.equal(4, b.max.z)
×
94
        end)
95

96
        it("queries a bound3 center", function()
×
97
                local a = bound3(vec3(1,2,3), vec3(3,4,5))
×
98
                local v = a:center()
×
99
                assert.is.equal(2, v.x)
×
100
                assert.is.equal(3, v.y)
×
101
                assert.is.equal(4, v.z)
×
102
        end)
103

104
        it("sets a bound3 center", function()
×
105
                local a = bound3(vec3(1,2,3), vec3(3,4,5))
×
106
                local b = a:with_center(vec3(1,1,1))
×
107

108
                assert.is.equal(1, a.min.x)
×
109
                assert.is.equal(2, a.min.y)
×
110
                assert.is.equal(3, a.min.z)
×
111
                assert.is.equal(3, a.max.x)
×
112
                assert.is.equal(4, a.max.y)
×
113
                assert.is.equal(5, a.max.z)
×
114

115
                assert.is.equal(0, b.min.x)
×
116
                assert.is.equal(0, b.min.y)
×
117
                assert.is.equal(0, b.min.z)
×
118
                assert.is.equal(2, b.max.x)
×
119
                assert.is.equal(2, b.max.y)
×
120
                assert.is.equal(2, b.max.z)
×
121
        end)
122

123
        it("sets a bound3 size centered", function()
×
124
                local a = bound3(vec3(1,2,3), vec3(3,4,5))
×
125
                local b = a:with_size_centered(vec3(4,4,4))
×
126

127
                assert.is.equal(1, a.min.x)
×
128
                assert.is.equal(2, a.min.y)
×
129
                assert.is.equal(3, a.min.z)
×
130
                assert.is.equal(3, a.max.x)
×
131
                assert.is.equal(4, a.max.y)
×
132
                assert.is.equal(5, a.max.z)
×
133

134
                assert.is.equal(0, b.min.x)
×
135
                assert.is.equal(1, b.min.y)
×
136
                assert.is.equal(2, b.min.z)
×
137
                assert.is.equal(4, b.max.x)
×
138
                assert.is.equal(5, b.max.y)
×
139
                assert.is.equal(6, b.max.z)
×
140
        end)
141

142
        it("insets a bound3", function()
×
143
                local a = bound3(vec3(1,2,3), vec3(5,10,11))
×
144
                local b = a:inset(vec3(1,2,3))
×
145

146
                assert.is.equal(1, a.min.x)
×
147
                assert.is.equal(2, a.min.y)
×
148
                assert.is.equal(3, a.min.z)
×
149
                assert.is.equal(5, a.max.x)
×
150
                assert.is.equal(10, a.max.y)
×
151
                assert.is.equal(11, a.max.z)
×
152

153
                assert.is.equal(2, b.min.x)
×
154
                assert.is.equal(4, b.min.y)
×
155
                assert.is.equal(6, b.min.z)
×
156
                assert.is.equal(4, b.max.x)
×
157
                assert.is.equal(8, b.max.y)
×
158
                assert.is.equal(8, b.max.z)
×
159
        end)
160

161
        it("outsets a bound3", function()
×
162
                local a = bound3(vec3(1,2,3), vec3(5,6,7))
×
163
                local b = a:outset(vec3(1,2,3))
×
164

165
                assert.is.equal(1, a.min.x)
×
166
                assert.is.equal(2, a.min.y)
×
167
                assert.is.equal(3, a.min.z)
×
168
                assert.is.equal(5, a.max.x)
×
169
                assert.is.equal(6, a.max.y)
×
170
                assert.is.equal(7, a.max.z)
×
171

172
                assert.is.equal(0, b.min.x)
×
173
                assert.is.equal(0, b.min.y)
×
174
                assert.is.equal(0, b.min.z)
×
175
                assert.is.equal(6, b.max.x)
×
176
                assert.is.equal(8, b.max.y)
×
177
                assert.is.equal(10, b.max.z)
×
178
        end)
179

180
        it("offsets a bound3", function()
×
181
                local a = bound3(vec3(1,2,3), vec3(5,6,7))
×
182
                local b = a:offset(vec3(1,2,3))
×
183

184
                assert.is.equal(1, a.min.x)
×
185
                assert.is.equal(2, a.min.y)
×
186
                assert.is.equal(3, a.min.z)
×
187
                assert.is.equal(5, a.max.x)
×
188
                assert.is.equal(6, a.max.y)
×
189
                assert.is.equal(7, a.max.z)
×
190

191
                assert.is.equal(2, b.min.x)
×
192
                assert.is.equal(4, b.min.y)
×
193
                assert.is.equal(6, b.min.z)
×
194
                assert.is.equal(6, b.max.x)
×
195
                assert.is.equal(8, b.max.y)
×
196
                assert.is.equal(10, b.max.z)
×
197
        end)
198

199
        it("tests for points inside bound3", function()
×
200
                local a = bound3(vec3(1,2,3), vec3(4,5,6))
×
201

202
                assert.is_true(a:contains(vec3(1,2,3)))
×
203
                assert.is_true(a:contains(vec3(4,5,6)))
×
204
                assert.is_true(a:contains(vec3(2,3,4)))
×
205
                assert.is_not_true(a:contains(vec3(0,3,4)))
×
206
                assert.is_not_true(a:contains(vec3(5,3,4)))
×
207
                assert.is_not_true(a:contains(vec3(2,1,4)))
×
208
                assert.is_not_true(a:contains(vec3(2,6,4)))
×
209
                assert.is_not_true(a:contains(vec3(2,3,2)))
×
210
                assert.is_not_true(a:contains(vec3(2,3,7)))
×
211
        end)
212

213
        it("rounds a bound3", function()
×
214
                local a = bound3(vec3(1.1,1.9,3), vec3(3.9,5.1,6)):round()
×
215

216
                assert.is.equal(1, a.min.x)
×
217
                assert.is.equal(2, a.min.y)
×
218
                assert.is.equal(3, a.min.z)
×
219
                assert.is.equal(4, a.max.x)
×
220
                assert.is.equal(5, a.max.y)
×
221
                assert.is.equal(6, a.max.z)
×
222
        end)
223

224
        it("extends a bound3 with a point", function()
×
225
                local min = vec3(1,2,6)
×
226
                local max = vec3(4,5,9)
×
227
                local downright = vec3(8,8,10)
×
228
                local downleft = vec3(-4,8,10)
×
229
                local top = vec3(2, 0, 7)
×
230

231
                local a = bound3(min, max)
×
232
                local temp
233

234
                temp = a:extend(downright)
×
235
                assert.is_true(a.min == min and a.max == max)
×
236
                assert.is_true(temp.min == min and temp.max == downright)
×
237
                temp = a:extend(downleft)
×
238
                assert.is_true(temp.min == vec3(-4,2,6) and temp.max == vec3(4,8,10))
×
239
                temp = a:extend(top)
×
240
                assert.is_true(temp.min == vec3(1,0,6) and temp.max == max)
×
241
        end)
242

243
        it("extends a bound with another bound", function()
×
244
                local min = vec3(1,2,3)
×
245
                local max = vec3(4,5,6)
×
246
                local leftexpand = bound3.new(vec3(0,0,4), vec3(1.5,6,5))
×
247
                local rightexpand = bound3.new(vec3(1.5,0,1), vec3(5,6,7))
×
248

249
                local a = bound3(min, max)
×
250
                local temp
251

252
                temp = a:extend_bound(leftexpand)
×
253
                assert.is_equal(temp.min, vec3(0,0,3))
×
254
                assert.is_equal(temp.max, vec3(4,6,6))
×
255
                temp = temp:extend_bound(rightexpand)
×
256
                assert.is_equal(temp.min, vec3(0,0,1))
×
257
                assert.is_equal(temp.max, vec3(5,6,7))
×
258
        end)
259

260
        it("checks for bound3.zero", function()
×
261
                assert.is.equal(0, bound3.zero.min.x)
×
262
                assert.is.equal(0, bound3.zero.min.y)
×
263
                assert.is.equal(0, bound3.zero.min.z)
×
264
                assert.is.equal(0, bound3.zero.max.x)
×
265
                assert.is.equal(0, bound3.zero.max.y)
×
266
                assert.is.equal(0, bound3.zero.max.z)
×
267
        end)
268
end)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc