[macruby-changes] [3445] MacRuby/trunk/spec/macruby/library/dispatch/enumerable_spec.rb

source_changes at macosforge.org source_changes at macosforge.org
Mon Feb 8 15:03:48 PST 2010


Revision: 3445
          http://trac.macosforge.org/projects/ruby/changeset/3445
Author:   ernest.prabhakar at gmail.com
Date:     2010-02-08 15:03:48 -0800 (Mon, 08 Feb 2010)
Log Message:
-----------
Initial enumerable spec

Added Paths:
-----------
    MacRuby/trunk/spec/macruby/library/dispatch/enumerable_spec.rb

Added: MacRuby/trunk/spec/macruby/library/dispatch/enumerable_spec.rb
===================================================================
--- MacRuby/trunk/spec/macruby/library/dispatch/enumerable_spec.rb	                        (rev 0)
+++ MacRuby/trunk/spec/macruby/library/dispatch/enumerable_spec.rb	2010-02-08 23:03:48 UTC (rev 3445)
@@ -0,0 +1,68 @@
+require File.dirname(__FILE__) + "/../../spec_helper"
+require 'dispatch'
+
+if MACOSX_VERSION >= 10.6
+  describe "parallel Enumerable" do
+    before :each do
+      @ary = (1..3).to_a
+    end
+
+    describe :p_each do
+      it "exists on objects that support Enumerable" do
+        @ary.respond_to?(:p_each).should == true
+      end
+
+      it "behaves like each" do
+        @sum1 = 0
+        @ary.each {|v| @sum1 += v*v}
+        @sum2 = 0
+        @q = Dispatch.queue_for(@sum2)
+        @ary.p_each {|v| temp = v*v; @q.sync {@sum2 += temp} }
+        @sum1.should == @sum2
+      end
+      
+      it "executes concurrently" do
+        true.should == true
+      end
+    end
+    
+    describe :p_each_with_index do
+      it "exists on objects that support Enumerable" do
+        @ary.respond_to?(:p_each).should == true
+      end
+      it "behaves like each_with_index" do
+        @ary.should.respond_to? :p_each_with_index
+      end
+      
+      it "executes concurrently" do
+        true.should == true
+      end
+    end
+    
+    describe :p_inject do
+      it "exists on objects that support Enumerable" do
+        @ary.respond_to?(:p_each).should == true
+      end
+      it "behaves like inject" do
+        @ary.should.respond_to? :p_inject
+      end
+      
+      it "executes concurrently" do
+        true.should == true
+      end
+    end
+
+    describe :p_map do
+      it "exists on objects that support Enumerable" do
+        @ary.respond_to?(:p_each).should == true
+      end
+      it "behaves like map" do
+        @ary.should.respond_to? :p_map
+      end
+      
+      it "executes concurrently" do
+        true.should == true
+      end
+    end
+  end
+end
\ No newline at end of file
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macruby-changes/attachments/20100208/3840c392/attachment.html>


More information about the macruby-changes mailing list