redshift 1.3.26 → 1.3.27

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/RELEASE-NOTES +6 -0
  3. data/Rakefile +26 -0
  4. data/lib/redshift/redshift.rb +1 -1
  5. data/lib/redshift/util/isaac.rb +2 -2
  6. data/test/test_buffer.rb +2 -2
  7. data/test/test_connect.rb +2 -2
  8. data/test/test_connect_parallel.rb +2 -2
  9. data/test/test_connect_strict.rb +4 -5
  10. data/test/test_constant.rb +2 -4
  11. data/test/test_delay.rb +2 -2
  12. data/test/test_derivative.rb +2 -2
  13. data/test/test_discrete.rb +2 -4
  14. data/test/test_discrete_isolated.rb +2 -4
  15. data/test/test_dvector-float.rb +14 -17
  16. data/test/test_dvector.rb +15 -17
  17. data/test/test_exit.rb +2 -4
  18. data/test/test_flow.rb +2 -4
  19. data/test/test_flow_link.rb +2 -4
  20. data/test/test_flow_sub.rb +2 -4
  21. data/test/test_flow_trans.rb +2 -4
  22. data/test/test_inherit.rb +2 -4
  23. data/test/test_inherit_event.rb +2 -4
  24. data/test/test_inherit_flow.rb +2 -4
  25. data/test/test_inherit_link.rb +2 -4
  26. data/test/test_inherit_setup.rb +2 -4
  27. data/test/test_inherit_state.rb +2 -4
  28. data/test/test_inherit_transition.rb +2 -4
  29. data/test/test_numerics.rb +2 -4
  30. data/test/test_queue.rb +3 -3
  31. data/test/test_queue_alone.rb +2 -2
  32. data/test/test_reset.rb +2 -4
  33. data/test/test_setup.rb +2 -4
  34. data/test/test_strict_continuity.rb +2 -4
  35. data/test/test_strict_reset_error.rb +2 -4
  36. data/test/test_strictness_error.rb +2 -4
  37. data/test/test_sync.rb +2 -2
  38. data/test/test_world.rb +2 -4
  39. metadata +49 -8
  40. data/ext/redshift/util/isaac/extconf.rb +0 -2
  41. data/ext/redshift/util/isaac/isaac.c +0 -129
  42. data/ext/redshift/util/isaac/rand.c +0 -140
  43. data/ext/redshift/util/isaac/rand.h +0 -61
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6efe4898ea37d2d69e2bf76b09c1a8f21a49f5e1
4
- data.tar.gz: f49ba364d83aeab669be50e244c09a49499e600c
3
+ metadata.gz: f9ca8372d265e9b730e14c976f1765a906181e2b
4
+ data.tar.gz: d7b22f9a9286357acad7ab342ad5ff8d446ad3bf
5
5
  SHA512:
6
- metadata.gz: 6116140716bae7b6b7555d714aac7d3f3d7f62c04583f1da0128c17303449fc254342ad7857757ae65503bae44f96df031054c176dd7a4a7307b5c164a90653c
7
- data.tar.gz: 442f564bc09f72a30b8914e8e32b5bb124fee97b0abffb50f932001c1c0ed011e3d1ceb6304817861f1c7de8e7bca84187aac23ea64048d8b6310c556e57aac3
6
+ metadata.gz: 3150e6a90aea209e06408c12c8c4b5ae400d94737289a294e16c439c26c20dc72defba138b4a3cdc9b2eb21aee7046de82bd2bd281bc0049ea412265f3f58be0
7
+ data.tar.gz: 88b2d5634395f0423f6464398206ad235749b472f6e3a1c0396bcfc3d2a48892fde88adcddf5d7a2a681264accd3d2426ecea486f57064d5d6411ebd82c89118
@@ -1,3 +1,9 @@
1
+ redshift 1.3.27
2
+
3
+ - cleanup
4
+ - use minitest
5
+ - remove local isaac ext and depend on prng-isaac gem instead
6
+
1
7
  redshift 1.3.26
2
8
 
3
9
  - updated to ruby 2.0
@@ -0,0 +1,26 @@
1
+ require 'rake'
2
+
3
+ def cur_ruby
4
+ require 'rbconfig'
5
+ @cur_ruby ||= RbConfig::CONFIG["RUBY_INSTALL_NAME"]
6
+ end
7
+
8
+ desc "Run unit tests"
9
+ task :test do |t|
10
+ sh "cd test && RUBYLIB=../lib:../ext:$RUBYLIB ./test.rb"
11
+ end
12
+
13
+ desc "build extensions for current ruby: #{RUBY_VERSION}"
14
+ task :build_ext do
15
+ require 'find'
16
+ Find.find('ext/redshift') do |f|
17
+ next unless File.basename(f) == "extconf.rb"
18
+ d = File.dirname(f)
19
+ Dir.chdir d do
20
+ sh "make distclean || true"
21
+ ruby "extconf.rb"
22
+ sh "make"
23
+ end
24
+ end
25
+ end
26
+
@@ -70,7 +70,7 @@ end
70
70
  module RedShift
