/****************************************************************************** * Copyright (c) 2002, 2003 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation ****************************************************************************/ package org.eclipse.gmf.tests.runtime.common.core.internal.util; import junit.framework.Test; import junit.framework.TestCase; import junit.framework.TestSuite; import junit.textui.TestRunner; import org.eclipse.gmf.runtime.common.core.util.HashUtil; public class HashUtilTest extends TestCase { public static void main(String[] args) { TestRunner.run(suite()); } public static Test suite() { return new TestSuite(HashUtilTest.class); } public HashUtilTest(String name) { super(name); } protected void setUp() { // nothing to do } public void test_hash_boolean() { assertTrue(37 * 17 == HashUtil.hash(false) - 1); assertTrue(37 * 1 == HashUtil.hash(1, false) - 1); assertTrue(37 * 17 == HashUtil.hash(true) - 0); assertTrue(37 * 0 == HashUtil.hash(0, true) - 0); } public void test_hash_byte() { assertTrue(37 * 17 == HashUtil.hash(Byte.MAX_VALUE) - Byte.MAX_VALUE); assertTrue( 37 * Byte.MIN_VALUE == HashUtil.hash(Byte.MIN_VALUE, Byte.MAX_VALUE) - Byte.MAX_VALUE); } public void test_hash_char() { assertTrue(37 * 17 == HashUtil.hash(Character.MAX_VALUE) - Character.MAX_VALUE); assertTrue( 37 * Character.MIN_VALUE == HashUtil.hash(Character.MIN_VALUE, Character.MAX_VALUE) - Character.MAX_VALUE); } public void test_hash_double() { assertTrue( 37 * 17 == HashUtil.hash(Double.doubleToLongBits(Double.MAX_VALUE)) - (int) (Double.doubleToLongBits(Double.MAX_VALUE) ^ (Double.doubleToLongBits(Double.MAX_VALUE) >>> 32))); assertTrue( 37 * (int) (Double.doubleToLongBits(Double.MIN_VALUE) ^ (Double.doubleToLongBits(Double.MIN_VALUE) >>> 32)) == HashUtil.hash( (int) (Double.doubleToLongBits(Double.MIN_VALUE) ^ (Double.doubleToLongBits(Double.MIN_VALUE) >>> 32)), Double.doubleToLongBits(Double.MAX_VALUE)) - (int) (Double.doubleToLongBits(Double.MAX_VALUE) ^ (Double.doubleToLongBits(Double.MAX_VALUE) >>> 32))); } public void test_hash_float() { assertTrue( 37 * 17 == HashUtil.hash(Float.MAX_VALUE) - Float.floatToIntBits(Float.MAX_VALUE)); assertTrue( 37 * Float.floatToIntBits(Float.MIN_VALUE) == HashUtil.hash(Float.floatToIntBits(Float.MIN_VALUE), Float.MAX_VALUE) - Float.floatToIntBits(Float.MAX_VALUE)); } public void test_hash_int() { assertTrue(37 * 17 == HashUtil.hash(Integer.MAX_VALUE) - Integer.MAX_VALUE); assertTrue( 37 * Integer.MIN_VALUE == HashUtil.hash(Integer.MIN_VALUE, Integer.MAX_VALUE) - Integer.MAX_VALUE); } public void test_hash_long() { assertTrue( 37 * 17 == HashUtil.hash(Long.MAX_VALUE) - (int) (Long.MAX_VALUE ^ (Long.MAX_VALUE >>> 32))); assertTrue( 37 * (int) (Long.MIN_VALUE ^ (Long.MIN_VALUE >>> 32)) == HashUtil.hash((int) (Long.MIN_VALUE ^ (Long.MIN_VALUE >>> 32)), Long.MAX_VALUE) - (int) (Long.MAX_VALUE ^ (Long.MAX_VALUE >>> 32))); } public void test_hash_short() { assertTrue(37 * 17 == HashUtil.hash(Short.MAX_VALUE) - Short.MAX_VALUE); assertTrue( 37 * Short.MIN_VALUE == HashUtil.hash(Short.MIN_VALUE, Short.MAX_VALUE) - Short.MAX_VALUE); } public void test_hash_Object() { assertTrue(37 * 17 == HashUtil.hash(this) - hashCode()); assertTrue(37 * hashCode() == HashUtil.hash(hashCode(), this) - hashCode()); } }