xrvg 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,75 +2,88 @@ require 'test/unit'
2
2
  require 'geometry2D.rb'
3
3
 
4
4
  # Test class
5
- class VectorTest < Test::Unit::TestCase
5
+ class V2DTest < Test::Unit::TestCase
6
6
 
7
7
  def test_indice
8
- s = Vector[0,1]
9
- assert_equal(1, s[1])
10
- assert_equal(0, s[0])
8
+ s = V2D[0,1]
9
+ assert_equal(1, s.y)
10
+ assert_equal(0, s.x)
11
11
  end
12
12
 
13
13
  def test_add
14
- s = Vector[0,1]
15
- t = Vector[2,3]
16
- assert_equal(Vector[2,4], s + t)
14
+ s = V2D[0,1]
15
+ t = V2D[2,3]
16
+ assert_equal(V2D[2,4], s + t)
17
17
  end
18
18
 
19
19
  def test_norm
20
- assert_equal(Vector[0,1], Vector[0,2].norm)
20
+ assert_equal(V2D[0,1], V2D[0,2].norm)
21
21
  end
22
22
 
23
23
  def test_angle
24
- assert_equal(0.0, Vector[0,0].angle)
25
- assert_equal(0.0, Vector[1,0].angle)
26
- assert_equal(Math::PI * 0.5, Vector[0,1].angle)
27
- assert_equal(-Math::PI * 0.5, Vector[0,-1].angle)
24
+ assert_equal(0.0, V2D[0,0].angle)
25
+ assert_equal(0.0, V2D[1,0].angle)
26
+ assert_equal(Math::PI * 0.5, V2D[0,1].angle)
27
+ assert_equal(-Math::PI * 0.5, V2D[0,-1].angle)
28
28
  end
29
29
 
30
30
  def test_mean
31
- assert_equal(Vector[0,1], (Vector[0,0]..Vector[0,2]).middle)
31
+ assert_equal(V2D[0,1], (V2D[0,0]..V2D[0,2]).middle)
32
32
  end
33
33
 
34
34
  def test_length
35
- assert_equal(1,Vector[0,1].length)
35
+ assert_equal(1,V2D[0,1].length)
36
36
  end
37
37
 
38
38
  def test_interpol
39
- assert_equal(Vector[0.2,1.4], (Vector[0.0, 1.0]..Vector[1.0, 3.0]).sample( 0.2 ))
39
+ assert_equal(V2D[0.2,1.4], (V2D[0.0, 1.0]..V2D[1.0, 3.0]).sample( 0.2 ))
40
40
  end
41
41
 
42
42
  def test_createwithpoints
43
43
 
44
- assert_equal(Vector[1,1], Point[1,1] - Point[0,0])
44
+ assert_equal(V2D[1,1], V2D[1,1] - V2D[0,0])
45
45
 
46
46
  end
47
47
 
48
48
  def test_ortho
49
- assert_equal(Vector[-0.6,0.5],
50
- Vector[0.5,0.6].ortho)
49
+ assert_equal(V2D[-0.6,0.5],
50
+ V2D[0.5,0.6].ortho)
51
51
  end
52
52
 
53
53
  def test_reverse
54
- assert_equal(Vector[-0.6,-0.5],
55
- Vector[0.6,0.5].reverse)
54
+ assert_equal(V2D[-0.6,-0.5],
55
+ V2D[0.6,0.5].reverse)
56
56
  end
57
57
 
58
58
  def test_viewbox
59
59
  assert_equal( [1.0, 1.0, 2.0, 2.0],
60
- Point.viewbox( [Point[1.0, 2.0], Point[2.0, 1.0]] ))
60
+ V2D.viewbox( [V2D[1.0, 2.0], V2D[2.0, 1.0]] ))
61
61
  end
62
62
 
63
63
  def test_size
64
64
  assert_equal( [1.0, 1.0],
65
- Point.size( [Point[1.0, 2.0], Point[2.0, 1.0]] ))
65
+ V2D.size( [V2D[1.0, 2.0], V2D[2.0, 1.0]] ))
66
66
  end
67
67
 
68
68
  def test_operation_sequences
69
- assert_equal(Vector[0.0,1.0],
70
- Vector[1.0,0.0].norm.ortho)
69
+ assert_equal(V2D[0.0,1.0],
70
+ V2D[1.0,0.0].norm.ortho)
71
71
  end
72
72
 
73
73
  def test_inner_product
74
- assert_equal( 1.0, Vector[1.0, 0.0].inner_product( Vector[1.0,1.0] ) )
74
+ assert_equal( 1.0, V2D[1.0, 0.0].inner_product( V2D[1.0,1.0] ) )
75
+ end
76
+
77
+ def test_vequal
78
+ assert( V2D.vequal?( V2D::O, V2D::X * 0.0 ) )
79
+ assert( V2D.vequal?( V2D::O, V2D::O + V2D::X * 0.01, 0.1 ) )
80
+ assert_equal( false, V2D.vequal?( V2D::O, V2D::O + V2D::X * 0.01, 0.001 ) )
81
+ end
82
+
83
+ def test_pointer
84
+ v = V2D[1.0,2.0]
85
+ a = v
86
+ a.x = 3.0
87
+ assert_equal( 3.0, v.x )
75
88
  end