71
71
  include Math
72
72
 
73
- VERSION = '1.3.25'
73
+ VERSION = '1.3.27'
74
74
 
75
75
  Infinity = Math::Infinity
76
76
 
@@ -1,8 +1,8 @@
1
- require 'redshift/util/isaac/isaac.so'
1
+ require 'isaac'
2
2
 
3
3
  # Adaptor class to use ISAAC with redshift/util/random distributions.
4
4
  # See test/test_flow_trans.rb for an example.
5
- class ISAACGenerator < ISAAC
5
+ class ISAACGenerator < PRNG::ISAAC
6
6
  def initialize(*seeds)
7
7
  super()
8
8
  if seeds.compact.empty?
@@ -7,9 +7,9 @@ RedShift.with_library do |library|
7
7
  library.define_buffer
8
8
  end
9
9
 
10
- require 'test/unit'
10
+ require 'minitest/autorun'
11
11
 
12
- class TestBuffer < Test::Unit::TestCase
12
+ class TestBuffer < Minitest::Test
13
13
 
14
14
  class T < Component
15
15
  RedShift.with_library do
@@ -26,9 +26,9 @@ end
26
26
 
27
27
  #-----#
28
28
 
29
- require 'test/unit'
29
+ require 'minitest/autorun'
30
30
 
31
- class TestConnect < Test::Unit::TestCase
31
+ class TestConnect < Minitest::Test
32
32
 
33
33
  def setup
34
34
  @world = World.new
@@ -20,9 +20,9 @@ end
20
20
 
21
21
  #-----#
22
22
 
23
- require 'test/unit'
23
+ require 'minitest/autorun'
24
24
 
25
- class TestConnect < Test::Unit::TestCase
25
+ class TestConnect < Minitest::Test
26
26
 
27
27
  def setup
28
28
  @world = World.new
@@ -56,9 +56,9 @@ end
56
56
 
57
57
  #-----#
58
58
 
59
- require 'test/unit'
59
+ require 'minitest/autorun'
60
60
 
61
- class TestConnectStrict < Test::Unit::TestCase
61
+ class TestConnectStrict < Minitest::Test
62
62
 
63
63
  def setup
64
64
  @world = SCWorld.new
@@ -114,9 +114,8 @@ class TestConnectStrict < Test::Unit::TestCase
114
114
  a.x = a.k = 12.34
115
115
  end
116
116
  @b.port(:y) << a.port(:x)
117
- assert_nothing_raised do
118
- @b.port(:y) << a.port(:k)
119
- end
117
+ #assert_nothing_raised
118
+ @b.port(:y) << a.port(:k)
120
119
  end
121
120
 
122
121
  # One check per step, despite the Dummy
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -41,9 +39,9 @@ end
41
39
 
42
40
  #-----#
43
41
 
44
- require 'test/unit'
42
+ require 'minitest/autorun'
45
43
 
46
- class TestConstant < Test::Unit::TestCase
44
+ class TestConstant < Minitest::Test
47
45
 
48
46
  def setup
49
47
  @world = World.new
@@ -102,9 +102,9 @@ class StateChanger < Component
102
102
  end
103
103
  end
104
104
 
105
- require 'test/unit'
105
+ require 'minitest/autorun'
106
106
 
107
- class TestDelay < Test::Unit::TestCase
107
+ class TestDelay < Minitest::Test
108
108
 
109
109
  def setup
110
110
  @world = World.new
@@ -27,9 +27,9 @@ class DerivativeTestComponent < Component
27
27
  end
28
28
  end
29
29
 
30
- require 'test/unit'
30
+ require 'minitest/autorun'
31
31
 
32
- class TestDerivative < Test::Unit::TestCase
32
+ class TestDerivative < Minitest::Test
33
33
 
34
34
  def setup
35
35
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -561,9 +559,9 @@ test guard phases
561
559
 
562
560
  #-----#
563
561
 
564
- require 'test/unit'
562
+ require 'minitest/autorun'
565
563
 
566
- class TestDiscrete < Test::Unit::TestCase
564
+ class TestDiscrete < Minitest::Test
567
565
 
568
566
  def setup
569
567
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -60,9 +58,9 @@ end
60
58
 
61
59
  #-----#
62
60
 
63
- require 'test/unit'
61
+ require 'minitest/autorun'
64
62
 
65
- class TestDiscrete < Test::Unit::TestCase
63
+ class TestDiscrete < Minitest::Test
66
64
 
67
65
  def setup
68
66
  @world = World.new
@@ -1,14 +1,13 @@
1
1
  require 'redshift/dvector-float/dvector-float'
