/* * RapidMiner * * Copyright (C) 2001-2008 by Rapid-I and the contributors * * Complete list of developers available at our web site: * * http://rapid-i.com * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see http://www.gnu.org/licenses/. */ package com.rapidminer.operator.learner.clustering.test; import com.rapidminer.operator.learner.clustering.DefaultCluster; import com.rapidminer.operator.learner.clustering.DefaultClusterNode; import com.rapidminer.operator.learner.clustering.FlatCrispClusterModel; import com.rapidminer.operator.learner.clustering.FlattendClusterModel; import com.rapidminer.operator.learner.clustering.MutableCluster; import com.rapidminer.operator.learner.clustering.SimpleHierarchicalClusterModel; import junit.framework.TestCase; /** * Test case for the crisp flat cluster model. * * @author Michael Wurst, Ingo Mierswa * @version $Id: FlatCrispClusterModelTest.java,v 1.5 2008/09/12 10:31:48 tobiasmalbrecht Exp $ */ public class FlatCrispClusterModelTest extends TestCase { FlatCrispClusterModel model; public FlatCrispClusterModelTest(String arg0) { super(arg0); } public void testAccess() { assertTrue(model.getClusterAt(0).contains("a")); assertTrue(model.getClusterAt(0).contains("c")); assertTrue(model.getClusterAt(1).contains("b")); } public void testCopy() { FlatCrispClusterModel oldModel = model; model = new FlatCrispClusterModel(model); testAccess(); oldModel.removeClusterAt(0); testAccess(); } public void testCopyFromHierarchical() { SimpleHierarchicalClusterModel hmodel = new SimpleHierarchicalClusterModel(); // Add some nodes DefaultClusterNode root = new DefaultClusterNode("root"); DefaultClusterNode n1 = new DefaultClusterNode("1"); DefaultClusterNode n2 = new DefaultClusterNode("2"); DefaultClusterNode n11 = new DefaultClusterNode("11"); root.addSubNode(n1); root.addSubNode(n2); n1.addSubNode(n11); // Add objects n1.addObject("a"); n1.addObject("b"); n2.addObject("d"); n11.addObject("e"); n11.addObject("a"); hmodel.setRootNode(root); FlatCrispClusterModel model2 = new FlattendClusterModel(hmodel); assertTrue(model2.getClusterAt(0).contains("a")); assertTrue(model2.getClusterAt(0).contains("e")); assertTrue(model2.getClusterAt(0).contains("b")); assertTrue(model2.getClusterAt(1).contains("d")); assertTrue(model2.getNumberOfClusters() == 2); } public void testModify() { ((DefaultCluster) model.getClusterAt(0)).removeObject("a"); ((DefaultCluster) model.getClusterAt(1)).removeObject("b"); ((DefaultCluster) model.getClusterAt(0)).addObject("e"); assertFalse(model.getClusterAt(0).contains("a")); assertTrue(model.getClusterAt(0).contains("e")); assertFalse(model.getClusterAt(1).contains("b")); assertTrue(((DefaultCluster) model.getClusterAt(1)).getNumberOfObjects() == 0); } protected void setUp() throws Exception { super.setUp(); model = new FlatCrispClusterModel(); model.addCluster(new DefaultCluster("0")); model.addCluster(new DefaultCluster("1")); ((MutableCluster) model.getClusterAt(0)).addObject("a"); ((MutableCluster) model.getClusterAt(1)).addObject("b"); ((MutableCluster) model.getClusterAt(0)).addObject("c"); } }