Repository: commons-math
Updated Branches:
  refs/heads/master 1f7b1c12f -> 18a027b1f


MATH-1265

Implement "Iterable".


Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/18a027b1
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/18a027b1
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/18a027b1

Branch: refs/heads/master
Commit: 18a027b1f04e420c18ae57aebe8fd031b5ff251c
Parents: 1f7b1c1
Author: Gilles <er...@apache.org>
Authored: Fri Sep 4 16:11:41 2015 +0200
Committer: Gilles <er...@apache.org>
Committed: Fri Sep 4 16:11:41 2015 +0200

----------------------------------------------------------------------
 src/changes/changes.xml                         |  3 +++
 .../ml/neuralnet/twod/NeuronSquareMesh2D.java   |  9 ++++++-
 .../neuralnet/twod/NeuronSquareMesh2DTest.java  | 26 ++++++++++++++++++++
 3 files changed, 37 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-math/blob/18a027b1/src/changes/changes.xml
----------------------------------------------------------------------
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 75cad4e..ee4b64c 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -54,6 +54,9 @@ If the output is not quite correct, check for invisible 
trailing spaces!
     </release>
 
     <release version="4.0" date="XXXX-XX-XX" description="">
+      <action dev="erans" type="add" issue="MATH-1265"> <!-- backported to 3.6 
-->
+        "NeuronSquareMesh2D" (package "o.a.c.m.ml.neuralnet.twod") implements 
"Iterable".
+      </action>
       <action dev="erans" type="add" issue="MATH-1264"> <!-- backported to 3.6 
-->
         "MapUtils" (package "o.a.c.m.ml.neuralnet"): Method to sort units 
according to distance
         from a given vector.

http://git-wip-us.apache.org/repos/asf/commons-math/blob/18a027b1/src/main/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2D.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2D.java
 
b/src/main/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2D.java
index d3c233b..17c7a26 100644
--- 
a/src/main/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2D.java
+++ 
b/src/main/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2D.java
@@ -41,7 +41,9 @@ import 
org.apache.commons.math4.ml.neuralnet.SquareNeighbourhood;
  * @see org.apache.commons.math4.ml.neuralnet.sofm
  * @since 3.3
  */
-public class NeuronSquareMesh2D implements Serializable {
+public class NeuronSquareMesh2D
+    implements Iterable<Neuron>,
+               Serializable {
     /** Serial version ID */
     private static final long serialVersionUID = 1L;
     /** Underlying network. */
@@ -195,6 +197,11 @@ public class NeuronSquareMesh2D implements Serializable {
         createLinks();
     }
 
+    /** {@inheritDoc} */
+    public Iterator<Neuron> iterator() {
+        return network.iterator();
+    }
+
     /**
      * Retrieves the underlying network.
      * A reference is returned (enabling, for example, the network to be

http://git-wip-us.apache.org/repos/asf/commons-math/blob/18a027b1/src/test/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2DTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2DTest.java
 
b/src/test/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2DTest.java
index a48a1ce..646ecf6 100644
--- 
a/src/test/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2DTest.java
+++ 
b/src/test/java/org/apache/commons/math4/ml/neuralnet/twod/NeuronSquareMesh2DTest.java
@@ -845,4 +845,30 @@ public class NeuronSquareMesh2DTest {
                                              
NeuronSquareMesh2D.HorizontalDirection.RIGHT,
                                              
NeuronSquareMesh2D.VerticalDirection.DOWN).getIdentifier());
     }
+
+    @Test
+    public void testIterator() {
+        final FeatureInitializer[] initArray = { init };
+        final NeuronSquareMesh2D map = new NeuronSquareMesh2D(3, true,
+                                                              3, true,
+                                                              
SquareNeighbourhood.VON_NEUMANN,
+                                                              initArray);
+        final Set<Neuron> fromMap = new HashSet<Neuron>();
+        for (Neuron n : map) {
+            fromMap.add(n);
+        }
+
+        final Network net = map.getNetwork();
+        final Set<Neuron> fromNet = new HashSet<Neuron>();
+        for (Neuron n : net) {
+            fromNet.add(n);
+        }
+
+        for (Neuron n : fromMap) {
+            Assert.assertTrue(fromNet.contains(n));
+        }
+        for (Neuron n : fromNet) {
+            Assert.assertTrue(fromMap.contains(n));
+        }
+    }
 }

Reply via email to