76
89
  end
@@ -0,0 +1,67 @@
1
+ require 'shape'
2
+ require 'test/unit'
3
+
4
+ class ShapeTest < Test::Unit::TestCase
5
+
6
+ def test_abstract
7
+ # Shape.new.svg
8
+ end
9
+
10
+ end
11
+
12
+
13
+ class LineTest < Test::Unit::TestCase
14
+
15
+ def test_point
16
+ line = Line[ :points, [ V2D[ 0.0, 0.0], V2D[ 0.0, 1.0] ] ]
17
+ # puts Line.instance_methods(false)
18
+ assert_equal( V2D[0.0, 0.3], line.point( 0.3 ) )
19
+ end
20
+
21
+ def test_tangent
22
+ line = Line[ :points, [ V2D[ 0.0, 0.0], V2D[ 0.0, 2.0] ] ]
23
+ assert_equal( V2D[0.0, 1.0], line.tangent( 0.3 ) )
24
+ end
25
+
26
+ def test_frame
27
+ line = Line[ :points, [ V2D[ 0.0, 0.0], V2D[ 0.0, 1.0] ] ]
28
+ result = Frame[ :center, V2D[0.0,0.5], :vector, V2D[0.0,0.0], :rotation, 0.0, :scale, 1.0 ]
29
+ assert_equal( result, line.frame( 0.5 ) )
30
+ end
31
+
32
+
33
+ def test_svg
34
+ line = Line[ :points, [ V2D[ 0.0, 0.0], V2D[ 0.0, 1.0], V2D[ 0.0, 2.0] ] ]
35
+ assert_equal( '<path d="M 0.0 0.0 L 0.0 1.0L 0.0 2.0"/>', line.svg )
36
+ end
37
+
38
+ def test_samples
39
+ [Line[].samples(3), [V2D[0.0,0.0], V2D[0.5,0.5], V2D[1.0,1.0]] ].forzip do |v1, v2|
40
+ assert( V2D.vequal?( v1, v2 ) )
41
+ end
42
+ end
43
+ end
44
+
45
+ class CircleTest < Test::Unit::TestCase
46
+
47
+ def test_default
48
+ circle = Circle[]
49
+ assert_equal( '<circle cx="0.0" cy="0.0" r="1.0"/>', circle.svg )
50
+ end
51
+
52
+ def test_svg
53
+ circle = Circle[ :center, V2D[ 0.0, 0.0 ], :radius, 1.0 ]
54
+ assert_equal( '<circle cx="0.0" cy="0.0" r="1.0"/>', circle.svg )
55
+ end
56
+
57
+ def test_viewbox
58
+ circle = Circle[ :center, V2D[ 0.0, 0.0 ], :radius, 1.0 ]
59
+ assert_equal( [-1.0, -1.0, 1.0, 1.0], circle.viewbox )
60
+ end
61
+
62
+ def test_samples
63
+ [Circle[].samples(3), [V2D[1.0,0.0], V2D[-1.0,0.0], V2D[1.0,0.0]] ].forzip do |v1, v2|
64
+ assert( V2D.vequal?( v1, v2 ) )
65
+ end
66
+ end
67
+ end
data/test/test_utils.rb CHANGED
@@ -58,6 +58,17 @@ end
58
58
 
59
59
  class ArrayTest < Test::Unit::TestCase
60
60
 
61
+ def test_samples
62
+ assert_equal( [0.0, 1.0, 0.5, 0.5, 1.0, 0.0], [(0.0..1.0), (1.0..0.0)].samples(3))
63
+ end
64
+
65
+ def test_samples2
66
+ result = []
67
+ [(0.0..1.0), (1.0..0.0)].samples(3) {|v1,v2| result += [v1,v2] }
68
+ assert_equal( [0.0, 1.0, 0.5, 0.5, 1.0, 0.0], result )
69
+ end
70
+
71
+
61
72
  def test_pairs
62
73
  a = [ 1, 2, 3]
63
74
  b = Array.new
@@ -81,6 +92,12 @@ class ArrayTest < Test::Unit::TestCase
81
92
  assert_equal( [1, 2, 3], [0, 1, 2, 3].[](1..-1) )
82
93
  end
83
94
 
95
+ def test_slice2
96
+ a = [0, 1, 2, 3]
97
+ assert_equal( [1, 2, 3], a[1..-1] )
98
+ end
99
+
100
+
84
101
  def test_uplets
85
102
  assert_equal( [[1, 2], [2, 3]], [1, 2, 3].uplets(2) )
86
103
  result = []; [1, 2, 3].uplets {|i,j| result.push( [i,j] )}
@@ -170,6 +187,34 @@ class RangeTest < Test::Unit::TestCase
170
187
  # assert_equal( [0.0, 0.5, 1.0], (0.0..1.0).bisamples([0.5, 0.5]) )
