package org.adsabs; import java.io.IOException; import java.util.zip.DataFormatException; import org.apache.lucene.util.LuceneTestCase; /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You 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. */ public class TestInvenioBitSet extends LuceneTestCase { public void test() throws DataFormatException, IOException { // intbitset([1, 5, 6, 260]).fastdump() byte[] bytes = new byte[] {0x78, (byte)0x9c, 0x4b, 0x62, (byte)0xc0, 0xf, 0x4, (byte)0xd0, (byte)0xf8, 0x0, 0x13, (byte)0x90, 0x0, 0x73}; //for (byte b: bytes) { // System.out.println((int) b + " " + (String.format("%02X ", b) + (int)(b & 0xff))); //} InvenioBitSet res = InvenioBitSet.fastLoad(bytes); check(res, 1,5,6, 260); // load uncompressed byte stream res = new InvenioBitSet(new byte[] {98, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}); check(res, 1,5,6, 260); InvenioBitSet res2 = InvenioBitSet.fastLoad(res.fastDump()); check(res2, 1,5,6, 260); assertEquals("eJxLYsAPBAAM0wBz", res.toBase64()); } private void check(InvenioBitSet res, int...expected) { for (int x: expected) { assertTrue("Expected " + x + " bitset to be set", res.get(x)); } assertTrue("Number of bits should be: " + expected.length, res.cardinality() == expected.length); } }