/* * File: AbstractUnweightedEnsembleTest.java * Authors: Justin Basilico * Project: Cognitive Foundry Learning Core * * Copyright 2011 Cognitive Foundry. All rights reserved. */ package gov.sandia.cognition.learning.algorithm.ensemble; import gov.sandia.cognition.learning.function.scalar.LinearFunction; import gov.sandia.cognition.evaluator.Evaluator; import java.util.ArrayList; import java.util.List; import org.junit.Test; import static org.junit.Assert.*; /** * Unit tests for class AbstractUnweightedEnsemble. * * @author Justin Basilico * @since 3.3.3 */ public class AbstractUnweightedEnsembleTest extends Object { /** * Creates a new test. */ public AbstractUnweightedEnsembleTest() { } /** * Test of constructors of class AbstractUnweightedEnsemble. */ @Test public void testConstructors() { AbstractUnweightedEnsemble<Evaluator<Double, Double>> instance = new DummyUnweightedEnsemble<Evaluator<Double, Double>>(); assertNotNull(instance.getMembers()); assertTrue(instance.getMembers().isEmpty()); List<Evaluator<Double, Double>> members = new ArrayList<Evaluator<Double, Double>>(); instance = new DummyUnweightedEnsemble<Evaluator<Double, Double>>( members); assertSame(members, instance.getMembers()); } /** * Test of clone method, of class AbstractUnweightedEnsemble. */ @Test public void testClone() { AbstractUnweightedEnsemble<Evaluator<Double, Double>> instance = new DummyUnweightedEnsemble<Evaluator<Double, Double>>(); AbstractUnweightedEnsemble<Evaluator<Double, Double>> clone = instance.clone(); assertNotSame(instance, clone); assertEquals(instance.getMembers(), clone.getMembers()); assertNotSame(instance.getMembers(), clone.getMembers()); assertNotSame(instance.getMembers(), clone.getMembers()); assertNotSame(clone, instance.clone()); } /** * Test of add method, of class AbstractUnweightedEnsemble. */ @Test public void testAdd() { AbstractUnweightedEnsemble<Evaluator<Double, Double>> instance = new DummyUnweightedEnsemble<Evaluator<Double, Double>>(); assertTrue(instance.getMembers().isEmpty()); LinearFunction member = new LinearFunction(); instance.add(member); assertEquals(1, instance.getMembers().size()); assertSame(member, instance.getMembers().get(0)); member = new LinearFunction(2.0, 1.0); instance.add(member); assertEquals(2, instance.getMembers().size()); assertSame(member, instance.getMembers().get(1)); boolean exceptionThrown = false; try { instance.add(null); } catch (IllegalArgumentException e) { exceptionThrown = true; } finally { assertTrue(exceptionThrown); } assertEquals(2, instance.getMembers().size()); } /** * Test of getMembers method, of class AbstractUnweightedEnsemble. */ @Test public void testGetMembers() { this.testSetMembers(); } /** * Test of setMembers method, of class AbstractUnweightedEnsemble. */ @Test public void testSetMembers() { AbstractUnweightedEnsemble<Evaluator<Double, Double>> instance = new DummyUnweightedEnsemble<Evaluator<Double, Double>>(); assertNotNull(instance.getMembers()); assertTrue(instance.getMembers().isEmpty()); List<Evaluator<Double, Double>> members = new ArrayList<Evaluator<Double, Double>>(); instance.setMembers(members); assertSame(members, instance.getMembers()); members = null; instance.setMembers(members); assertSame(members, instance.getMembers()); } /** * A dummy pass-through class. * * @param <MemberType> * The member type. */ public static class DummyUnweightedEnsemble<MemberType> extends AbstractUnweightedEnsemble<MemberType> { public DummyUnweightedEnsemble() { super(); } public DummyUnweightedEnsemble( final List<MemberType> members) { super(members); } } }