001: /*
002: This source file is part of Smyle, a database library.
003: For up-to-date information, see http://www.drjava.de/smyle
004: Copyright (C) 2001 Stefan Reich (doc@drjava.de)
005:
006: This library is free software; you can redistribute it and/or
007: modify it under the terms of the GNU Lesser General Public
008: License as published by the Free Software Foundation; either
009: version 2.1 of the License, or (at your option) any later version.
010:
011: This library is distributed in the hope that it will be useful,
012: but WITHOUT ANY WARRANTY; without even the implied warranty of
013: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: Lesser General Public License for more details.
015:
016: You should have received a copy of the GNU Lesser General Public
017: License along with this library; if not, write to the Free Software
018: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
019:
020: For full license text, see doc/license/lgpl.txt in this distribution
021: */
022:
023: package drjava.smyle.tests;
024:
025: import java.io.*;
026: import junit.framework.*;
027: import org.artsProject.mcop.*;
028: import drjava.smyle.core.*;
029: import drjava.util.*;
030:
031: public class UniversalKeyTest extends TestCase {
032: public UniversalKeyTest(String name) {
033: super (name);
034: }
035:
036: public void testComparison() throws Exception {
037: assertEquals(0, new UniversalKey(0).compareTo(new UniversalKey(
038: 0)));
039: assertTrue(new UniversalKey(0xff)
040: .compareTo(new UniversalKey(0)) > 0);
041: assertTrue(new UniversalKey(0x80)
042: .compareTo(new UniversalKey(0)) > 0);
043: assertTrue(new UniversalKey(-1)
044: .compareTo(new UniversalKey(0xff)) < 0);
045: assertTrue(new UniversalKey(-1L)
046: .compareTo(new UniversalKey(1L)) < 0);
047: assertTrue(new UniversalKey(0xffffffffL)
048: .compareTo(new UniversalKey(0L)) > 0);
049: }
050:
051: public void testStringComparison() throws Exception {
052: UniversalKey last = null;
053: for (int i = 0; i < 65536; i += 16) {
054: if (i < 0xD800 || i >= 0xDC00) {
055: UniversalKey k = new UniversalKey(String
056: .valueOf((char) i));
057: if (last != null)
058: assertTrue("i=" + i, k.compareTo(last) > 0);
059: last = k;
060: }
061: }
062: }
063:
064: public void testMergeAndExtractDimensions() throws Exception {
065: assertEquals("80004400", UniversalKey.mergeDimensions(
066: new Object[] { new Integer(0x4400) }).toString());
067: assertEquals("C000000020200404", UniversalKey
068: .mergeDimensions(
069: new Object[] { new Integer(0x4400),
070: new Integer(0x0022) }).toString());
071: UniversalKey k = UniversalKey.mergeDimensions(new Object[] {
072: new Integer(0xC4000000), new Integer(0x7F000000) });
073: assertEquals("75750000", k.toString());
074: assertEquals("44000000", k.extractDimension(0, 2).toString());
075: assertEquals("FF000000", k.extractDimension(1, 2).toString());
076: }
077:
078: public void testMinMax() throws Exception {
079: assertTrue(new UniversalKey(0x80)
080: .compareTo(UniversalKey.max(1)) < 0);
081: assertTrue(new UniversalKey(0x80).compareTo(UniversalKey.MIN) > 0);
082:
083: assertEquals("8000000020200000", UniversalKey.mergeDimensions(
084: new Object[] { new Integer(0x4400), UniversalKey.MIN })
085: .toString());
086: assertEquals("D555555575755555", UniversalKey
087: .mergeDimensions(
088: new Object[] { new Integer(0x4400),
089: UniversalKey.max(4) }).toString());
090: }
091:
092: public void testCut() throws Exception {
093: UniversalKey key = new UniversalKey(new Buffer(
094: "000000020000000112344321"));
095: assertTrue(key == key.cut(12));
096: assertTrue(key == key.cut(8));
097: assertEquals("00000001", key.cut(4).toString());
098: }
099:
100: public void testGetBit() throws Exception {
101: UniversalKey key = new UniversalKey(new Buffer(
102: "000000020000000112344321"));
103: assertEquals(false, key.getBit(32 + 2));
104: assertEquals(true, key.getBit(32 + 3));
105: }
106:
107: public void testConcatDimensions() throws Exception {
108: assertEquals("80004400", UniversalKey.concatDimensions(
109: new Object[] { new Integer(0x4400) }).toString());
110: assertEquals("8000440080000022", UniversalKey
111: .concatDimensions(
112: new Object[] { new Integer(0x4400),
113: new Integer(0x0022) }).toString());
114: /*UniversalKey k = UniversalKey.mergeDimensions(new Object[] {
115: new Integer(0xC4000000), new Integer(0x7F000000) });
116: assertEquals("75750000", k.toString());
117: assertEquals("44000000", k.extractDimension(0, 2).toString());
118: assertEquals("FF000000", k.extractDimension(1, 2).toString());*/
119: }
120: }
|