Author: mbenson
Date: Tue May 20 13:40:32 2008
New Revision: 658418

URL: http://svn.apache.org/viewvc?rev=658418&view=rev
Log:
merge from branch: add functor implementations of Algorithms algorithms

Added:
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/
      - copied from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/DoUntil.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/DoUntil.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/DoWhile.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/DoWhile.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/FindWithinGenerator.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/FindWithinGenerator.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/FoldLeft.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/FoldLeft.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/FoldRight.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/FoldRight.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/GeneratorContains.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/GeneratorContains.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/InPlaceTransform.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/InPlaceTransform.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/IndexOfInGenerator.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/IndexOfInGenerator.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/PredicatedLoop.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/PredicatedLoop.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/RecursiveEvaluation.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/RecursiveEvaluation.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/RemoveMatching.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/RemoveMatching.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/RetainMatching.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/RetainMatching.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/UntilDo.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/UntilDo.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/WhileDo.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/WhileDo.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/core/algorithm/package.html
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/core/algorithm/package.html
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/GenerateUntil.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/generator/GenerateUntil.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/GenerateWhile.java
      - copied unchanged from r656291, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/generator/GenerateWhile.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/TransformedGenerator.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/generator/TransformedGenerator.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/UntilGenerate.java
      - copied unchanged from r656297, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/generator/UntilGenerate.java
    
commons/sandbox/functor/trunk/src/main/java/org/apache/commons/functor/generator/WhileGenerate.java
      - copied unchanged from r656292, 
commons/sandbox/functor/branches/mjbRadicalExperimentation/src/main/java/org/apache/commons/functor/generator/WhileGenerate.java
Modified:
    
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/TestAlgorithms.java
    
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/QuicksortExample.java
    
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/map/FixedSizeMap.java

Modified: 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/TestAlgorithms.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/TestAlgorithms.java?rev=658418&r1=658417&r2=658418&view=diff
==============================================================================
--- 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/TestAlgorithms.java
 (original)
+++ 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/TestAlgorithms.java
 Tue May 20 13:40:32 2008