2
- require 'test/unit'
2
+ require 'minitest/autorun'
3
3
 
4
4
  DVectorFloat = RedShift::DVectorFloat
5
5
 
6
- class TestDVectorFloat < Test::Unit::TestCase
6
+ class TestDVectorFloat < Minitest::Test
7
7
  def make_dvs n
8
- assert_nothing_thrown do
9
- n.times do
10
- DVectorFloat.new
11
- end
8
+ #assert_nothing_thrown do
9
+ n.times do
10
+ DVectorFloat.new
12
11
  end
13
12
  end
14
13
 
@@ -16,9 +15,8 @@ class TestDVectorFloat < Test::Unit::TestCase
16
15
  GC.start
17
16
  n = ObjectSpace.each_object(DVectorFloat){}
18
17
 
19
- assert_nothing_thrown do
20
- make_dvs 100
21
- end
18
+ #assert_nothing_thrown
19
+ make_dvs 100
22
20
 
23
21
  GC.start
24
22
  n2 = ObjectSpace.each_object(DVectorFloat){}
@@ -28,20 +26,19 @@ class TestDVectorFloat < Test::Unit::TestCase
28
26
 
29
27
  def test_gc_stress
30
28
  GC.stress = true
31
- assert_nothing_thrown do
32
- make_dvs 10
33
- end
29
+ #assert_nothing_thrown
30
+ make_dvs 10
34
31
  ensure
35
32
  GC.stress = false
36
33
  end
37
34
 
38
35
  def test_push_pop
39
36
  dv = DVectorFloat.new
40
- assert_nothing_thrown do
41
- dv.push(1)
42
- dv.push(2.567)
43
- dv.push(3)
44
- end
37
+ #assert_nothing_thrown
38
+ dv.push(1)
39
+ dv.push(2.567)
40
+ dv.push(3)
41
+
45
42
  assert_equal(3, dv.pop)
46
43
  assert_in_delta(2.567, dv.pop, 0.01)
47
44
  assert_equal(1, dv.pop)
@@ -1,14 +1,13 @@
1
1
  require 'redshift/dvector/dvector'
2
- require 'test/unit'
2
+ require 'minitest/autorun'
3
3
 
4
4
  DVector = RedShift::DVector
5
5
 
6
- class TestDVector < Test::Unit::TestCase
6
+ class TestDVector < Minitest::Test
7
7
  def make_dvs n
8
- assert_nothing_thrown do
9
- n.times do
10
- DVector.new
11
- end
8
+ #assert_nothing_thrown
9
+ n.times do
10
+ DVector.new
12
11
  end
13
12
  end
14
13
 
@@ -16,9 +15,8 @@ class TestDVector < Test::Unit::TestCase
16
15
  GC.start
17
16
  n = ObjectSpace.each_object(DVector){}
18
17
 
19
- assert_nothing_thrown do
20
- make_dvs 100
21
- end
18
+ #assert_nothing_thrown
19
+ make_dvs 100
22
20
 
23
21
  GC.start
24
22
  n2 = ObjectSpace.each_object(DVector){}
@@ -28,20 +26,20 @@ class TestDVector < Test::Unit::TestCase
28
26
 
29
27
  def test_gc_stress
30
28
  GC.stress = true
31
- assert_nothing_thrown do
32
- make_dvs 10
33
- end
29
+ #assert_nothing_thrown
30
+ make_dvs 10
31
+
34
32
  ensure
35
33
  GC.stress = false
36
34
  end
37
35
 
38
36
  def test_push_pop
39
37
  dv = DVector.new
40
- assert_nothing_thrown do
41
- dv.push(1)
42
- dv.push(2)
43
- dv.push(3)
44
- end
38
+ #assert_nothing_thrown
39
+ dv.push(1)
40
+ dv.push(2)
41
+ dv.push(3)
42
+
45
43
  assert_equal(3, dv.pop)
46
44
  assert_equal(2, dv.pop)
47
45
  assert_equal(1, dv.pop)
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -33,9 +31,9 @@ end
33
31
 
34
32
  #-----#
35
33
 
36
- require 'test/unit'
34
+ require 'minitest/autorun'
37
35
 
38
- class TestExit < Test::Unit::TestCase
36
+ class TestExit < Minitest::Test
39
37
 
40
38
  def setup
41
39
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -188,9 +186,9 @@ end
188
186
 
189
187
  #-----#
190
188
 
191
- require 'test/unit'
189
+ require 'minitest/autorun'
192
190
 
193
- class TestFlow < Test::Unit::TestCase
191
+ class TestFlow < Minitest::Test
194
192
 
195
193
  def setup
196
194
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -242,9 +240,9 @@ end
242
240
 
243
241
  #-----#
244
242
 
245
- require 'test/unit'
243
+ require 'minitest/autorun'
246
244
 
247
- class TestFlow < Test::Unit::TestCase
245
+ class TestFlow < Minitest::Test
248
246
 
249
247
  def setup
250
248
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -54,9 +52,9 @@ end
54
52
 
55
53
  #-----#
56
54
 
57
- require 'test/unit'
55
+ require 'minitest/autorun'
58
56
 
59
- class TestFlow < Test::Unit::TestCase
57
+ class TestFlow < Minitest::Test
60
58
 
61
59
  def setup
62
60
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
  require 'redshift/util/random'
5
3
  require 'redshift/util/isaac'
@@ -231,9 +229,9 @@ end
231
229
 
232
230
  #-----#
233
231
 
234
- require 'test/unit'
232
+ require 'minitest/autorun'
235
233
 
236
- class TestFlow < Test::Unit::TestCase
234
+ class TestFlow < Minitest::Test
237
235
 
238
236
  def setup
239
237
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -89,9 +87,9 @@ class Z < Component
89
87
  end
90
88
 
91
89
 
92
- require 'test/unit'
90
+ require 'minitest/autorun'
93
91
 
94
- class TestInherit < Test::Unit::TestCase
92
+ class TestInherit < Minitest::Test
95
93
 
96
94
  def setup
97
95
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -44,9 +42,9 @@ end
44
42
 
45
43
  #-----#
46
44
 
47
- require 'test/unit'
45
+ require 'minitest/autorun'
48
46
 
49
- class TestInheritEvent < Test::Unit::TestCase
47
+ class TestInheritEvent < Minitest::Test
50
48
  def setup
51
49
  @world = World.new
52
50
  @world.time_step = 0.1
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -110,9 +108,9 @@ end
110
108
 
111
109
  #-----#
112
110
 
113
- require 'test/unit'
111
+ require 'minitest/autorun'
114
112
 
115
- class TestInheritFlow < Test::Unit::TestCase
113
+ class TestInheritFlow < Minitest::Test
116
114
 
117
115
  def setup
118
116
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -36,9 +34,9 @@ end
36
34
 
37
35
  #-----#
38
36
 
39
- require 'test/unit'
37
+ require 'minitest/autorun'
40
38
 
41
- class TestInheritLink < Test::Unit::TestCase
39
+ class TestInheritLink < Minitest::Test
42
40
 
43
41
  def setup
44
42
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -34,9 +32,9 @@ end
34
32
 
35
33
  #-----#
36
34
 
37
- require 'test/unit'
35
+ require 'minitest/autorun'
38
36
 
39
- class TestInheritSetup < Test::Unit::TestCase
37
+ class TestInheritSetup < Minitest::Test
40
38
 
41
39
  def setup
42
40
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -35,9 +33,9 @@ end
35
33
 
36
34
  #-----#
37
35
 
38
- require 'test/unit'
36
+ require 'minitest/autorun'
39
37
 
40
- class TestInheritState < Test::Unit::TestCase
38
+ class TestInheritState < Minitest::Test
41
39
 
42
40
  def setup
43
41
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -131,9 +129,9 @@ end
131
129
 
132
130
  #-----#
133
131
 
134
- require 'test/unit'
132
+ require 'minitest/autorun'
135
133
 
136
- class TestInheritTrans < Test::Unit::TestCase
134
+ class TestInheritTrans < Minitest::Test
137
135
 
138
136
  def setup
139
137
  @world = World.new
@@ -1,8 +1,6 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'mathn' # Use rationals for 1/2 etc.
4
2
 
5
- require 'test/unit'
3
+ require 'minitest/autorun'
6
4
 
7
5
  require 'redshift'
8
6
 
@@ -13,7 +11,7 @@ class Timer < Component
13
11
  flow { diff " x' = 1 " }
14
12
  end
15
13
 
16
- class TestNumerics < Test::Unit::TestCase
14
+ class TestNumerics < Minitest::Test
17
15
 
18
16
  def setup
19
17
  @world = World.new
@@ -1,7 +1,7 @@
1
1
  require 'redshift'
2
- require 'test/unit'
2
+ require 'minitest/autorun'
3
3
 
4
- class TestQueue < Test::Unit::TestCase
4
+ class TestQueue < Minitest::Test
5
5
  class Receiver < RedShift::Component
6
6
  queue :q
7
7
  transition Enter => Exit do
@@ -37,7 +37,7 @@ class TestQueue < Test::Unit::TestCase
37
37
  end
38
38
  end
39
39
 
40
- class TestQueueAndStrict < Test::Unit::TestCase
40
+ class TestQueueAndStrict < Minitest::Test
41
41
  class Receiver < RedShift::Component
42
42
  queue :q
43
43
  strictly_continuous :x
@@ -1,9 +1,9 @@
1
1
  require 'redshift/queue'
2
- require 'test/unit'
2
+ require 'minitest/autorun'
3
3
 
4
4
  # Test queue class outside of simulation using mocked World and
5
5
  # Component classes.
