xrvg 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/test/test_color.rb CHANGED
@@ -10,6 +10,23 @@ class ColorTest < Test::Unit::TestCase
10
10
  assert_equal( 0.2, color.g )
11
11
  assert_equal( 0.3, color.b )
12
12
  assert_equal( 0.4, color.a )
13
+
14
+ assert_equal( Color[0.5, 0.2, 0.3, 0.4], color.r(0.5) )
15
+ assert_equal( Color[0.1, 0.5, 0.3, 0.4], color.g(0.5) )
16
+ assert_equal( Color[0.1, 0.2, 0.5, 0.4], color.b(0.5) )
17
+ assert_equal( Color[0.1, 0.2, 0.3, 0.5], color.a(0.5) )
18
+
19
+ assert_equal( 0.0, Color.red.hue )
20
+ assert_equal( Color.hsva( 0.1, 1.0, 1.0, 1.0 ), Color.red.hue( 0.1 ) )
21
+
22
+ assert_equal( 1.0, Color.red.saturation )
23
+ assert_equal( Color.hsva( 0.0, 0.1, 1.0, 1.0 ), Color.red.saturation( 0.1 ) )
24
+
25
+ assert_equal( 1.0, Color.red.value )
26
+ assert_equal( Color.hsva( 0.0, 1.0, 0.1, 1.0 ), Color.red.value( 0.1 ) )
27
+
28
+ assert_equal( 0.5, Color.red.lightness )
29
+ assert_equal( Color.hsla( 0.0, 1.0, 0.1, 1.0 ), Color.red.lightness( 0.1 ) )
13
30
  end
14
31
 
15
32
  def test_colors
@@ -52,6 +69,8 @@ class ColorTest < Test::Unit::TestCase
52
69
  assert_equal( black, Color.hsva( 0.8, 1.0, 0.0, 1.0 ) )
53
70
  assert_equal( black, Color.hsva( 1.0, 1.0, 0.0, 1.0 ) )
54
71
  assert_equal( [0.0, 0.0, 0.0, 1.0], black.hsva )
72
+ assert_equal( [2.0/3.0, 1.0, 1.0, 1.0], Color.blue.hsva )
73
+ assert_equal( [1.0/3.0, 1.0, 1.0, 1.0], Color.green.hsva )
55
74
  end
56
75
 
57
76
  def test_hsl
@@ -64,6 +83,7 @@ class ColorTest < Test::Unit::TestCase
64
83
  assert_equal( white, Color.hsla( 2.0, 1.0, 1.0, 1.0 ) )
65
84
  assert_equal( white, Color.hsla( 0.6, 1.0, 1.0, 1.0 ) )
66
85
  assert_equal( [0.0, 0.0, 0.0, 1.0], black.hsla )
86
+ assert_equal( 0.0, Color[0.9,0.8,0.8,1.0].hsla[0] )
67
87
  end
68
88
 
69
89
 
@@ -119,7 +139,22 @@ class PaletteTest < Test::Unit::TestCase
119
139
  palette.interpoltype = :linear
120
140
  assert_equal( :linear, palette.interpoltype )
121
141
  end
122
-
142
+
143
+ def test_hsv
144
+ palette = Palette[ :colorlist, [ 0.0, Color.hsva( 0.5, 0.5, 0.5, 0.5), 1.0, Color.hsva( 0.6, 0.6, 0.6, 0.6 ) ], :interpoldomain, :hsv ]
145
+ assert_equal( Color.hsva( 0.55, 0.55, 0.55, 0.55), palette.sample( 0.5 ) )
146
+ end
147
+
148
+ def test_hsl
149
+ palette = Palette[ :colorlist, [ 0.0, Color.hsla( 0.5, 0.5, 0.5, 0.5), 1.0, Color.hsla( 0.6, 0.6, 0.6, 0.6 ) ], :interpoldomain, :hsl ]
150
+ assert_equal( Color.hsla( 0.55, 0.55, 0.55, 0.55), palette.sample( 0.5 ) )
151
+ end
152
+
153
+ def test_error
154
+ assert_raise(RuntimeError) {Palette[ :colorlist, [ 0.0, Color.hsla( 0.5, 0.5, 0.5, 0.5), 1.0, Color.hsla( 0.6, 0.6, 0.6, 0.6 ) ], :interpoldomain, :toto ]}
155
+ end
156
+
157
+
123
158
  end
