/* * This file is part of JGAP. * * JGAP offers a dual license model containing the LGPL as well as the MPL. * * For licensing information please see the file license.txt included with JGAP * or have a look at the top of class org.jgap.Chromosome which representatively * includes the JGAP license policy applicable for any file delivered with JGAP. */ package org.jgap.distr; import java.util.*; import org.jgap.*; import junit.framework.*; /** * Tests the CultureMemoryCell class. * * @author Klaus Meffert * @since 2.3 */ public class CultureMemoryCellTest extends JGAPTestCase { /** String containing the CVS revision. Read out via reflection!*/ private static final String CVS_REVISION = "$Revision: 1.11 $"; public static Test suite() { TestSuite suite = new TestSuite(CultureMemoryCellTest.class); return suite; } /** * @author Klaus Meffert * @since 2.3 */ public void testToString_0() { CultureMemoryCell cell = new CultureMemoryCell("aName", 77); assertEquals("[Name:aName;Value:null;Version:0;Read accessed:0;" + "History Size:77;History:[]", cell.toString()); cell.setDouble(45.9d); String result = cell.toString(); assertEquals( "[Name:aName;Value:45.9;Version:1;Read accessed:0;History Size:77;" + "History:[[Name:aName;Value:45.9;Version:0;Read accessed:0;" + "History Size:77;History:[]]]", result); } /** * @author Klaus Meffert * @since 2.3 */ public void testToString_1() { CultureMemoryCell cell = new CultureMemoryCell("aName", 77); assertEquals("[Name:aName;Value:null;Version:0;Read accessed:0;" + "History Size:77;History:[]", cell.toString()); cell.setDouble(17.3d); cell.setDouble( -45.9d); String result = cell.toString(); assertEquals( "[Name:aName;Value:-45.9;Version:2;Read accessed:0;History Size:77;" + "History:[[Name:aName;Value:17.3;Version:0;Read accessed:0;" + "History Size:77;History:[]];[Name:aName;Value:-45.9;Version:1;" + "Read accessed:0;History Size:77;History:[]]]", result); } /** * Empty cell. * * @author Klaus Meffert * @since 2.3 */ public void testToString_2() { CultureMemoryCell cell = new CultureMemoryCell(); assertEquals("[Name:null;Value:null;Version:0;Read accessed:0;" + "History Size:3;History:[]", cell.toString()); } /** * @author Klaus Meffert * @since 2.3 */ public void testSetDouble_0() { CultureMemoryCell cell = new CultureMemoryCell("ANAME", 55); cell.setDouble(17.3d); assertEquals(17.3d, cell.getCurrentValueAsDouble(), DELTA); cell.setDouble(1.8d); assertEquals(1.8d, ( (Double) cell.getCurrentValue()).doubleValue(), DELTA); } /* * Tests main functionality of CultureMemoryCell. * * @author Klaus Meffert * @since 2.3 */ public void testSetValue_0() { CultureMemoryCell cell = new CultureMemoryCell("aname", 3); assertEquals(0, cell.getVersion()); cell.setValue(new Integer(15)); assertEquals(1, cell.getVersion()); assertEquals(15, ( (Integer) cell.getCurrentValue()).intValue()); assertEquals(1, cell.getReadAccessed()); cell.setValue(new Integer(29)); assertEquals(2, cell.getVersion()); assertEquals(29, ( (Integer) cell.getCurrentValue()).intValue()); assertEquals(2, cell.getReadAccessed()); List history = cell.getHistory(); assertEquals(2, history.size()); CultureMemoryCell c1 = (CultureMemoryCell) history.get(0); assertEquals(15, ( (Integer) c1.getCurrentValue()).intValue()); c1 = (CultureMemoryCell) history.get(1); assertEquals(29, ( (Integer) c1.getCurrentValue()).intValue()); cell.setValue(new Integer(42)); history = cell.getHistory(); assertEquals(3, history.size()); c1 = (CultureMemoryCell) history.get(0); assertEquals(15, ( (Integer) c1.getCurrentValue()).intValue()); c1 = (CultureMemoryCell) history.get(1); assertEquals(29, ( (Integer) c1.getCurrentValue()).intValue()); c1 = (CultureMemoryCell) history.get(2); assertEquals(42, ( (Integer) c1.getCurrentValue()).intValue()); cell.setValue(new Integer(33)); assertEquals(3, history.size()); c1 = (CultureMemoryCell) history.get(0); assertEquals(29, ( (Integer) c1.getCurrentValue()).intValue()); c1 = (CultureMemoryCell) history.get(1); assertEquals(42, ( (Integer) c1.getCurrentValue()).intValue()); c1 = (CultureMemoryCell) history.get(2); assertEquals(33, ( (Integer) c1.getCurrentValue()).intValue()); } /** * @throws Exception * * @author Klaus Meffert * @since 3.0 */ public void testSerialize_0() throws Exception { CultureMemoryCell cell = new CultureMemoryCell("ANAME", 55); cell.setDouble(17.3d); CultureMemoryCell cell2 = (CultureMemoryCell) doSerialize(cell); assertEquals(cell, cell2); } }