@@ -113,9 +113,9 @@
     }
 
     public void testDetect() {
-        assertEquals(new 
Integer(3),Algorithms.detect(list.iterator(),equalsThree));
+        assertEquals(new 
Integer(3),Algorithms.detect(IteratorToGeneratorAdapter.adapt(list.iterator()),equalsThree));
         try {
-            Algorithms.detect(list.iterator(),equalsTwentyThree);
+            
Algorithms.detect(IteratorToGeneratorAdapter.adapt(list.iterator()),equalsTwentyThree);
             fail("Expected NoSuchElementException");
         } catch(NoSuchElementException e) {
             // expected
@@ -123,37 +123,37 @@
     }
 
     public void testDetectIfNone() {
-        assertEquals(new 
Integer(3),Algorithms.detect(list.iterator(),equalsThree,"Xyzzy"));
-        
assertEquals("Xyzzy",Algorithms.detect(list.iterator(),equalsTwentyThree,"Xyzzy"));
+        assertEquals(new 
Integer(3),Algorithms.detect(IteratorToGeneratorAdapter.adapt(list.iterator()),equalsThree,"Xyzzy"));
+        
assertEquals("Xyzzy",Algorithms.detect(IteratorToGeneratorAdapter.adapt(list.iterator()),equalsTwentyThree,"Xyzzy"));
     }
 
     public void testForEach() {
         Summer summer = new Summer();
-        Algorithms.foreach(list.iterator(),summer);
+        
Algorithms.foreach(IteratorToGeneratorAdapter.adapt(list.iterator()),summer);
         assertEquals(sum,summer.sum);
     }
 
     public void testSelect1() {
-        Collection result = 
Algorithms.collect(Algorithms.select(list.iterator(),isEven));
+        Collection result = 
Algorithms.select(IteratorToGeneratorAdapter.adapt(list.iterator()),isEven).toCollection();
         assertNotNull(result);
         assertEquals(evens,result);
     }
 
     public void testSelect2() {
         ArrayList result = new ArrayList();
-        
assertSame(result,Algorithms.collect(Algorithms.select(list.iterator(),isEven),result));
+        
assertSame(result,Algorithms.select(IteratorToGeneratorAdapter.adapt(list.iterator()),isEven).to(result));
         assertEquals(evens,result);
     }
 
     public void testReject1() {
-        Collection result = 
Algorithms.collect(Algorithms.reject(list.iterator(),isOdd));
+        Collection result = 
Algorithms.reject(IteratorToGeneratorAdapter.adapt(list.iterator()),isOdd).toCollection();
         assertNotNull(result);
         assertEquals(evens,result);
     }
 
     public void testReject2() {
         ArrayList result = new ArrayList();
-        
assertSame(result,Algorithms.collect(Algorithms.reject(list.iterator(),isOdd),result));
+        
assertSame(result,Algorithms.reject(IteratorToGeneratorAdapter.adapt(list.iterator()),isOdd).to(result));
         assertEquals(evens,result);
     }
 
@@ -194,14 +194,16 @@
     }
 
     public void testApply() {
-        Collection result = 
IteratorToGeneratorAdapter.adapt(Algorithms.apply(list.iterator(),new 
Doubler())).toCollection();
+        Collection result = 
Algorithms.apply(IteratorToGeneratorAdapter.adapt(list.iterator()), new 
Doubler())
+                .toCollection();
         assertNotNull(result);
         assertEquals(doubled,result);
     }
 
     public void testApply2() {
         Set set = new HashSet();
-        
assertSame(set,IteratorToGeneratorAdapter.adapt(Algorithms.apply(list.iterator(),Identity.instance())).to(set));
+        assertSame(set, 
Algorithms.apply(IteratorToGeneratorAdapter.adapt(list.iterator()), 
Identity.instance())
+                .to(set));
         assertEquals(list.size(),set.size());
         for (Iterator iter = list.iterator(); iter.hasNext(); ) {
             assertTrue(set.contains(iter.next()));
@@ -210,7 +212,8 @@
 
     public void testApply3() {
         Set set = new HashSet();
-        
assertSame(set,IteratorToGeneratorAdapter.adapt(Algorithms.apply(listWithDuplicates.iterator(),Identity.instance())).to(set));
+        assertSame(set, 
Algorithms.apply(IteratorToGeneratorAdapter.adapt(listWithDuplicates.iterator()),
+                Identity.instance()).to(set));
         assertTrue(listWithDuplicates.size() > set.size());
         for (Iterator iter = listWithDuplicates.iterator(); iter.hasNext(); ) {
             assertTrue(set.contains(iter.next()));
@@ -218,13 +221,13 @@
     }
 
     public void testContains() {
-        assertTrue(Algorithms.contains(list.iterator(),equalsThree));
-        assertTrue(!Algorithms.contains(list.iterator(),equalsTwentyThree));
+        
assertTrue(Algorithms.contains(IteratorToGeneratorAdapter.adapt(list.iterator()),equalsThree));
+        
assertTrue(!Algorithms.contains(IteratorToGeneratorAdapter.adapt(list.iterator()),equalsTwentyThree));
     }
 
     public void testInject() {
-        Object result = Algorithms.inject(
-            list.iterator(),
+        Object result = Algorithms.inject(IteratorToGeneratorAdapter.adapt(
+            list.iterator()),
             new Integer(0),
             new BinaryFunction() {
                 public Object evaluate(Object a, Object b) {
@@ -235,7 +238,7 @@
     }
 
     public void testLimit() {
-        Collection col = 
IteratorToGeneratorAdapter.adapt(Algorithms.until(list.iterator(), new 
Offset(2))).toCollection();
+        Collection col = 
Algorithms.until(IteratorToGeneratorAdapter.adapt(list.iterator()), new 
Offset(2)).toCollection();
         assertEquals("[0, 1]", col.toString());
     }
 

Modified: 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/QuicksortExample.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/QuicksortExample.java?rev=658418&r1=658417&r2=658418&view=diff
==============================================================================
--- 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/QuicksortExample.java
 (original)
+++ 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/QuicksortExample.java
 Tue May 20 13:40:32 2008
@@ -33,6 +33,7 @@
 import org.apache.commons.functor.core.comparator.IsGreaterThanOrEqual;
 import org.apache.commons.functor.core.comparator.IsLessThan;
 import org.apache.commons.functor.core.composite.ConditionalUnaryFunction;
+import org.apache.commons.functor.generator.IteratorToGeneratorAdapter;
 
 /*
  * ----------------------------------------------------------------------------
@@ -461,9 +462,9 @@
  */
     private BinaryFunction lesserTail = new ObjectListFunction() {
         public Object evaluate(Object head, List tail) {
-            return Algorithms.collect(Algorithms.select(
-                tail.iterator(),
-                IsLessThan.instance((Comparable) head)));
+            return Algorithms.select(
+                    IteratorToGeneratorAdapter.adapt(tail.iterator()),
+                IsLessThan.instance((Comparable) head)).toCollection();
         }
     };
 
@@ -474,9 +475,9 @@
  */
     private BinaryFunction greaterTail = new ObjectListFunction() {
         public Object evaluate(Object head, List tail) {
-            return Algorithms.collect(Algorithms.select(
-                tail.iterator(),
-                IsGreaterThanOrEqual.instance((Comparable) head)));
+            return Algorithms.select(
+                    IteratorToGeneratorAdapter.adapt(tail.iterator()),
+                IsGreaterThanOrEqual.instance((Comparable) 
head)).toCollection();
         }
     };
 

Modified: 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/map/FixedSizeMap.java
URL: 
http://svn.apache.org/viewvc/commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/map/FixedSizeMap.java?rev=658418&r1=658417&r2=658418&view=diff
==============================================================================
--- 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/map/FixedSizeMap.java
 (original)
+++ 
commons/sandbox/functor/trunk/src/test/java/org/apache/commons/functor/example/map/FixedSizeMap.java
 Tue May 20 13:40:32 2008
@@ -24,6 +24,7 @@
 import org.apache.commons.functor.BinaryProcedure;
 import org.apache.commons.functor.adapter.BinaryProcedureBinaryFunction;
 import org.apache.commons.functor.core.composite.UnaryNot;
+import org.apache.commons.functor.generator.IteratorToGeneratorAdapter;
 
 /**
  * @version $Revision$ $Date$
@@ -50,7 +51,7 @@
                 Map dest = (Map) a;
                 Map src = (Map) b;
 
-                if 
(Algorithms.contains(src.keySet().iterator(),UnaryNot.not(new 
ContainsKey(dest)))) {
+                if 
(Algorithms.contains(IteratorToGeneratorAdapter.adapt(src.keySet().iterator()),UnaryNot.not(new
 ContainsKey(dest)))) {
                     throw new IllegalArgumentException();
                 } else {
                     dest.putAll(src);


Reply via email to