[macruby-changes] [3043] MacRuby/trunk/test_vm/gcd.rb

source_changes at macosforge.org source_changes at macosforge.org
Tue Nov 24 18:36:13 PST 2009


Revision: 3043
          http://trac.macosforge.org/projects/ruby/changeset/3043
Author:   lsansonetti at apple.com
Date:     2009-11-24 18:36:10 -0800 (Tue, 24 Nov 2009)
Log Message:
-----------
added initial test file for GCD

Added Paths:
-----------
    MacRuby/trunk/test_vm/gcd.rb

Added: MacRuby/trunk/test_vm/gcd.rb
===================================================================
--- MacRuby/trunk/test_vm/gcd.rb	                        (rev 0)
+++ MacRuby/trunk/test_vm/gcd.rb	2009-11-25 02:36:10 UTC (rev 3043)
@@ -0,0 +1,64 @@
+n = (0..999).to_a.inject(0) { |b, i| b + i }.to_s
+
+assert n, %{
+  n = 0
+  q = Dispatch::Queue.new('foo')
+  g = Dispatch::Group.new
+  1000.times do |i|
+    g.dispatch(q) { n += i }
+  end
+  g.wait
+  p n
+}
+
+assert n, %{
+  n = 0
+  q = Dispatch::Queue.new('foo')
+  g = Dispatch::Group.new
+  1000.times do |i|
+    g.dispatch(Dispatch::Queue.concurrent) do
+      g.dispatch(q) { n += i }
+    end
+  end
+  g.wait
+  p n
+}
+
+assert n, %{
+  n = 0
+  q = Dispatch::Queue.new('foo')
+  g = Dispatch::Group.new
+  1000.times do |i|
+    g.dispatch(Dispatch::Queue.concurrent) do
+      q.dispatch(true) { n += i }
+    end
+  end
+  g.wait
+  p n
+}
+
+assert n, %{
+  n = 0
+  q = Dispatch::Queue.new('foo')
+  q.apply(1000) do |i|
+    n += i
+  end
+  p n
+}
+
+assert n, %{
+  n = 0
+  q = Dispatch::Queue.new('foo')
+  Dispatch::Queue.concurrent.apply(1000) do |i|
+    q.dispatch { n += i }
+  end
+  q.dispatch(true) {}
+  p n
+}
+
+assert ':ok', %{
+  g = Dispatch::Group.new
+  g.dispatch(Dispatch::Queue.concurrent) { raise('hey') }
+  g.wait
+  p :ok
+}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20091124/71fb9085/attachment.html>


More information about the macruby-changes mailing list