/* * File: DefaultWeightedInputOutputPairTest.java * Authors: Justin Basilico * Company: Sandia National Laboratories * Project: Cognitive Foundry * * Copyright October 5, 2006, Sandia Corporation. Under the terms of Contract * DE-AC04-94AL85000, there is a non-exclusive license for use of this work by * or on behalf of the U.S. Government. Export of this program may require a * license from the United States Government. See CopyrightHistory.txt for * complete details. * */ package gov.sandia.cognition.learning.data; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import junit.framework.TestCase; /** * * @author jdbasil */ public class DefaultWeightedInputOutputPairTest extends TestCase { public DefaultWeightedInputOutputPairTest(String testName) { super(testName); } public void testConstants() { assertEquals(1.0, DefaultWeightedInputOutputPair.DEFAULT_WEIGHT); } public void testConstructors() { WeightedInputOutputPair<Object, Object> instance = new DefaultWeightedInputOutputPair<Object, Object>(); assertNull(instance.getInput()); assertNull(instance.getOutput()); assertEquals(DefaultWeightedInputOutputPair.DEFAULT_WEIGHT, instance.getWeight()); Object input = new Object(); Object output = new Object(); double weight = Math.random(); instance = new DefaultWeightedInputOutputPair<Object, Object>(input, output, weight); assertSame(input, instance.getInput()); assertSame(output, instance.getOutput()); assertEquals(weight, instance.getWeight()); weight = Math.random(); instance = new DefaultWeightedInputOutputPair<Object, Object>(instance, weight); assertSame(input, instance.getInput()); assertSame(output, instance.getOutput()); assertEquals(weight, instance.getWeight()); } public void testCreate() { System.out.println( "Create" ); Double input = 1.0; Integer output = 2; double weight = 3.1415; WeightedInputOutputPair<Double, Integer> instance = DefaultWeightedInputOutputPair.create(input,output,weight); assertSame( input, instance.getInput() ); assertSame( output, instance.getOutput() ); assertEquals( weight, instance.getWeight() ); } /** * Test of getWeight method, of class gov.sandia.isrc.learning.util.data.WeightedInputOutputPair. */ public void testGetWeight() { double weight = Math.random(); WeightedInputOutputPair<Object, Object> instance = new DefaultWeightedInputOutputPair<Object, Object>(null, null, weight); assertEquals(weight, instance.getWeight()); } /** * Test of setWeight method, of class gov.sandia.isrc.learning.util.data.WeightedInputOutputPair. */ public void testSetWeight() { double weight = Math.random(); DefaultWeightedInputOutputPair<Object, Object> instance = new DefaultWeightedInputOutputPair<Object, Object>(null, null, weight); assertEquals(weight, instance.getWeight()); double newWeight = Math.random(); instance.setWeight(newWeight); assertEquals(newWeight, instance.getWeight()); } public void testMergeCollections() { System.out.println( "mergeCollections" ); List<Double> inputs = Arrays.asList( 1.0, 2.0, 3.0 ); List<Integer> outputs = Arrays.asList( 0, 1, 2 ); List<Double> weights = Arrays.asList( 10.0, 11.0, 12.0 ); ArrayList<DefaultWeightedInputOutputPair<Double,Integer>> pairs = DefaultWeightedInputOutputPair.mergeCollections(inputs, outputs,weights); assertEquals( inputs.size(), pairs.size() ); for( int i = 0; i < pairs.size(); i++ ) { assertSame( inputs.get(i), pairs.get(i).getInput() ); assertSame( outputs.get(i), pairs.get(i).getOutput() ); assertEquals( weights.get(i), pairs.get(i).getWeight() ); } weights = new ArrayList<Double>(1); try { DefaultWeightedInputOutputPair.mergeCollections(inputs, outputs,weights); fail( "Not the same size!" ); } catch (Exception e) { System.out.println( "Good: " + e ); } } }