Author: tommaso
Date: Tue May 29 10:30:45 2012
New Revision: 1343651
URL: http://svn.apache.org/viewvc?rev=1343651&view=rev
Log:
adding OR and NOT tests
Modified:
labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java
Modified:
labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java
URL:
http://svn.apache.org/viewvc/labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java?rev=1343651&r1=1343650&r2=1343651&view=diff
==============================================================================
---
labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java
(original)
+++
labs/yay/trunk/core/src/test/java/org/apache/yay/NeuralNetworkFactoryTest.java
Tue May 29 10:30:45 2012
@@ -45,21 +45,44 @@ public class NeuralNetworkFactoryTest {
assertEquals(1l, Math.round(andNN.predict(createSample(1d, 1d))));
}
- private Example<Double> createSample(final Double x, final Double y) {
+ @Test
+ public void orNNCreationTest() throws Exception {
+ Set<WeightsMatrix> orWeightsMatrixSet = new HashSet<WeightsMatrix>();
+ double[][] weights = {{-10d, 20d, 20d}};
+ WeightsMatrix singleOrLayerWeights = new WeightsMatrix(weights);
+ orWeightsMatrixSet.add(singleOrLayerWeights);
+ NeuralNetwork<Double,Double> orNN = NeuralNetworkFactory.create(new
LinkedList<TrainingExample<Double, Double>>(), orWeightsMatrixSet, new
VoidLearningStrategy(), new FeedForwardStrategy(new SigmoidFunction()));
+ assertEquals(1l, Math.round(orNN.predict(createSample(1d, 0d))));
+ assertEquals(1l, Math.round(orNN.predict(createSample(0d, 1d))));
+ assertEquals(0l, Math.round(orNN.predict(createSample(0d, 0d))));
+ assertEquals(1l, Math.round(orNN.predict(createSample(1d, 1d))));
+ }
+
+ @Test
+ public void notNNCreationTest() throws Exception {
+ Set<WeightsMatrix> notWeightsMatrixSet = new HashSet<WeightsMatrix>();
+ double[][] weights = {{10d, -20d}};
+ WeightsMatrix singleNotLayerWeights = new WeightsMatrix(weights);
+ notWeightsMatrixSet.add(singleNotLayerWeights);
+ NeuralNetwork<Double,Double> orNN = NeuralNetworkFactory.create(new
LinkedList<TrainingExample<Double, Double>>(), notWeightsMatrixSet, new
VoidLearningStrategy(), new FeedForwardStrategy(new SigmoidFunction()));
+ assertEquals(1l, Math.round(orNN.predict(createSample(0d))));
+ assertEquals(0l, Math.round(orNN.predict(createSample(1d))));
+ }
+
+ private Example<Double> createSample(final Double... params) {
return new Example<Double>() {
@Override
public Vector<Feature<Double>> getFeatureVector() {
- Vector<Feature<Double>> features = new Vector<Feature<Double>>();
- Feature<Double> byasFeature = new Feature<Double>();
- byasFeature.setValue(1d);
- features.add(byasFeature);
- Feature<Double> trueFeature = new Feature<Double>();
- trueFeature.setValue(x);
- features.add(trueFeature);
- Feature<Double> falseFeature = new Feature<Double>();
- falseFeature.setValue(y);
- features.add(falseFeature);
- return features;
+ Vector<Feature<Double>> features = new Vector<Feature<Double>>();
+ Feature<Double> byasFeature = new Feature<Double>();
+ byasFeature.setValue(1d);
+ features.add(byasFeature);
+ for (Double d : params) {
+ Feature<Double> feature = new Feature<Double>();
+ feature.setValue(d);
+ features.add(feature);
+ }
+ return features;
}
};
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]