6
- class TestQueueAlone < Test::Unit::TestCase
6
+ class TestQueueAlone < Minitest::Test
7
7
  class World
8
8
  attr_accessor :step_count, :discrete_step
9
9
  end
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -111,9 +109,9 @@ class Receiver < Component
111
109
  end
112
110
  end
113
111
 
114
- require 'test/unit'
112
+ require 'minitest/autorun'
115
113
 
116
- class TestReset < Test::Unit::TestCase
114
+ class TestReset < Minitest::Test
117
115
 
118
116
  def setup
119
117
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -90,9 +88,9 @@ end
90
88
 
91
89
  #-----#
92
90
 
93
- require 'test/unit'
91
+ require 'minitest/autorun'
94
92
 
95
- class TestSetup < Test::Unit::TestCase
93
+ class TestSetup < Minitest::Test
96
94
 
97
95
  def setup
98
96
  @world = World.new
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -347,9 +345,9 @@ end
347
345
 
348
346
  #-----#
349
347
 
350
- require 'test/unit'
348
+ require 'minitest/autorun'
351
349
 
352
- class TestStrictContinuity < Test::Unit::TestCase
350
+ class TestStrictContinuity < Minitest::Test
353
351
 
354
352
  def setup
355
353
  @world = SCWorld.new
@@ -1,14 +1,12 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
6
4
 
7
- require 'test/unit'
5
+ require 'minitest/autorun'
8
6
 
9
7
  # See also test_strict_continuity.rb.
10
8
 
11
- class TestStrictnessError < Test::Unit::TestCase
9
+ class TestStrictnessError < Minitest::Test
12
10
 
13
11
  class T < Component
14
12
 
@@ -1,14 +1,12 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
6
4
 
7
- require 'test/unit'
5
+ require 'minitest/autorun'
8
6
 
9
7
  # See also test_strict_continuity.rb.
10
8
 
11
- class TestStrictnessError < Test::Unit::TestCase
9
+ class TestStrictnessError < Minitest::Test
12
10
 
13
11
  class T < Component
14
12
 
@@ -4,7 +4,7 @@
4
4
  # test chains of symmetric sync
5
5
 
6
6
  require 'redshift'
7
- require 'test/unit'
7
+ require 'minitest/autorun'
8
8
 
9
9
  class DebugSyncWorld #< RedShift::World
10
10
  def hook_begin
@@ -25,7 +25,7 @@ class DebugSyncWorld #< RedShift::World
25
25
  end
26
26
  end
27
27
 
28
- class TestSync < Test::Unit::TestCase
28
+ class TestSync < Minitest::Test
29
29
  class Relay < RedShift::Component
30
30
  link :next
31
31
 
@@ -1,5 +1,3 @@
1
- #!/usr/bin/env ruby
2
-
3
1
  require 'redshift'
4
2
 
5
3
  include RedShift
@@ -285,9 +283,9 @@ tests:
285
283
 
286
284
  #-----#
287
285
 
288
- require 'test/unit'
286
+ require 'minitest/autorun'
289
287
 
290
- class TestWorld < Test::Unit::TestCase
288
+ class TestWorld < Minitest::Test
291
289
 
292
290
  def test_world
293
291
  testers = []
metadata CHANGED
@@ -1,15 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redshift
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.26
4
+ version: 1.3.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joel VanderWerf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-05 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2013-06-01 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cgen
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: tkar
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: prng-isaac
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
13
55
  description: A framework for simulation of networks of hybrid automata, similar to
14
56
  SHIFT and Lambda-SHIFT. Includes ruby-based DSL for defining simulation components,
15
57
  and ruby/C code generation and runtime.
@@ -18,11 +60,11 @@ executables: []
18
60
  extensions:
19
61
  - ext/redshift/buffer/extconf.rb
20
62
  - ext/redshift/dvector/extconf.rb
21
- - ext/redshift/util/isaac/extconf.rb
22
63
  extra_rdoc_files:
23
64
  - README.md
24
65
  - RELEASE-NOTES
25
66
  files:
67
+ - Rakefile
26
68
  - README.md
27
69
  - RELEASE-NOTES
28
70
  - bench/bench
@@ -87,18 +129,14 @@ files:
87
129
  - examples/simulink/README
88
130
  - ext/redshift/dvector/dvector.c
89
131
  - ext/redshift/buffer/buffer.c
90
- - ext/redshift/util/isaac/isaac.c
91
- - ext/redshift/util/isaac/rand.c
92
132
  - ext/redshift/dvector-float/dvector-float.c
93
133
  - ext/redshift/dvector/dvector.h
94
134
  - ext/redshift/buffer/buffer.h
95
- - ext/redshift/util/isaac/rand.h
96
135
  - ext/redshift/dvector-float/dvector-float.h
97
136
  - ext/redshift/dvector/dvector.rb
