/*
* File: DefaultClusterTest.java
* Authors: Justin Basilico
* Company: Sandia National Laboratories
* Project: Cognitive Framework Lite
*
* Copyright March 16, 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.algorithm.clustering.cluster;
import java.util.ArrayList;
import junit.framework.*;
/**
* This class implements JUnit tests for the following classes:
*
* DefaultCluster
*
* @author Justin Basilico
* @since 1.0
*/
public class DefaultClusterTest
extends TestCase
{
/**
* Creates a new instance of DefaultClusterTest.
*
* @param testName The test name.
*/
public DefaultClusterTest(
String testName)
{
super(testName);
}
/**
* Tests the DefaultCluster class.
*
* If this test fails, contact Justin Basilico.
*/
public void testDefaultCluster()
{
// Create a cluster with the default constructor.
DefaultCluster<Object> cluster1 = new DefaultCluster<Object>();
assertEquals(-1, cluster1.getIndex());
assertNotNull(cluster1.getMembers());
assertEquals(0, cluster1.getMembers().size());
// Test setting the index.
cluster1.setIndex(47);
assertEquals(47, cluster1.getIndex());
// Test modifying the members.
cluster1.getMembers().add(new Object());
assertEquals(1, cluster1.getMembers().size());
// Create a cluster with an index.
DefaultCluster<Object> cluster2 = new DefaultCluster<Object>(2);
assertEquals(2, cluster2.getIndex());
assertNotNull(cluster2.getMembers());
assertEquals(0, cluster2.getMembers().size());
// Create a list of members.
ArrayList<Object> members = new ArrayList<Object>();
Object o1 = new Object();
Object o2 = new Object();
Object o3 = new Object();
members.add(o1);
members.add(o2);
// Create a cluster with a given set of members.
DefaultCluster<Object> cluster3 = new DefaultCluster<Object>(members);
assertEquals(-1, cluster3.getIndex());
assertNotNull(cluster3.getMembers());
assertNotSame(members, cluster3.getMembers());
assertEquals(2, cluster3.getMembers().size());
assertTrue(cluster3.getMembers().contains(o1));
assertTrue(cluster3.getMembers().contains(o2));
// Add a member to the member list. It should not effect the cluster
// membership list.
members.add(o3);
assertEquals(2, cluster3.getMembers().size());
assertFalse(cluster3.getMembers().contains(o3));
// Create a cluster with an index and members.
DefaultCluster<Object> cluster4 =
new DefaultCluster<Object>(4, members);
assertEquals(4, cluster4.getIndex());
assertNotSame(members, cluster4.getMembers());
// Create a cluster with a null set of members.
DefaultCluster<Object> cluster5 = new DefaultCluster<Object>(null);
assertEquals(-1, cluster5.getIndex());
assertNotNull(cluster5.getMembers());
assertEquals(0, cluster5.getMembers().size());
// Create a cluster with an index and a null set of members.
DefaultCluster<Object> cluster6 = new DefaultCluster<Object>(6, null);
assertEquals(6, cluster6.getIndex());
assertNotNull(cluster6.getMembers());
assertEquals(0, cluster6.getMembers().size());
}
}