124
159
 
125
160
  class GradientTest < Test::Unit::TestCase
@@ -0,0 +1,42 @@
1
+ require 'test/unit'
2
+ require 'xrvg'
3
+ include XRVG
4
+
5
+
6
+ class V2DExtTest < Test::Unit::TestCase
7
+
8
+ def test_isLeft
9
+ p0 = V2D::O
10
+ p1 = V2D::X
11
+ assert_equal( :on, V2D[ 0.5, 0.0].isLeft( p0, p1 ) )
12
+ assert_equal( :left, V2D[ 0.5, 0.1].isLeft( p0, p1 ) )
13
+ assert_equal( :right, V2D[ 0.5, -0.1].isLeft( p0, p1 ) )
14
+ end
15
+ end
16
+
17
+
18
+ class V2DSTest < Test::Unit::TestCase
19
+
20
+ def test_intersect
21
+ assert_equal( true, V2DS[ V2D[ 0.0, 0.5 ], V2D[ 1.0, -0.5 ] ].intersect?( V2DS[ V2D::X, V2D::O ] ))
22
+ assert_equal( false, V2DS[ V2D[ 0.0, 0.5 ], V2D[ 1.0, -0.5 ] ].intersect?( V2DS[V2D[ 0.0, 1.0 ], V2D[ 1.0, 1.0 ] ]) )
23
+ assert_equal( true, V2DS[ V2D::X, V2D::O ].intersect?( V2DS[ V2D::X, V2D::O ] ) )
24
+ assert_equal( true, V2DS[ V2D::X, V2D::O ].intersect?( V2DS[ V2D::Y, V2D::O ] ) )
25
+ assert_equal( false, V2DS[ V2D::X, V2D::O ].intersect?( V2DS[ V2D::Y + V2D::X, V2D::O + V2D::Y ] ) )
26
+ end
27
+
28
+ def test_intersection
29
+ assert_equal( nil, V2DS[ V2D[ 0.0, 0.5 ], V2D[ 1.0, -0.5 ] ].intersection( V2DS[V2D[ 0.0, 1.0 ], V2D[ 1.0, 1.0 ] ]) )
30
+ assert_equal( V2D[0.5,0.0], V2DS[ V2D[ 0.0, 0.5 ], V2D[ 1.0, -0.5 ] ].intersection( V2DS[ V2D::X, V2D::O ] ))
31
+ end
32
+
33
+ def test_intersections
34
+ c1 = Bezier.raw( V2D[0.0, 0.0], V2D[1.0, 0.0], V2D[0.0, 1.0], V2D[1.0, 1.0] )
35
+ c2 = LinearBezier[:support, [V2D::O + V2D::Y, V2D::X]]
36
+ [[0.5, 0.5], Bezier.intersections( c1, c2 )].forzip do |ve, vr|
37
+ assert( ve.fequal?( vr ) )
38
+ end
39
+ c2 = LinearBezier[:support, [V2D::O, V2D::X + V2D::Y]]
40
+ # assert_equal( [0.0, 0.0, 0.5, 0.5, 1.0, 1.0], Bezier.intersections( c1, c2 ) )
41
+ end
42
+ end
data/test/test_sample.rb CHANGED
@@ -4,11 +4,6 @@ include XRVG
4
4
 
5
5
  class STest < Test::Unit::TestCase
6
6
 
7
- def test_sample
8
- # assert_equal( [0.0, 0.571428571428571, 0.857142857142857, 1.0], (0.0..1.0).geofull(2.0).samples( 4 ) )
9
- assert_equal( [0.0, 0.5, 0.75], [(0.0..0.75)].geofull(2.0).samples( 3 ) )
10
- end
11
-
12
7
  def test_sin
13
8
  [[0.0,0.0], (0.0..1.0).sin().samples( 2 )].forzip do |exp, real|
14
9
  assert( exp.fequal?( real ) )
@@ -25,4 +20,60 @@ class STest < Test::Unit::TestCase
25
20
  end
26
21
  end
27
22
 