98
137
  - ext/redshift/dvector/extconf.rb
99
138
  - ext/redshift/buffer/dir.rb
100
139
  - ext/redshift/buffer/extconf.rb
101
- - ext/redshift/util/isaac/extconf.rb
102
140
  - ext/redshift/dvector-float/dvector-float.rb
103
141
  - ext/redshift/dvector-float/extconf.rb
104
142
  - lib/redshift/state.rb
@@ -185,6 +223,8 @@ rdoc_options:
185
223
  - CGenerator
186
224
  - --main
187
225
  - README.md
226
+ - --output
227
+ - rdoc
188
228
  require_paths:
189
229
  - lib
190
230
  - ext
@@ -205,3 +245,4 @@ signing_key:
205
245
  specification_version: 4
206
246
  summary: Simulation of hybrid automata
207
247
  test_files: []
248
+ has_rdoc:
@@ -1,2 +0,0 @@
1
- require 'mkmf'
2
- create_makefile 'isaac'
@@ -1,129 +0,0 @@
1
- #include "ruby.h"
2
- #include "rand.h"
3
-
4
- #ifndef min
5
- # define min(a,b) (((a)<(b)) ? (a) : (b))
6
- #endif /* min */
7
-
8
- static VALUE
9
- ISAAC_s_allocate(VALUE klass)
10
- {
11
- randctx *ctx;
12
-
13
- return Data_Make_Struct(klass, randctx, NULL, NULL, ctx);
14
- }
15
-
16
- /*
17
- * Seed the generator with an array of up to ISAAC::RANDSIZ integers in the
18
- * range 0..2**32-1. More entries are ignored. Missing entries are treated
19
- * as 0. Returns +nil+.
20
- */
21
- static VALUE
22
- ISAAC_srand(VALUE self, VALUE ary)
23
- {
24
- int i;
25
- randctx *ctx;
26
-
27
- Check_Type(ary, T_ARRAY);
28
-
29
- Data_Get_Struct(self, randctx, ctx);
30
-
31
- MEMZERO(ctx, randctx, 1);
32
- for (i=min(RANDSIZ, RARRAY_LEN(ary))-1; i>=0; i--) {
33
- ctx->randrsl[i] = NUM2UINT(RARRAY_PTR(ary)[i]);
34
- }
35
- rs_isaac_init(ctx, 1);
36
-
37
- return Qnil;
38
- }
39
-
40
- /*
41
- * Return a random integer in the range 0..2**32-1.
42
- */
43
- static VALUE
44
- ISAAC_rand32(VALUE self)
45
- {
46
- randctx *ctx;
47
-
48
- Data_Get_Struct(self, randctx, ctx);
49
-
50
- if (!ctx->randcnt--) {
51
- rs_isaac_rand(ctx);
52
- ctx->randcnt=RANDSIZ-1;
53
- }
54
-
55
- return UINT2NUM(ctx->randrsl[ctx->randcnt]);
56
- }
57
-
58
- /*
59
- * Return a random float in the range 0..1.
60
- */
61
- static VALUE
62
- ISAAC_rand(VALUE self)
63
- {
64
- randctx *ctx;
65
-
66
- Data_Get_Struct(self, randctx, ctx);
67
-
68
- if (!ctx->randcnt--) {
69
- rs_isaac_rand(ctx);
70
- ctx->randcnt=RANDSIZ-1;
71
- }
72
-
73
- return rb_float_new(ctx->randrsl[ctx->randcnt] / 4294967295.0);
74
- }
75
-
76
- /* :nodoc: */
77
- static VALUE
78
- ISAAC_marshal_dump(VALUE self)
79
- {
80
- randctx *ctx;
81
- int i;
82
- int ary_size = sizeof(randctx)/sizeof(ub4);
83
- VALUE ary;
84
-
85
- Data_Get_Struct(self, randctx, ctx);
86
-
87
- ary = rb_ary_new2(ary_size);
88
- for (i = 0; i < ary_size; i++) {
89
- rb_ary_push(ary, UINT2NUM(((ub4 *)ctx)[i]));
90
- }
91
-
92
- return ary;
93
- }
94
-
95
- /* :nodoc: */
96
- static VALUE
97
- ISAAC_marshal_load(VALUE self, VALUE ary)
98
- {
99
- randctx *ctx;
100
- int i;
101
- int ary_size = sizeof(randctx)/sizeof(ub4);
102
-
103
- Data_Get_Struct(self, randctx, ctx);
104
-
105
- if (RARRAY_LEN(ary) != ary_size)
106
- rb_raise(rb_eArgError, "bad length in loaded ISAAC data");
107
-
108
- for (i = 0; i < ary_size; i++) {
109
- ((ub4 *)ctx)[i] = NUM2UINT(RARRAY_PTR(ary)[i]);
110
- }
111
-
112
- return self;
113
- }
114
-
115
- void
116
- Init_isaac()
117
- {
118
- VALUE ISAAC;
119
-
120
- ISAAC = rb_define_class("ISAAC", rb_cObject);
121
- rb_define_alloc_func(ISAAC, ISAAC_s_allocate);
122
- rb_define_method(ISAAC, "srand", ISAAC_srand, 1);
123
- rb_define_method(ISAAC, "rand32", ISAAC_rand32, 0);
124
- rb_define_method(ISAAC, "rand", ISAAC_rand, 0);
125
- rb_define_method(ISAAC, "marshal_dump", ISAAC_marshal_dump, 0);
126
- rb_define_method(ISAAC, "marshal_load", ISAAC_marshal_load, 1);
127
-
128
- rb_const_set(ISAAC, rb_intern("RANDSIZ"), UINT2NUM(RANDSIZ));
129
- }
@@ -1,140 +0,0 @@
1
- /*
2
- ------------------------------------------------------------------------------
3
- rand.c: By Bob Jenkins. My random number generator, ISAAC. Public Domain.
4
- MODIFIED:
5
- 960327: Creation (addition of randinit, really)
6
- 970719: use context, not global variables, for internal state
7
- 980324: added main (ifdef'ed out), also rearranged randinit()
8
- 010626: Note that this is public domain
9
-
10
- ADAPTED Aug2004 for use in Ruby by Joel VanderWerf
11
- ADAPTED Jan2010 for 64 bit systems (same algorithm and results as 32 bit)
12
- ADAPTED Jun2010 for use within the redshift project
13
- ------------------------------------------------------------------------------
14
- */
15
- #ifndef RAND
16
- #include "rand.h"
17
- #endif
18
-
19
-
20
- #define ind(mm,x) ((mm)[(x>>2)&(RANDSIZ-1)])
21
- #define rngstep(mix,a,b,mm,m,m2,r,x) \
22
- { \
23
- x = *m; \
24
- a = ((a^(mix)) + *(m2++)); \
25
- *(m++) = y = (ind(mm,x) + a + b); \
26
- *(r++) = b = (ind(mm,y>>RANDSIZL) + x); \
27
- }
28
-
29
- void rs_isaac_rand(ctx)
30
- randctx *ctx;
31
- {
32
- register ub4 a,b,x,y,*m,*mm,*m2,*r,*mend;
33
- mm=ctx->randmem; r=ctx->randrsl;
34
- a = ctx->randa; b = (ctx->randb + (++ctx->randc));
35
- for (m = mm, mend = m2 = m+(RANDSIZ/2); m<mend; )
36
- {
37
- rngstep( a<<13, a, b, mm, m, m2, r, x);
38
- rngstep( a>>6 , a, b, mm, m, m2, r, x);
39
- rngstep( a<<2 , a, b, mm, m, m2, r, x);
40
- rngstep( a>>16, a, b, mm, m, m2, r, x);
41
- }
42
- for (m2 = mm; m2<mend; )
43
- {
44
- rngstep( a<<13, a, b, mm, m, m2, r, x);
45
- rngstep( a>>6 , a, b, mm, m, m2, r, x);
46
- rngstep( a<<2 , a, b, mm, m, m2, r, x);
47
- rngstep( a>>16, a, b, mm, m, m2, r, x);
48
- }
49
- ctx->randb = b; ctx->randa = a;
50
- }
51
-
52
-
53
- #define mix(a,b,c,d,e,f,g,h) \
54
- { \
55
- a^=b<<11; d+=a; b+=c; \
56
- b^=c>>2; e+=b; c+=d; \
57
- c^=d<<8; f+=c; d+=e; \
58
- d^=e>>16; g+=d; e+=f; \
59
- e^=f<<10; h+=e; f+=g; \
60
- f^=g>>4; a+=f; g+=h; \
61
- g^=h<<8; b+=g; h+=a; \
62
- h^=a>>9; c+=h; a+=b; \
63
- }
64
-
65
- /* if (flag==TRUE), then use the contents of randrsl[] to initialize mm[]. */
66
- void rs_isaac_init(ctx, flag)
67
- randctx *ctx;
68
- int flag;
69
- {
70
- int i;
71
- ub4 a,b,c,d,e,f,g,h;
72
- ub4 *m,*r;
73
- ctx->randa = ctx->randb = ctx->randc = 0;
74
- m=ctx->randmem;
75
- r=ctx->randrsl;
76
- a=b=c=d=e=f=g=h=0x9e3779b9; /* the golden ratio */
77
-
78
- for (i=0; i<4; ++i) /* scramble it */
79
- {
80
- mix(a,b,c,d,e,f,g,h);
81
- }
82
-
83
- if (flag)
84
- {
85
- /* initialize using the contents of r[] as the seed */
86
- for (i=0; i<RANDSIZ; i+=8)
87
- {
88
- a+=r[i ]; b+=r[i+1]; c+=r[i+2]; d+=r[i+3];
89
- e+=r[i+4]; f+=r[i+5]; g+=r[i+6]; h+=r[i+7];
90
- mix(a,b,c,d,e,f,g,h);
91
- m[i ]=a; m[i+1]=b; m[i+2]=c; m[i+3]=d;
92
- m[i+4]=e; m[i+5]=f; m[i+6]=g; m[i+7]=h;
93
- }
94
- /* do a second pass to make all of the seed affect all of m */
95
- for (i=0; i<RANDSIZ; i+=8)
96
- {
97
- a+=m[i ]; b+=m[i+1]; c+=m[i+2]; d+=m[i+3];
98
- e+=m[i+4]; f+=m[i+5]; g+=m[i+6]; h+=m[i+7];
99
- mix(a,b,c,d,e,f,g,h);
100
- m[i ]=a; m[i+1]=b; m[i+2]=c; m[i+3]=d;
101
- m[i+4]=e; m[i+5]=f; m[i+6]=g; m[i+7]=h;
102
- }
103
- }
104
- else
105
- {
106
- /* fill in mm[] with messy stuff */
107
- for (i=0; i<RANDSIZ; i+=8)
108
- {
109
- mix(a,b,c,d,e,f,g,h);
110
- m[i ]=a; m[i+1]=b; m[i+2]=c; m[i+3]=d;
111
- m[i+4]=e; m[i+5]=f; m[i+6]=g; m[i+7]=h;
112
- }
113
- }
114
-
115
- rs_isaac_rand(ctx); /* fill in the first set of results */
116
- ctx->randcnt=RANDSIZ; /* prepare to use the first set of results */
117
- }
118
-
119
-
120
- #ifdef NEVER
121
- #include <stdio.h>
122
-
123
- int main()
124
- {
125
- ub4 i,j;
126
- randctx ctx;
127
- ctx.randa=ctx.randb=ctx.randc=(ub4)0;
128
- for (i=0; i<RANDSIZ; ++i) ctx.randrsl[i]=(ub4)0;
129
- rs_isaac_init(&ctx, 1);
130
- for (i=0; i<2; ++i)
131
- {
132
- rs_isaac_rand(&ctx);
133
- for (j=0; j<RANDSIZ; ++j)
134
- {
135
- printf("%.8lx",(long unsigned int)ctx.randrsl[j]);
136
- if ((j&7)==7) printf("\n");
137
- }
138
- }
139
- }
140
- #endif
@@ -1,61 +0,0 @@
1
- /*
2
- ------------------------------------------------------------------------------
3
- rand.h: definitions for a random number generator
4
- By Bob Jenkins, 1996, Public Domain
5
- MODIFIED:
6
- 960327: Creation (addition of randinit, really)
7
- 970719: use context, not global variables, for internal state
8
- 980324: renamed seed to flag
9
- 980605: recommend RANDSIZL=4 for noncryptography.
10
- 010626: note this is public domain
11
-
12
- ADAPTED Aug2004 for use in Ruby by Joel VanderWerf
13
- ADAPTED Jan2010 for 64 bit systems (same algorithm and results as 32 bit)
14
- ADAPTED Jun2010 for use within the redshift project
15
- ------------------------------------------------------------------------------
16
- */
17
-
18
- #include <stdint.h>
19
-
20
- typedef uint32_t ub4;
21
-
22
- #ifndef RAND
23
- #define RAND
24
- #define RANDSIZL (8) /* I recommend 8 for crypto, 4 for simulations */
25
- #define RANDSIZ (1<<RANDSIZL)
26
-
27
- /* context of random number generator */
28
- struct randctx
29
- {
30
- ub4 randcnt;
31
- ub4 randrsl[RANDSIZ];
32
- ub4 randmem[RANDSIZ];
33
- ub4 randa;
34
- ub4 randb;
35
- ub4 randc;
36
- };
37
- typedef struct randctx randctx;
38
-
39
- /*
40
- ------------------------------------------------------------------------------
41
- If (flag==TRUE), then use the contents of randrsl[0..RANDSIZ-1] as the seed.
42
- ------------------------------------------------------------------------------
43
- */
44
- void rs_isaac_init(randctx *r, int flag);
45
-
46
- void rs_isaac_rand(randctx *r);
47
-
48
-
49
- /*
50
- ------------------------------------------------------------------------------
51
- Call rand(/o_ randctx *r _o/) to retrieve a single 32-bit random value
52
- ------------------------------------------------------------------------------
53
- */
54
- #define rand(r) \
55
- (!(r)->randcnt-- ? \
56
- (rs_isaac_rand(r), (r)->randcnt=RANDSIZ-1, (r)->randrsl[(r)->randcnt]) : \
57
- (r)->randrsl[(r)->randcnt])
58
-
59
- #endif /* RAND */
60
-
61
-