171
188
  # assert_equal( [0.0, 0.4, 0.5, 0.9, 1.0], (0.0..1.0).bisamples([0.4, 0.1]) )
172
189
  end
190
+
191
+ def test_ranges
192
+ # Samplable module
193
+ assert_equal( 1.5, (1.0..2.0).sample(0.5) )
194
+ assert_equal( [1.0, 1.5, 2.0], (1.0..2.0).samples( 3 ) )
195
+ assert_equal( 1.5, (1.0..2.0).mean )
196
+ assert_equal( 1.5, (1.0..2.0).middle )
197
+ assert( (1.0..2.0).rand >= 1.0 )
198
+ assert( (1.0..2.0).rand <= 2.0 )
199
+ assert_equal( 2, (1.0..2.0).rand( 2 ).length )
200
+ assert_equal( 1.8, (1.0..2.0).complement(1.2) )
201
+ assert_equal( 0.5, (1.0..2.0).abscissa(1.5) )
202
+
203
+ # Splittable module
204
+ assert_equal( (1.2..1.3), (1.0..2.0).split(0.2,0.3) )
205
+ assert_equal( [(1.0..1.5),(1.5..2.0)], (1.0..2.0).splits( 2 ) )
206
+ end
207
+
208
+ def test_ranges2
209
+ assert_equal( (0.0..1.0), Range.O )
210
+ assert_equal( (0.0..2.0*Math::PI), Range.Angle )
211
+ assert_equal( (2.0..1.0), (1.0..2.0).reverse )
212
+ assert_equal( (0.0..2.0), (1.0..2.0).sym )
213
+ assert_equal( (1.0..3.0), (1.0..2.0).symend )
214
+ assert_equal( 1.0, (1.0..2.0).size )
215
+ assert_equal( (1.3..2.3), (1.0..2.0).translate(0.3) )
216
+ end
217
+
173
218
  end
174
219
 
175
220
  class SampleClass
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.1
7
- date: 2008-02-02 00:00:00 +01:00
6
+ version: 0.0.2
7
+ date: 2008-02-10 00:00:00 +01:00
8
8
  summary: Ruby vector graphics library
9
9
  require_paths:
10
10
  - lib
@@ -29,18 +29,12 @@ post_install_message:
29
29
  authors:
30
30
  - "Julien L\xE9onard"
31
31
  files:
32
- - ./examples/foreach.rb
33
- - ./examples/hellocrown.rb
34
- - ./examples/hellocrown2.rb
35
- - ./examples/hellocrownrecurse.rb
36
- - ./examples/helloworld.rb
37
- - ./examples/helloworldcompact.rb
38
- - ./examples/helloworldexpanded.rb
39
- - ./examples/palette_circle.rb
40
- - ./examples/sample.rb
41
- - ./examples/uplets.rb
32
+ - Rakefile
33
+ - LICENCE
42
34
  - lib/assertion.rb
43
35
  - lib/attributable.rb
36
+ - lib/bezier.rb
37
+ - lib/bezierspline.rb
44
38
  - lib/color.rb
45
39
  - lib/frame.rb
46
40
  - lib/geometry2D.rb
@@ -52,15 +46,34 @@ files:
52
46
  - lib/trace.rb
53
47
  - lib/utils.rb
54
48
  - lib/xrvg.rb
55
- - Rakefile
56
- - LICENCE
49
+ - examples/bezierbasic.rb
50
+ - examples/bezierbasicvector.rb
51
+ - examples/foreach.rb
52
+ - examples/geodash.rb
53
+ - examples/geodash2.rb
54
+ - examples/hellocrown.rb
55
+ - examples/hellocrown2.rb
56
+ - examples/hellocrownrecurse.rb
57
+ - examples/helloworldcompact.rb
58
+ - examples/helloworldexpanded.rb
59
+ - examples/multibezierbasic.rb
60
+ - examples/palette_circle.rb
61
+ - examples/randomdash.rb
62
+ - examples/range_examples.rb
63
+ - examples/range_examples2.rb
64
+ - examples/sample.rb
65
+ - examples/simpledash.rb
66
+ - examples/uplets.rb
57
67
  - README
68
+ - CHANGES
58
69
  test_files:
59
70
  - test/test_attributable.rb
71
+ - test/test_bezier.rb
60
72
  - test/test_color.rb
61
73
  - test/test_frame.rb
62
74
  - test/test_geometry2D.rb
63
75
  - test/test_render.rb
76
+ - test/test_shape.rb
64
77
  - test/test_style.rb
65
78
  - test/test_utils.rb
66
79
  rdoc_options:
@@ -70,6 +83,7 @@ rdoc_options:
70
83
  - README
71
84
  extra_rdoc_files:
72
85
  - README
86
+ - CHANGES
73
87
  executables: []
74
88
 
75
89
  extensions: []
@@ -1,5 +0,0 @@
1
- require 'xrvg'
2
-
3
- SVGRender.[] do |render|
4
- render.add( Circle[] )
5
- end