gosling 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/spec/polygon_spec.rb CHANGED
@@ -13,17 +13,64 @@ describe Gosling::Polygon do
13
13
  end
14
14
 
15
15
  describe '#set_vertices' do
16
- it 'assigns new vertices' do
16
+ it 'accepts an array of Vectors' do
17
17
  vertices = [
18
18
  Snow::Vec3[ 1, 0, 1],
19
19
  Snow::Vec3[ 0, 1, 1],
20
20
  Snow::Vec3[-1, 0, 1],
21
- Snow::Vec3[ 0, -1, 1],
21
+ Snow::Vec3[ 0, -1, 1]
22
22
  ]
23
23
 
24
24
  polygon = Gosling::Polygon.new(@window)
25
- polygon.set_vertices(vertices)
26
- expect(polygon.get_vertices).to be == vertices
25
+ expect { polygon.set_vertices(vertices) }.not_to raise_error
26
+ expect(polygon.get_vertices.length).to eq(vertices.length)
27
+ vertices.each_index do |i|
28
+ expect(polygon.get_vertices[i].x).to eq(vertices[i].x)
29
+ expect(polygon.get_vertices[i].y).to eq(vertices[i].y)
30
+ end
31
+
32
+ vertices = [
33
+ Snow::Vec2[ 1, 0],
34
+ Snow::Vec2[ 0, 1],
35
+ Snow::Vec2[-1, 0]
36
+ ]
37
+
38
+ expect { polygon.set_vertices(vertices) }.not_to raise_error
39
+ expect(polygon.get_vertices.length).to eq(vertices.length)
40
+ vertices.each_index do |i|
41
+ expect(polygon.get_vertices[i].x).to eq(vertices[i].x)
42
+ expect(polygon.get_vertices[i].y).to eq(vertices[i].y)
43
+ end
44
+ end
45
+
46
+ it 'accepts an array of arrays of numbers' do
47
+ vertices = [
48
+ [ 1, 0, 1],
49
+ [ 0, 1, 1],
50
+ [-1, 0, 1]
51
+ ]
52
+
53
+ polygon = Gosling::Polygon.new(@window)
54
+ expect { polygon.set_vertices(vertices) }.not_to raise_error
55
+ expect(polygon.get_vertices.length).to eq(vertices.length)
56
+ vertices.each_index do |i|
57
+ expect(polygon.get_vertices[i].x).to eq(vertices[i][0])
58
+ expect(polygon.get_vertices[i].y).to eq(vertices[i][1])
59
+ end
60
+
61
+ vertices = [
62
+ [ 1, 0],
63
+ [ 0, 1],
64
+ [-1, 0],
65
+ [ 0, -1]
66
+ ]
67
+
68
+ expect { polygon.set_vertices(vertices) }.not_to raise_error
69
+ expect(polygon.get_vertices.length).to eq(vertices.length)
70
+ vertices.each_index do |i|
71
+ expect(polygon.get_vertices[i].x).to eq(vertices[i][0])
72
+ expect(polygon.get_vertices[i].y).to eq(vertices[i][1])
73
+ end
27
74
  end
28
75
 
29
76
  it 'raises an error if the parameter is not an array' do
@@ -31,14 +78,12 @@ describe Gosling::Polygon do
31
78
  expect { polygon.set_vertices("foo") }.to raise_error(ArgumentError)
32
79
  end
33
80
 
34
- it 'raises an error if the parameter array contains non-vectors' do
81
+ it 'raises an error if the parameter array does not contains vectors or equivalents' do
35
82
  vertices = [
36
- [ 1, 0, 1],
37
- [ 0, 1, 1],
38
- [-1, 0, 1],
39
- [ 0, -1, 1],
83
+ ['21', '3'],
84
+ ['7', '-3'],
85
+ ['4.212', '0.0']
40
86
  ]
41
-
42
87
  polygon = Gosling::Polygon.new(@window)
43
88
  expect { polygon.set_vertices(vertices) }.to raise_error(ArgumentError)
44
89
  end
@@ -53,12 +98,12 @@ describe Gosling::Polygon do
53
98
  expect { polygon.set_vertices(vertices) }.to raise_error(ArgumentError)
54
99
  end
55
100
 
56
- it 'raises an error if any vertices in the parameter array are not length 3' do
101
+ it 'raises an error if any vertices in the parameter array are not at least length 2' do
57
102
  vertices = [
58
103
  Snow::Vec3[ 1, 0, 1],
59
104
  Snow::Vec3[ 0, 1, 0],
60
105
  Snow::Vec2[-1, 0],
61
- Snow::Vec3[ 0, -1, 3],
106
+ [0],
62
107
  ]
63
108
 
64
109
  polygon = Gosling::Polygon.new(@window)
@@ -122,6 +122,12 @@ describe Gosling::Transformable do
122
122
  tf.rotation = r
123
123
  expect(tf.rotation).to be == r
124
124
  end
125
+
126
+ it 'does not allow non-finite floats' do
127
+ tf = TransformableThing.new
128
+ expect { tf.rotation = Float::NAN }.to raise_error(ArgumentError)
129
+ expect { tf.rotation = Float::INFINITY }.to raise_error(ArgumentError)
130
+ end
125
131
  end
126
132
 
127
133
  describe '#set_translation' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gosling
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Amos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-13 00:00:00.000000000 Z
11
+ date: 2018-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gosu