23
+ class SyncTest < Test::Unit::TestCase
24
+
25
+ def test_samples
26
+ assert_equal( [0.0, 1.0, 0.5, 0.5, 1.0, 0.0], SyncS[(0.0..1.0), (1.0..0.0)].samples(3))
27
+ end
28
+
29
+ def test_samples2
30
+ result = []
31
+ SyncS[(0.0..1.0), (1.0..0.0)].samples(3) {|v1,v2| result += [v1,v2] }
32
+ assert_equal( [0.0, 1.0, 0.5, 0.5, 1.0, 0.0], result )
33
+ end
34
+
35
+ def test_sample
36
+ assert_equal( [0.0, 0.5, 0.75], SyncS[(0.0..0.75)].geofull(2.0).samples( 3 ) )
37
+ assert_equal( [0,1,0], SyncS[ [0,1] ].samples( 3 ) )
38
+ end
39
+
40
+ end
41
+
42
+ class RollerTest < Test::Unit::TestCase
43
+
44
+ def test_roller
45
+ assert_equal( ["a", "b", "a"], Roller["a","b"].samples(3))
46
+
47
+ rand = Roller["a","b"].rand
48
+ assert( ["a","b"].include?( rand ) )
49
+ end
50
+
51
+ def test_next
52
+ roller = Roller[0,1]
53
+ result = []
54
+ 3.times do
55
+ result << roller.next
56
+ end
57
+ assert_equal( [0,1,0], result )
58
+ end
59
+
60
+ end
61
+
62
+ class RandomTest < Test::Unit::TestCase
63
+
64
+ def test_random
65
+ result = Range.O.random(:mindiff,0.0).samples( 3 )
66
+ # what kinf of test ?
67
+ assert_raise(RuntimeError) {Range.O.random(:mindiff,6.0).samples( 3 )}
68
+ assert_equal( [0.0,1.0,2.0], (0.0..2.0).random(:mindiff,0.5,:sort,true).samples( 3 ) )
69
+ assert_not_equal( [0.0, 1.0], (0.0..1.0).random.samples(2))
70
+ assert_equal( [0.0, 0.5, 1.0], (0.0..1.0).random(:mindiff,0.5,:sort,true).samples(3))
71
+ assert_raise(RuntimeError) {(0.0..1.0).random(:mindiff,0.6).samples(3)}
72
+
73
+ result = Range.O.random(:mindiff,0.0, :withboundaries, true).samples( 3 )
74
+ assert_equal( 0.0, result[0] )
75
+ assert_equal( 1.0, result[-1] )
76
+ end
77
+
78
+ end
28
79
 
data/test/test_spiral.rb CHANGED
@@ -18,5 +18,13 @@ class SpiralTest < Test::Unit::TestCase
18
18
  assert_raise(NotImplementedError) {GSpiral.new.maxangle( 0.0,0.0,0.0)}
19
19
  end
20
20
 
21
+ def test_tangent
22
+ spiral = SpiralLog[]
23
+ tangent = SpiralLog.tangent( V2D::O, V2D::X, 1.0 )
24
+ newspiral = SpiralLog.fromtangent( tangent, V2D::X, 1.0 )
25
+ assert_equal( spiral.point( 0.0 ), newspiral.point( 0.0 ) )
26
+ assert_equal( spiral.point( 1.0 ), newspiral.point( 1.0 ) )
27
+ end
28
+
21
29
  end
22
30
 
data/test/test_utils.rb CHANGED
@@ -17,16 +17,6 @@ end
17
17
 
18
18
  class ArrayTest < Test::Unit::TestCase
19
19
 
20
- def test_samples
21
- assert_equal( [0.0, 1.0, 0.5, 0.5, 1.0, 0.0], [(0.0..1.0), (1.0..0.0)].samples(3))
22
- end
23
-
24
- def test_samples2
25
- result = []
26
- [(0.0..1.0), (1.0..0.0)].samples(3) {|v1,v2| result += [v1,v2] }
27
- assert_equal( [0.0, 1.0, 0.5, 0.5, 1.0, 0.0], result )
28
- end
29
-
30
20
  def test_pairs
31
21
  a = [ 1, 2, 3]
32
22
  b = Array.new
@@ -122,10 +112,6 @@ class ArrayTest < Test::Unit::TestCase
122
112
  assert_equal( (1.0..2.0), [V2D[2.0,1.0], V2D[1.0,2.0]].range( :x ) )
123
113
  end
124
114
 
