Skip to content
Snippets Groups Projects
Commit 53bea1a1 authored by Jeffrey Phillips Freeman's avatar Jeffrey Phillips Freeman :boom:
Browse files

Added Complete Unit tests for SOM Color Map Demo.

git-svn-id: svn://svn.syncleus.com/dANN/trunk@387 6ae8b97b-f314-0410-8212-aecf10b92ded
parent 06c417ab
No related branches found
No related tags found
No related merge requests found
......@@ -110,6 +110,9 @@
</Layout>
<SubComponents>
<Component class="javax.swing.JSpinner" name="iterationsSpinner">
<Properties>
<Property name="name" type="java.lang.String" value="iterationsSpinner" noResource="true"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel1">
<Properties>
......@@ -122,6 +125,9 @@
</Properties>
</Component>
<Component class="javax.swing.JSpinner" name="learningRateSpinner">
<Properties>
<Property name="name" type="java.lang.String" value="learningRateSpinner" noResource="true"/>
</Properties>
</Component>
<Component class="javax.swing.JLabel" name="jLabel3">
<Properties>
......@@ -136,11 +142,13 @@
<StringItem index="1" value="2D"/>
</StringArray>
</Property>
<Property name="name" type="java.lang.String" value="dimentionalityComboBox" noResource="true"/>
</Properties>
</Component>
<Component class="javax.swing.JButton" name="trainDisplayButton">
<Properties>
<Property name="text" type="java.lang.String" value="Train &amp; Display"/>
<Property name="name" type="java.lang.String" value="trainDisplayButton" noResource="true"/>
</Properties>
<Events>
<EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="trainDisplayButtonActionPerformed"/>
......
......@@ -29,7 +29,7 @@ public class ColorMapDemo extends javax.swing.JFrame implements ActionListener
private final static Logger LOGGER = Logger.getLogger(ColorMapDemo.class);
private SpinnerNumberModel iterationsModel = new SpinnerNumberModel(INITIAL_ITERATIONS, 1, 10000,100);
private SpinnerNumberModel learningRateModel = new SpinnerNumberModel(INITIAL_LEARNING_RATE, 0.01, 1.0, 0.01);
private SpinnerNumberModel learningRateModel = new SpinnerNumberModel(INITIAL_LEARNING_RATE, Double.MIN_VALUE, 1.0, 0.01);
private Color[] color1d;
private Color[][] color2d;
......@@ -192,15 +192,21 @@ public class ColorMapDemo extends javax.swing.JFrame implements ActionListener
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("SOM Color Map Demo");
iterationsSpinner.setName("iterationsSpinner"); // NOI18N
jLabel1.setText("Training Iterations:");
jLabel2.setText("Learning Rate:");
learningRateSpinner.setName("learningRateSpinner"); // NOI18N
jLabel3.setText("Dimentionality:");
dimentionalityComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "1D", "2D" }));
dimentionalityComboBox.setName("dimentionalityComboBox"); // NOI18N
trainDisplayButton.setText("Train & Display");
trainDisplayButton.setName("trainDisplayButton"); // NOI18N
trainDisplayButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
trainDisplayButtonActionPerformed(evt);
......
/******************************************************************************
* *
* Copyright: (c) Syncleus, Inc. *
* *
* You may redistribute and modify this source code under the terms and *
* conditions of the Open Source Community License - Type C version 1.0 *
* or any later version as published by Syncleus, Inc. at www.syncleus.com. *
* There should be a copy of the license included with this file. If a copy *
* of the license is not included you are granted no right to distribute or *
* otherwise use this file except through a legal and valid license. You *
* should also contact Syncleus, Inc. at the information below if you cannot *
* find a license: *
* *
* Syncleus, Inc. *
* 2604 South 12th Street *
* Philadelphia, PA 19148 *
* *
******************************************************************************/
package com.syncleus.tests.dann.examples.colormap;
import com.syncleus.core.dann.examples.colormap.AboutDialog;
import org.fest.swing.fixture.DialogFixture;
import org.fest.swing.edt.FailOnThreadViolationRepaintManager;
import org.fest.swing.edt.GuiQuery;
import org.fest.swing.edt.GuiActionRunner;
import org.junit.*;
public class TestAboutDialog
{
private DialogFixture aboutFixture;
@BeforeClass
public static void setUpOnce()
{
FailOnThreadViolationRepaintManager.install();
}
@Before
public void onSetUp()
{
AboutDialog aboutDialog = GuiActionRunner.execute(new GuiQuery<AboutDialog>()
{
protected AboutDialog executeInEDT()
{
return new AboutDialog(null, false);
}
});
aboutFixture = new DialogFixture(aboutDialog);
aboutFixture.show();
}
@After
public void tearDown()
{
aboutFixture.cleanUp();
}
@Test
public void testDisplays()
{
aboutFixture.requireVisible();
aboutFixture.button("ok button").click();
aboutFixture.requireNotVisible();
}
}
/******************************************************************************
* *
* Copyright: (c) Syncleus, Inc. *
* *
* You may redistribute and modify this source code under the terms and *
* conditions of the Open Source Community License - Type C version 1.0 *
* or any later version as published by Syncleus, Inc. at www.syncleus.com. *
* There should be a copy of the license included with this file. If a copy *
* of the license is not included you are granted no right to distribute or *
* otherwise use this file except through a legal and valid license. You *
* should also contact Syncleus, Inc. at the information below if you cannot *
* find a license: *
* *
* Syncleus, Inc. *
* 2604 South 12th Street *
* Philadelphia, PA 19148 *
* *
******************************************************************************/
package com.syncleus.tests.dann.examples.colormap;
import com.syncleus.core.dann.examples.colormap.ColorMapDemo;
import org.fest.swing.exception.UnexpectedException;
import org.fest.swing.fixture.FrameFixture;
import org.fest.swing.edt.FailOnThreadViolationRepaintManager;
import org.fest.swing.edt.GuiQuery;
import org.fest.swing.edt.GuiActionRunner;
import org.fest.swing.timing.Timeout;
import org.junit.*;
public class TestColorMapDemo
{
private FrameFixture colorMapDemoFixture;
@BeforeClass
public static void setUpOnce()
{
FailOnThreadViolationRepaintManager.install();
}
@Before
public void onSetUp()
{
ColorMapDemo colorMapDemo = GuiActionRunner.execute(new GuiQuery<ColorMapDemo>()
{
protected ColorMapDemo executeInEDT()
{
return new ColorMapDemo();
}
});
colorMapDemoFixture = new FrameFixture(colorMapDemo);
colorMapDemoFixture.show();
}
@After
public void tearDown()
{
colorMapDemoFixture.cleanUp();
}
@Test
public void testComponents()
{
colorMapDemoFixture.requireVisible();
//test the spinner
//spinners should take values of arbitrary granularity
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("257");
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(257);
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("0.16492");
colorMapDemoFixture.spinner("learningRateSpinner").requireValue(0.16492);
//lets try incrementing
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("100");
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(100);
colorMapDemoFixture.spinner("iterationsSpinner").increment(9);
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(1000);
colorMapDemoFixture.spinner("iterationsSpinner").increment(100);
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(10000);
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("0.01");
colorMapDemoFixture.spinner("learningRateSpinner").increment(9);
double currentValue = Double.valueOf(colorMapDemoFixture.spinner("learningRateSpinner").text());
Assert.assertTrue("learning rate spinner did notincrement properly", (currentValue - 0.1) < 0.00001);
colorMapDemoFixture.spinner("learningRateSpinner").increment(100);
currentValue = Double.valueOf(colorMapDemoFixture.spinner("learningRateSpinner").text());
Assert.assertTrue("learning rate spinner did notincrement properly", (currentValue - 1.0) < 0.001);
//lets try decrementing
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("10000");
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(10000);
colorMapDemoFixture.spinner("iterationsSpinner").decrement(10);
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(9000);
colorMapDemoFixture.spinner("iterationsSpinner").decrement(100);
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(100);
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("1.0");
colorMapDemoFixture.spinner("learningRateSpinner").decrement(10);
currentValue = Double.valueOf(colorMapDemoFixture.spinner("learningRateSpinner").text());
Assert.assertTrue("learning rate spinner did notincrement properly", (currentValue - 0.9) < 0.00001);
colorMapDemoFixture.spinner("learningRateSpinner").decrement(100);
currentValue = Double.valueOf(colorMapDemoFixture.spinner("learningRateSpinner").text());
Assert.assertTrue("learning rate spinner did notincrement properly", (currentValue - 0.01) < 0.00001);
}
@Test(expected=UnexpectedException.class)
public void testIterationsMinimum()
{
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("1000");
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(1000);
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("0");
}
@Test(expected=UnexpectedException.class)
public void testIterationsMaximum()
{
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("1000");
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(1000);
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("100000");
}
@Test(expected=UnexpectedException.class)
public void testLearningRateMinimum()
{
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("0.5");
colorMapDemoFixture.spinner("learningRateSpinner").requireValue(0.5);
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("0");
}
@Test(expected=UnexpectedException.class)
public void testLearningRateMaximum()
{
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("0.5");
colorMapDemoFixture.spinner("learningRateSpinner").requireValue(0.5);
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("1.001");
}
@Test
public void testTrainingDisplay()
{
colorMapDemoFixture.requireVisible();
//train and display for various parameters
colorMapDemoFixture.button("trainDisplayButton").requireEnabled();
colorMapDemoFixture.button("trainDisplayButton").click();
colorMapDemoFixture.button("trainDisplayButton").requireDisabled();
colorMapDemoFixture.button("trainDisplayButton").requireEnabled(Timeout.timeout(30000));
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("1000");
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(1000);
colorMapDemoFixture.button("trainDisplayButton").click();
colorMapDemoFixture.button("trainDisplayButton").requireDisabled();
colorMapDemoFixture.button("trainDisplayButton").requireEnabled(Timeout.timeout(30000));
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("100");
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(100);
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("0.1");
colorMapDemoFixture.spinner("learningRateSpinner").requireValue(0.1);
colorMapDemoFixture.comboBox("dimentionalityComboBox").selectItem("2D");
colorMapDemoFixture.comboBox("dimentionalityComboBox").requireSelection(1);
colorMapDemoFixture.button("trainDisplayButton").click();
colorMapDemoFixture.button("trainDisplayButton").requireDisabled();
colorMapDemoFixture.button("trainDisplayButton").requireEnabled(Timeout.timeout(30000));
colorMapDemoFixture.spinner("iterationsSpinner").enterTextAndCommit("250");
colorMapDemoFixture.spinner("iterationsSpinner").requireValue(250);
colorMapDemoFixture.spinner("learningRateSpinner").enterTextAndCommit("1.0");
colorMapDemoFixture.spinner("learningRateSpinner").requireValue(1.0);
colorMapDemoFixture.comboBox("dimentionalityComboBox").selectItem("1D");
colorMapDemoFixture.comboBox("dimentionalityComboBox").requireSelection(0);
colorMapDemoFixture.button("trainDisplayButton").click();
colorMapDemoFixture.button("trainDisplayButton").requireDisabled();
colorMapDemoFixture.button("trainDisplayButton").requireEnabled(Timeout.timeout(30000));
}
}
......@@ -60,8 +60,9 @@ public class TestAboutDialog
}
@Test
public void shouldCopyTextInLabelWhenClickingButton()
public void testDisplays()
{
aboutFixture.requireVisible();
aboutFixture.button("ok button").click();
aboutFixture.requireNotVisible();
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment