1
+ package baaahs.model
2
+
3
+ import baaahs.describe
4
+ import baaahs.geom.Vector3F
5
+ import baaahs.gl.override
6
+ import baaahs.model.PolyLine.Segment
7
+ import ch.tutteli.atrium.api.fluent.en_GB.containsExactly
8
+ import ch.tutteli.atrium.api.verbs.expect
9
+ import org.spekframework.spek2.Spek
10
+
11
+ object GridSpec : Spek({
12
+ describe<Grid > {
13
+ val grid by value {
14
+ Grid (
15
+ "grid",
16
+ columns = 4, rows = 5, columnGap = 1f, rowGap = 1f,
17
+ direction = GridData .Direction .RowsThenColumns ,
18
+ zigZag = true
19
+ )
20
+ }
21
+
22
+ it("calculates segments") {
23
+ expect(grid.segments).containsExactly(
24
+ Segment (Vector3F (0.0, 0.0, 0.0), Vector3F (3.0, 0.0, 0.0), 4),
25
+ Segment (Vector3F (3.0, 1.0, 0.0), Vector3F (0.0, 1.0, 0.0), 4),
26
+ Segment (Vector3F (0.0, 2.0, 0.0), Vector3F (3.0, 2.0, 0.0), 4),
27
+ Segment (Vector3F (3.0, 3.0, 0.0), Vector3F (0.0, 3.0, 0.0), 4),
28
+ Segment (Vector3F (0.0, 4.0, 0.0), Vector3F (3.0, 4.0, 0.0), 4)
29
+ )
30
+ }
31
+
32
+ context("with stagger") {
33
+ override (grid) {
34
+ Grid (
35
+ "grid",
36
+ columns = 4, rows = 5, columnGap = 1f, rowGap = 1f,
37
+ direction = GridData .Direction .RowsThenColumns ,
38
+ zigZag = true, stagger = 2
39
+ )
40
+ }
41
+
42
+ it("calculates segments with stagger") {
43
+ expect(grid.segments).containsExactly(
44
+ Segment (Vector3F (0.0, 0.0, 0.0), Vector3F (3.0, 0.0, 0.0), 4),
45
+ Segment (Vector3F (3.5, 1.0, 0.0), Vector3F (0.5, 1.0, 0.0), 4),
46
+ Segment (Vector3F (0.0, 2.0, 0.0), Vector3F (3.0, 2.0, 0.0), 4),
47
+ Segment (Vector3F (3.5, 3.0, 0.0), Vector3F (0.5, 3.0, 0.0), 4),
48
+ Segment (Vector3F (0.0, 4.0, 0.0), Vector3F (3.0, 4.0, 0.0), 4)
49
+ )
50
+ }
51
+ }
52
+ }
53
+ })
0 commit comments