1d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar/* 2d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Copyright (C) 2015 The Android Open Source Project 3d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * 4d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 5d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * you may not use this file except in compliance with the License. 6d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * You may obtain a copy of the License at 7d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * 8d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 9d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * 10d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Unless required by applicable law or agreed to in writing, software 11d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 12d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * See the License for the specific language governing permissions and 14d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * limitations under the License. 15d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar */ 16d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 17fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.tool.writer; 18d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 19d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyarimport org.junit.Test; 20d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 21d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyarimport java.util.BitSet; 22fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mount 23fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountimport static org.junit.Assert.assertEquals; 24d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 25d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyarpublic class FlagSetTest { 26d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar @Test 27d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar public void testSimple1Level() { 28d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar BitSet bs = new BitSet(); 29d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar bs.set(7); 30d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar FlagSet flagSet = new FlagSet(bs, 3); 31d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(3, flagSet.buckets.length); 32d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(1 << 7, flagSet.buckets[0]); 33d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(0, flagSet.buckets[1]); 34d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(0, flagSet.buckets[2]); 35d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar } 36d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 37d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar @Test 38d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar public void testSimple2Level() { 39d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar BitSet bs = new BitSet(); 40d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar bs.set(FlagSet.sBucketSize + 2); 41d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar FlagSet flagSet = new FlagSet(bs, 3); 42d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(3, flagSet.buckets.length); 43d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(0, flagSet.buckets[0]); 44d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(1 << 2, flagSet.buckets[1]); 45d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(0, flagSet.buckets[2]); 46d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar } 47d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 48d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar @Test 49d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar public void testSimple3Level() { 50d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar BitSet bs = new BitSet(); 51d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar bs.set(5); 52d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar bs.set(FlagSet.sBucketSize + 2); 53d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar bs.set(FlagSet.sBucketSize * 2 + 10); 54d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar FlagSet flagSet = new FlagSet(bs, 3); 55d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(3, flagSet.buckets.length); 56d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(1 << 5, flagSet.buckets[0]); 57d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(1 << 2, flagSet.buckets[1]); 58d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar assertEquals(1 << 10, flagSet.buckets[2]); 59d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar } 601f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar 611f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar @Test 621f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar public void testLargeValue() { 631f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar BitSet bs = new BitSet(); 641f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar bs.set(43); 651f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar FlagSet flagSet = new FlagSet(bs, 1); 661f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar assertEquals(1, flagSet.buckets.length); 671f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar assertEquals(1L << 43, flagSet.buckets[0]); 681f1f50563ad8166e3cd2be64b705ae583834540dYigit Boyar } 69d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar} 70