01: /*
02: This source file is part of Smyle, a database library.
03: For up-to-date information, see http://www.drjava.de/smyle
04: Copyright (C) 2001 Stefan Reich (doc@drjava.de)
05:
06: This library is free software; you can redistribute it and/or
07: modify it under the terms of the GNU Lesser General Public
08: License as published by the Free Software Foundation; either
09: version 2.1 of the License, or (at your option) any later version.
10:
11: This library is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: Lesser General Public License for more details.
15:
16: You should have received a copy of the GNU Lesser General Public
17: License along with this library; if not, write to the Free Software
18: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19:
20: For full license text, see doc/license/lgpl.txt in this distribution
21: */
22:
23: package drjava.smyle.tests;
24:
25: import junit.framework.*;
26: import drjava.smyle.core.*;
27: import org.artsProject.mcop.*;
28:
29: public class CompressionTest extends TestCase {
30: public CompressionTest(String name) {
31: super (name);
32: }
33:
34: int total, totalC;
35:
36: public void setUp() {
37: total = totalC = 0;
38: }
39:
40: public void testCompression() {
41: testGeneratedData(new Buffer(), 1, 2);
42: testGeneratedData(new Buffer(), 35, 6);
43: System.out.println("Total: " + total + " -> " + totalC);
44: }
45:
46: void testGeneratedData(Buffer b, int step, int bytes) {
47: testData(b);
48:
49: if (bytes > 0)
50: for (int i = 0; i < 256; i += step) {
51: Buffer b2 = new Buffer(b);
52: b2.writeByte((byte) i);
53: testGeneratedData(b2, step, bytes - 1);
54: }
55: }
56:
57: void testData(Buffer data) {
58: Buffer b = new Buffer(), c = new Buffer();
59: Compression.compress(new Buffer(data), b);
60: totalC += b.remaining();
61: Compression.decompress(new Buffer(b), c);
62: if (!data.contentEquals(c))
63: fail(data + " -> " + b + " -> " + c);
64: total += data.remaining();
65: }
66: }
|