13a8b0f00e6d23ae57fee93f7f2c18fe8e6b45c3cChris Lattner/* 29769ab22265b313171d201b5928688524a01bd87Misha Brukman * Copyright (C) 2011 The Guava Authors 36fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell * 46fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 57ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner * in compliance with the License. You may obtain a copy of the License at 67ed47a13356daed2a34cd2209a31f92552e3bdd8Chris Lattner * 79769ab22265b313171d201b5928688524a01bd87Misha Brukman * http://www.apache.org/licenses/LICENSE-2.0 86fbcc26f1460eaee4e0eb8b426fc1ff0c7af11beJohn Criswell * 9009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner * Unless required by applicable law or agreed to in writing, software distributed under the License 10009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11fab8c796f6754962f5732145248303e3a1f7b96bChris Lattner * or implied. See the License for the specific language governing permissions and limitations under 12009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner * the License. 13009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner */ 14009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner 15009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattnerpackage com.google.common.collect; 16009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner 17009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattnerimport static com.google.common.collect.BstTesting.countAggregate; 18009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner 19fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohmanimport com.google.common.annotations.GwtCompatible; 2061336ae001e07c6d68454b1494e45954d373fb51Chris Lattnerimport com.google.common.collect.BstTesting.SimpleNode; 217a73b80b9052136c8cd2234eb3433a07df7cf38eJohn Criswell 22d0fde30ce850b78371fd1386338350591f9ff494Brian Gaekeimport junit.framework.Test; 23d0fde30ce850b78371fd1386338350591f9ff494Brian Gaekeimport junit.framework.TestCase; 24125fc7fefd4a198dd210cb43f5d8f1ba2c1e2dcfMichael Ilsemanimport junit.framework.TestSuite; 2512ddd409535b52a7fa5157ded9a4cedd161fedb6Benjamin Kramer 263990b121cf4a0b280ed3e54cf13870cbf4259e78Chris Lattner/** 27333c40096561218bc3597cf153c0a3895274414cOwen Anderson * Tests for the policies exported by {@link BstCountBasedBalancePolicies} 2817fcdd5e1b78b829068ca657c97357a39d6e768bChris Lattner * 2917fcdd5e1b78b829068ca657c97357a39d6e768bChris Lattner * @author Louis Wasserman 30009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner */ 31fed90b6d097d50881afb45e4d79f430db66dd741Dan Gohman@GwtCompatible 32f630e49efc7bf3f1716b6daab3c2cc11a908754aCraig Topperpublic class BstCountBasedBalancePoliciesTest extends TestCase { 33f630e49efc7bf3f1716b6daab3c2cc11a908754aCraig Topper public static class NoRebalanceTest extends AbstractBstBalancePolicyTest { 34c5f24a2c2a16681f7816ac053c8f46a2692a3b7aJeff Cohen @Override 35009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner protected BstBalancePolicy<SimpleNode> getBalancePolicy() { 3684e679beea11ac55ed7871eec4deaccdf393de3eChris Lattner return BstCountBasedBalancePolicies.noRebalancePolicy(countAggregate); 37407a6169b729c72c3a7ddb01b8454ab0b4f6897cMichael Ilseman } 38b2406d9895314cbc61183c2fb712cd1a2ddfe7e0Chris Lattner } 39b2406d9895314cbc61183c2fb712cd1a2ddfe7e0Chris Lattner 40b2406d9895314cbc61183c2fb712cd1a2ddfe7e0Chris Lattner public static class SingleRebalanceTest extends AbstractBstBalancePolicyTest { 41b2406d9895314cbc61183c2fb712cd1a2ddfe7e0Chris Lattner @Override 42b2406d9895314cbc61183c2fb712cd1a2ddfe7e0Chris Lattner protected BstBalancePolicy<SimpleNode> getBalancePolicy() { 43009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner return BstCountBasedBalancePolicies.<Character, SimpleNode>singleRebalancePolicy( 44afba8fe662d65b25b4baf46bb26cc18e1f9cc0a5Gordon Henriksen countAggregate); 45afba8fe662d65b25b4baf46bb26cc18e1f9cc0a5Gordon Henriksen } 46407a6169b729c72c3a7ddb01b8454ab0b4f6897cMichael Ilseman } 47cb4f10b4d5e9ba2e37e70424b290dd1187ca6ea7Chris Lattner 48cb4f10b4d5e9ba2e37e70424b290dd1187ca6ea7Chris Lattner public static class FullRebalanceTest extends AbstractBstBalancePolicyTest { 49cb4f10b4d5e9ba2e37e70424b290dd1187ca6ea7Chris Lattner @Override 50cb4f10b4d5e9ba2e37e70424b290dd1187ca6ea7Chris Lattner protected BstBalancePolicy<SimpleNode> getBalancePolicy() { 51407a6169b729c72c3a7ddb01b8454ab0b4f6897cMichael Ilseman return BstCountBasedBalancePolicies.<Character, SimpleNode>fullRebalancePolicy( 52009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner countAggregate); 53009505452b713ed2e3a8e99c5545a6e721c65495Chris Lattner } 5418961504fc2b299578dba817900a0696cf3ccc4dChris Lattner } 55b92f50fe6091a7a12f54f9884529b1127b1a14e5Chris Lattner 56b92f50fe6091a7a12f54f9884529b1127b1a14e5Chris Lattner public static Test suite() { 57f0a93ed9c59d706494496c6fe4e8354864d24aa7Chris Lattner TestSuite suite = new TestSuite(); 58b92f50fe6091a7a12f54f9884529b1127b1a14e5Chris Lattner suite.addTestSuite(NoRebalanceTest.class); 59b92f50fe6091a7a12f54f9884529b1127b1a14e5Chris Lattner suite.addTestSuite(SingleRebalanceTest.class); 60b92f50fe6091a7a12f54f9884529b1127b1a14e5Chris Lattner suite.addTestSuite(FullRebalanceTest.class); 61b92f50fe6091a7a12f54f9884529b1127b1a14e5Chris Lattner return suite; 62b92f50fe6091a7a12f54f9884529b1127b1a14e5Chris Lattner } 63b92f50fe6091a7a12f54f9884529b1127b1a14e5Chris Lattner} 64cfad5df977f257299063309fa34f3c24831093c4Chris Lattner