125
- def test_sample
126
- assert_equal( [0.0, 0.5, 0.75], [(0.0..0.75)].geofull(2.0).samples( 3 ) )
127
- end
128
-
129
115
  def test_choice
130
116
  assert_equal( 0.0, [0.0,0.0,0.0].choice )
131
117
  end
@@ -187,16 +173,6 @@ class RangeTest < Test::Unit::TestCase
187
173
  assert_not_equal( [0.0, 1.0], (0.0..1.0).ssort.random.samples(2))
188
174
  end
189
175
 
190
- def test_random
191
- result = Range.O.random(:mindiff,0.0).samples( 3 )
192
- # what kinf of test ?
193
- assert_raise(RuntimeError) {Range.O.random(:mindiff,6.0).samples( 3 )}
194
- assert_equal( [0.0,1.0,2.0], (0.0..2.0).random(:mindiff,0.5,:sort,true).samples( 3 ) )
195
- assert_not_equal( [0.0, 1.0], (0.0..1.0).random.samples(2))
196
- assert_equal( [0.0, 0.5, 1.0], (0.0..1.0).random(:mindiff,0.5,:sort,true).samples(3))
197
- assert_raise(RuntimeError) {(0.0..1.0).random(:mindiff,0.6).samples(3)}
198
- end
199
-
200
176
  def test_shuffle
201
177
  assert_not_equal( [0.0, 0.25, 0.5, 0.75, 1.0], (0.0..1.0).shuffle.samples(5))
202
178
  assert_equal( [0.0, 0.25, 0.5, 0.75, 1.0], (0.0..1.0).ssort.shuffle.samples(5))
@@ -342,14 +318,7 @@ class SampleTest < Test::Unit::TestCase
342
318
 
343
319
  def test_class_sample
344
320
  s = SampleClass.new
345
- assert_equal( ["a0.0", "b0.0", "a0.5", "b0.5", "a1.0", "b1.0"], [s.filter(:sampleA), s.filter(:sampleB)].samples(3))
346
- end
347
-
348
- def test_roller
349
- assert_equal( ["a", "b", "a"], Roller["a","b"].samples(3))
350
-
351
- rand = Roller["a","b"].rand
352
- assert( ["a","b"].include?( rand ) )
321
+ assert_equal( ["a0.0", "b0.0", "a0.5", "b0.5", "a1.0", "b1.0"], SyncS[s.filter(:sampleA), s.filter(:sampleB)].samples(3))
353
322
  end
354
323
 
355
324
  def test_random_split
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: xrvg
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.7
7
- date: 2008-08-24 00:00:00 +02:00
6
+ version: 0.0.8
7
+ date: 2008-08-25 00:00:00 +02:00
8
8
  summary: Ruby vector graphics library
9
9
  require_paths:
10
10
  - lib
@@ -31,12 +31,28 @@ authors:
31
31
  files:
32
32
  - Rakefile
33
33
  - LICENCE
34
+ - lib/bezier.rb
35
+ - lib/bezierbuilders.rb
36
+ - lib/beziermotifs.rb
37
+ - lib/bezierspline.rb
38
+ - lib/beziertools.rb
39
+ - lib/color.rb
40
+ - lib/fitting.rb
41
+ - lib/frame.rb
34
42
  - lib/geometry2D.rb
43
+ - lib/geovariety.rb
44
+ - lib/interbezier.rb
35
45
  - lib/interpolation.rb
46
+ - lib/intersection.rb
36
47
  - lib/parametriclength.rb
48
+ - lib/render.rb
37
49
  - lib/samplation.rb
50
+ - lib/shape.rb
51
+ - lib/spiral.rb
52
+ - lib/style.rb
38
53
  - lib/trace.rb
39
54
  - lib/utils.rb
55
+ - lib/xrvg.rb
40
56
  - examples/arciterate1.rb
41
57
  - examples/arcrecurse1.rb
42
58
  - examples/arcrecurse2.rb
@@ -88,6 +104,7 @@ test_files:
88
104
  - test/test_geovariety.rb
89
105
  - test/test_interbezier.rb
90
106
  - test/test_interpolation.rb
107
+ - test/test_intersection.rb
91
108
  - test/test_parametric_length.rb
92
109
  - test/test_render.rb
93
110
  - test/test_sample.rb