blob: b21701914b0afe13ea823be24d8d048e188debfc [file] [log] [blame]
/**********************************************************************
* Copyright (c) 2000, 2002 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v0.5
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v05.html
*
* Contributors:
* IBM - Initial API and implementation
**********************************************************************/
package org.eclipse.core.tests.internal.indexing;
import java.util.*;
import org.eclipse.core.internal.indexing.*;
import junit.framework.*;
public class BasicFieldTest extends TestCase {
protected TestEnvironment env;
public BasicFieldTest(String name, TestEnvironment env) {
super(name);
this.env = env;
}
public static Test suite(TestEnvironment env) {
List names = new Vector(10);
names.add("testBuffer");
names.add("testPointer");
names.add("testField");
names.add("testFieldArray");
TestSuite suite = new TestSuite();
for (Iterator z = names.iterator(); z.hasNext();) {
suite.addTest(new BasicFieldTest((String)z.next(), env));
}
return suite;
}
public void testBuffer() throws Exception {
byte[] b = new byte[256];
Buffer buf = new Buffer(b);
int n = buf.length();
buf.clear();
b[0] = -128;
b[1] = -0;
b[2] = -0;
b[3] = -0;
assertEquals("t01", 0xFFFFFF80, buf.getInt(0, 1));
assertEquals("t02", 0xFFFF8000, buf.getInt(0, 2));
assertEquals("t03", 0xFF800000, buf.getInt(0, 3));
assertEquals("t04", 0x80000000, buf.getInt(0, 4));
assertEquals("t05", 0x00000080, buf.getUInt(0, 1));
assertEquals("t06", 0x00008000, buf.getUInt(0, 2));
assertEquals("t07", 0x00800000, buf.getUInt(0, 3));
assertEquals("t08", 0x00000000, buf.getUInt(0, 4));
for (int i = 0; i < n; i ++) b[i] = 1;
buf.clear(10, 10);
for (int i = 0; i < n; i++) {
if (i < 10) assertEquals("t31", 1, b[i]);
else if (i < 20) assertEquals("t32", 0, b[i]);
else assertEquals("t33", 1, b[i]);
}
n = 16;
b = new byte[n];
buf = new Buffer(b);
b[0] = 1;
buf.copyInternal(0, 1, 1);
buf.copyInternal(0, 2, 2);
buf.copyInternal(0, 4, 4);
buf.copyInternal(0, 8, 8);
for (int i = 0; i < n; i++) {
assertEquals("t21", 1, b[i]);
}
byte[] b1 = new byte[4];
byte[] b2 = new byte[2];
Buffer buf1 = new Buffer(b1);
Buffer buf2 = new Buffer(b2);
assertEquals("t22", 1, Buffer.compare(buf1, buf2));
assertEquals("t23", -1, Buffer.compare(buf2, buf1));
assertEquals("t24", 0, Buffer.compare(buf1, buf1));
b2[0] = 1;
assertEquals("t25", -1, Buffer.compare(buf1, buf2));
assertEquals("t26", 1, Buffer.compare(buf2, buf1));
}
public void testField() throws Exception {
}
public void testFieldArray() throws Exception {
}
public void testPointer() throws Exception {
}
public void testFieldDef() throws Exception {
byte[] b = new byte[256];
Field f = new Field(b);
Buffer buf = new Buffer(b);
FieldDef d01 = new FieldDef(FieldDef.F_INT, 2, 1);
FieldDef d02 = new FieldDef(FieldDef.F_INT, 2, 2);
FieldDef d03 = new FieldDef(FieldDef.F_INT, 2, 3);
FieldDef d04 = new FieldDef(FieldDef.F_INT, 2, 4);
FieldDef d05 = new FieldDef(FieldDef.F_LONG, 2, 5);
FieldDef d06 = new FieldDef(FieldDef.F_LONG, 2, 6);
FieldDef d07 = new FieldDef(FieldDef.F_LONG, 2, 7);
FieldDef d08 = new FieldDef(FieldDef.F_LONG, 2, 8);
FieldDef d99 = new FieldDef(FieldDef.F_BYTES, 2, 99);
f.clear();
f.put(d01, 255);
assertEquals("1d01", 255L << 56, buf.getLong(2, 8));
f.put(d02, 255);
assertEquals("1d02", 255L << 48, buf.getLong(2, 8));
f.put(d03, 255);
assertEquals("1d03", 255L << 40, buf.getLong(2, 8));
f.put(d04, 255);
assertEquals("1d04", 255L << 32, buf.getLong(2, 8));
f.put(d05, 255);
assertEquals("1d05", 255L << 24, buf.getLong(2, 8));
f.put(d06, 255);
assertEquals("1d06", 255L << 16, buf.getLong(2, 8));
f.put(d07, 255);
assertEquals("1d07", 255L << 8, buf.getLong(2, 8));
f.put(d08, 255);
assertEquals("1d08", 255L << 0, buf.getLong(2, 8));
f.clear();
f.put(d01, 255);
assertEquals("2d01", 255, f.getUInt(d01));
f.put(d02, 255);
assertEquals("2d02", 255, f.getUInt(d02));
f.put(d03, 255);
assertEquals("2d03", 255, f.getUInt(d03));
f.put(d04, 255);
assertEquals("2d04", 255, f.getUInt(d04));
f.put(d05, 255);
assertEquals("2d05", 255, f.getUInt(d05));
f.put(d06, 255);
assertEquals("2d06", 255, f.getUInt(d06));
f.put(d07, 255);
assertEquals("2d07", 255, f.getUInt(d07));
f.put(d08, 255);
assertEquals("2d08", 255, f.getUInt(d08));
f.put(d99, 255);
assertEquals("2d99", 255, f.getUInt(d99));
assertEquals("3d99", 255, buf.getUInt(100, 1));
}
}