/* * Copyright 2006 Amazon Technologies, Inc. or its affiliates. * Amazon, Amazon.com and Carbonado are trademarks or registered trademarks * of Amazon Technologies, Inc. or its affiliates. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.amazon.carbonado.raw; import java.util.Random; import junit.framework.TestCase; import junit.framework.TestSuite; /** * Test case for {@link DataEncoder} and {@link DataDecoder}. *
* It generates random data values, checks that the decoding produces the
* original results, and it checks that the order of the encoded bytes matches
* the order of the original data values.
*
* @author Brian S O'Neill
*/
public class TestDataEncoding extends TestCase {
private static final int SHORT_TEST = 100;
private static final int MEDIUM_TEST = 500;
private static final int LONG_TEST = 1000;
public static void main(String[] args) {
junit.textui.TestRunner.run(suite());
}
public static TestSuite suite() {
return new TestSuite(TestDataEncoding.class);
}
/**
* @return -1, 0, or 1
*/
static int byteArrayCompare(byte[] aa, byte[] ab) {
int len = Math.min(aa.length, ab.length);
int result = byteArrayCompare(aa, ab, len);
if (result == 0 && aa.length != ab.length) {
if (aa.length == len) {
return -1;
}
if (ab.length == len) {
return 1;
}
}
return result;
}
/**
* @return -1, 0, or 1
*/
static int byteArrayCompare(byte[] aa, byte[] ab, int len) {
for (int i=0; i