/*******************************************************************************
* Copyright (c) 2012 Original authors and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Dirk Fauth
******************************************************************************/
package org.eclipse.nebula.widgets.nattable.layer;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class SizeConfigPercentageTest {
private static final int DEFAULT_SIZE = 100;
private SizeConfig sizeConfigCalculationMode;
private SizeConfig sizeConfigFixedMode;
private SizeConfig sizeConfigMixedPercentageMode;
private SizeConfig sizeConfigMixedMode;
@Before
public void setup() {
this.sizeConfigCalculationMode = new SizeConfig(DEFAULT_SIZE);
this.sizeConfigCalculationMode.setPercentageSizing(true);
this.sizeConfigCalculationMode.calculatePercentages(1000, 10);
this.sizeConfigFixedMode = new SizeConfig(DEFAULT_SIZE);
this.sizeConfigFixedMode.setPercentageSizing(true);
this.sizeConfigFixedMode.setPercentage(0, 50);
this.sizeConfigFixedMode.setPercentage(1, 50);
this.sizeConfigFixedMode.calculatePercentages(255, 2);
this.sizeConfigMixedPercentageMode = new SizeConfig(DEFAULT_SIZE);
this.sizeConfigMixedPercentageMode.setPercentageSizing(true);
this.sizeConfigMixedPercentageMode.setPercentage(0, 30);
this.sizeConfigMixedPercentageMode.setPercentage(2, 30);
this.sizeConfigMixedPercentageMode.calculatePercentages(1000, 3);
this.sizeConfigMixedMode = new SizeConfig(DEFAULT_SIZE);
this.sizeConfigMixedMode.setPercentageSizing(true);
this.sizeConfigMixedMode.setPercentageSizing(0, false);
this.sizeConfigMixedMode.setPercentageSizing(1, false);
this.sizeConfigMixedMode.setSize(0, 100);
this.sizeConfigMixedMode.setSize(1, 100);
this.sizeConfigMixedMode.calculatePercentages(500, 3);
}
@Test
public void getAggregateSizeCalculationMode() throws Exception {
Assert.assertEquals(100, this.sizeConfigCalculationMode.getAggregateSize(1));
Assert.assertEquals(200, this.sizeConfigCalculationMode.getAggregateSize(2));
Assert.assertEquals(300, this.sizeConfigCalculationMode.getAggregateSize(3));
Assert.assertEquals(400, this.sizeConfigCalculationMode.getAggregateSize(4));
Assert.assertEquals(500, this.sizeConfigCalculationMode.getAggregateSize(5));
Assert.assertEquals(600, this.sizeConfigCalculationMode.getAggregateSize(6));
Assert.assertEquals(700, this.sizeConfigCalculationMode.getAggregateSize(7));
Assert.assertEquals(800, this.sizeConfigCalculationMode.getAggregateSize(8));
Assert.assertEquals(900, this.sizeConfigCalculationMode.getAggregateSize(9));
Assert.assertEquals(1000,
this.sizeConfigCalculationMode.getAggregateSize(10));
}
@Test
public void sizeOverrideCalculationMode() throws Exception {
this.sizeConfigCalculationMode.setSize(5, 200);
Assert.assertEquals(201, this.sizeConfigCalculationMode.getSize(5));
}
@Test
public void percentageOverrideCalculationMode() throws Exception {
this.sizeConfigCalculationMode.setPercentage(5, 20);
Assert.assertEquals(89, this.sizeConfigCalculationMode.getSize(0));
Assert.assertEquals(89, this.sizeConfigCalculationMode.getSize(1));
Assert.assertEquals(89, this.sizeConfigCalculationMode.getSize(2));
Assert.assertEquals(89, this.sizeConfigCalculationMode.getSize(3));
Assert.assertEquals(89, this.sizeConfigCalculationMode.getSize(4));
Assert.assertEquals(201, this.sizeConfigCalculationMode.getSize(5));
Assert.assertEquals(89, this.sizeConfigCalculationMode.getSize(6));
Assert.assertEquals(89, this.sizeConfigCalculationMode.getSize(7));
Assert.assertEquals(88, this.sizeConfigCalculationMode.getSize(8));
Assert.assertEquals(88, this.sizeConfigCalculationMode.getSize(9));
}
@Test
public void getAggregateSizeWithSizeOverridesCalculationMode()
throws Exception {
this.sizeConfigCalculationMode.setPercentage(5, 20);
Assert.assertEquals(89, this.sizeConfigCalculationMode.getAggregateSize(1));
Assert.assertEquals(178, this.sizeConfigCalculationMode.getAggregateSize(2));
Assert.assertEquals(267, this.sizeConfigCalculationMode.getAggregateSize(3));
Assert.assertEquals(356, this.sizeConfigCalculationMode.getAggregateSize(4));
Assert.assertEquals(445, this.sizeConfigCalculationMode.getAggregateSize(5));
Assert.assertEquals(646, this.sizeConfigCalculationMode.getAggregateSize(6));
Assert.assertEquals(735, this.sizeConfigCalculationMode.getAggregateSize(7));
Assert.assertEquals(824, this.sizeConfigCalculationMode.getAggregateSize(8));
Assert.assertEquals(912, this.sizeConfigCalculationMode.getAggregateSize(9));
Assert.assertEquals(1000,
this.sizeConfigCalculationMode.getAggregateSize(10));
}
@Test
public void getAggregateSizeCalculationModeAfterAdding() throws Exception {
this.sizeConfigCalculationMode.calculatePercentages(1000, 20);
Assert.assertEquals(50, this.sizeConfigCalculationMode.getAggregateSize(1));
Assert.assertEquals(100, this.sizeConfigCalculationMode.getAggregateSize(2));
Assert.assertEquals(150, this.sizeConfigCalculationMode.getAggregateSize(3));
Assert.assertEquals(200, this.sizeConfigCalculationMode.getAggregateSize(4));
Assert.assertEquals(250, this.sizeConfigCalculationMode.getAggregateSize(5));
Assert.assertEquals(300, this.sizeConfigCalculationMode.getAggregateSize(6));
Assert.assertEquals(350, this.sizeConfigCalculationMode.getAggregateSize(7));
Assert.assertEquals(400, this.sizeConfigCalculationMode.getAggregateSize(8));
Assert.assertEquals(450, this.sizeConfigCalculationMode.getAggregateSize(9));
Assert.assertEquals(500, this.sizeConfigCalculationMode.getAggregateSize(10));
Assert.assertEquals(550, this.sizeConfigCalculationMode.getAggregateSize(11));
Assert.assertEquals(600, this.sizeConfigCalculationMode.getAggregateSize(12));
Assert.assertEquals(650, this.sizeConfigCalculationMode.getAggregateSize(13));
Assert.assertEquals(700, this.sizeConfigCalculationMode.getAggregateSize(14));
Assert.assertEquals(750, this.sizeConfigCalculationMode.getAggregateSize(15));
Assert.assertEquals(800, this.sizeConfigCalculationMode.getAggregateSize(16));
Assert.assertEquals(850, this.sizeConfigCalculationMode.getAggregateSize(17));
Assert.assertEquals(900, this.sizeConfigCalculationMode.getAggregateSize(18));
Assert.assertEquals(950, this.sizeConfigCalculationMode.getAggregateSize(19));
Assert.assertEquals(1000,
this.sizeConfigCalculationMode.getAggregateSize(20));
}
@Test
public void getAggregateSizeCalculationModeSpaceChangeCacheCheck()
throws Exception {
// Change the space and positionCount to test the cached aggregated size
// values.
this.sizeConfigCalculationMode.calculatePercentages(1000, 20);
Assert.assertEquals(100, this.sizeConfigCalculationMode.getAggregateSize(2));
Assert.assertEquals(200, this.sizeConfigCalculationMode.getAggregateSize(4));
Assert.assertEquals(300, this.sizeConfigCalculationMode.getAggregateSize(6));
Assert.assertEquals(400, this.sizeConfigCalculationMode.getAggregateSize(8));
Assert.assertEquals(500, this.sizeConfigCalculationMode.getAggregateSize(10));
this.sizeConfigCalculationMode.calculatePercentages(500, 20);
Assert.assertEquals(50, this.sizeConfigCalculationMode.getAggregateSize(2));
Assert.assertEquals(100, this.sizeConfigCalculationMode.getAggregateSize(4));
Assert.assertEquals(150, this.sizeConfigCalculationMode.getAggregateSize(6));
Assert.assertEquals(200, this.sizeConfigCalculationMode.getAggregateSize(8));
Assert.assertEquals(250, this.sizeConfigCalculationMode.getAggregateSize(10));
this.sizeConfigCalculationMode.calculatePercentages(500, 10);
Assert.assertEquals(100, this.sizeConfigCalculationMode.getAggregateSize(2));
Assert.assertEquals(200, this.sizeConfigCalculationMode.getAggregateSize(4));
Assert.assertEquals(300, this.sizeConfigCalculationMode.getAggregateSize(6));
Assert.assertEquals(400, this.sizeConfigCalculationMode.getAggregateSize(8));
Assert.assertEquals(500, this.sizeConfigCalculationMode.getAggregateSize(10));
}
@Test
public void getAggregateSizeCalculationModeSizeChangeCacheCheck()
throws Exception {
Assert.assertEquals(500, this.sizeConfigCalculationMode.getAggregateSize(5));
this.sizeConfigCalculationMode.setPercentage(5, 20);
Assert.assertEquals(445, this.sizeConfigCalculationMode.getAggregateSize(5));
}
@Test
public void getSizeConfigFixedMode() throws Exception {
Assert.assertEquals(128, this.sizeConfigFixedMode.getSize(0));
Assert.assertEquals(127, this.sizeConfigFixedMode.getSize(1));
}
@Test
public void getAggregateSizeConfigFixedMode() throws Exception {
Assert.assertEquals(128, this.sizeConfigFixedMode.getAggregateSize(1));
Assert.assertEquals(255, this.sizeConfigFixedMode.getAggregateSize(2));
}
@Test
public void sizeOverrideFixedMode() throws Exception {
this.sizeConfigFixedMode.setSize(1, 102);
Assert.assertEquals(102, this.sizeConfigFixedMode.getSize(1));
}
@Test
public void percentageOverrideFixedMode() throws Exception {
this.sizeConfigFixedMode.setPercentage(1, 40);
Assert.assertEquals(127, this.sizeConfigFixedMode.getSize(0));
Assert.assertEquals(102, this.sizeConfigFixedMode.getSize(1));
}
@Test
public void getAggregateSizeWithSizeOverridesFixedMode() throws Exception {
this.sizeConfigFixedMode.setPercentage(1, 40);
Assert.assertEquals(127, this.sizeConfigFixedMode.getAggregateSize(1));
Assert.assertEquals(229, this.sizeConfigFixedMode.getAggregateSize(2));
}
@Test
public void getSizeFixedModeAfterAdding() throws Exception {
this.sizeConfigFixedMode.calculatePercentages(510, 4);
this.sizeConfigFixedMode.setPercentage(2, 50);
this.sizeConfigFixedMode.setPercentage(3, 50);
// the correct double value would be 127.5 - because of the rounding, as
// there are no double pixels, and the distribution of the missing
// pixels the values for the first 2 positions will be 128
Assert.assertEquals(128, this.sizeConfigFixedMode.getSize(0));
Assert.assertEquals(128, this.sizeConfigFixedMode.getSize(1));
Assert.assertEquals(127, this.sizeConfigFixedMode.getSize(2));
Assert.assertEquals(127, this.sizeConfigFixedMode.getSize(3));
}
@Test
public void getSizeFixedModeAfterAddingTooMuch() throws Exception {
this.sizeConfigFixedMode.calculatePercentages(255, 3);
this.sizeConfigFixedMode.setPercentage(2, 50);
Assert.assertEquals(85, this.sizeConfigFixedMode.getSize(0));
Assert.assertEquals(85, this.sizeConfigFixedMode.getSize(1));
Assert.assertEquals(85, this.sizeConfigFixedMode.getSize(2));
}
@Test
public void getSizeFixedModeAfterAddingWithNoSize() throws Exception {
this.sizeConfigFixedMode.calculatePercentages(255, 3);
Assert.assertEquals(127, this.sizeConfigFixedMode.getSize(0));
Assert.assertEquals(127, this.sizeConfigFixedMode.getSize(1));
Assert.assertEquals(1, this.sizeConfigFixedMode.getSize(2));
}
@Test
public void getAggregateSizeFixedModeAfterAdding() throws Exception {
this.sizeConfigFixedMode.calculatePercentages(510, 4);
this.sizeConfigFixedMode.setPercentage(2, 50);
this.sizeConfigFixedMode.setPercentage(3, 50);
Assert.assertEquals(128, this.sizeConfigFixedMode.getAggregateSize(1));
Assert.assertEquals(256, this.sizeConfigFixedMode.getAggregateSize(2));
Assert.assertEquals(383, this.sizeConfigFixedMode.getAggregateSize(3));
Assert.assertEquals(510, this.sizeConfigFixedMode.getAggregateSize(4));
}
@Test
public void getAggregateSizeFixedModeAfterAddingTooMuch() throws Exception {
this.sizeConfigFixedMode.calculatePercentages(255, 3);
this.sizeConfigFixedMode.setPercentage(2, 50);
Assert.assertEquals(85, this.sizeConfigFixedMode.getAggregateSize(1));
Assert.assertEquals(170, this.sizeConfigFixedMode.getAggregateSize(2));
Assert.assertEquals(255, this.sizeConfigFixedMode.getAggregateSize(3));
}
@Test
public void getAggregateSizeFixedModeSpaceChangeCacheCheck()
throws Exception {
Assert.assertEquals(128, this.sizeConfigFixedMode.getAggregateSize(1));
Assert.assertEquals(255, this.sizeConfigFixedMode.getAggregateSize(2));
this.sizeConfigFixedMode.calculatePercentages(500, 2);
Assert.assertEquals(250, this.sizeConfigFixedMode.getAggregateSize(1));
Assert.assertEquals(500, this.sizeConfigFixedMode.getAggregateSize(2));
this.sizeConfigFixedMode.calculatePercentages(255, 3);
Assert.assertEquals(127, this.sizeConfigFixedMode.getSize(0));
Assert.assertEquals(127, this.sizeConfigFixedMode.getSize(1));
Assert.assertEquals(1, this.sizeConfigFixedMode.getSize(2));
}
@Test
public void getAggregateSizeFixedModeSizeChangeCacheCheck()
throws Exception {
Assert.assertEquals(128, this.sizeConfigFixedMode.getAggregateSize(1));
Assert.assertEquals(255, this.sizeConfigFixedMode.getAggregateSize(2));
this.sizeConfigFixedMode.setPercentage(1, 40);
Assert.assertEquals(127, this.sizeConfigFixedMode.getAggregateSize(1));
Assert.assertEquals(229, this.sizeConfigFixedMode.getAggregateSize(2));
}
@Test
public void getSizeConfigMixedPercentageMode() throws Exception {
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(400, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(2));
}
@Test
public void getAggregateSizeConfigMixedPercentageMode() throws Exception {
Assert.assertEquals(300,
this.sizeConfigMixedPercentageMode.getAggregateSize(1));
Assert.assertEquals(700,
this.sizeConfigMixedPercentageMode.getAggregateSize(2));
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
}
@Test
public void sizeOverrideMixedMode() throws Exception {
this.sizeConfigMixedPercentageMode.setSize(2, 400);
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(400, this.sizeConfigMixedPercentageMode.getSize(2));
}
@Test
public void percentageOverrideMixedMode() throws Exception {
this.sizeConfigMixedPercentageMode.setPercentage(2, 40);
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(400, this.sizeConfigMixedPercentageMode.getSize(2));
}
@Test
public void getAggregateSizeWithSizeOverridesMixedMode() throws Exception {
this.sizeConfigMixedPercentageMode.setPercentage(2, 40);
Assert.assertEquals(600,
this.sizeConfigMixedPercentageMode.getAggregateSize(2));
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
}
@Test
public void getSizeMixedPercentageModeAfterAdding() throws Exception {
this.sizeConfigMixedPercentageMode.calculatePercentages(1000, 4);
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(200, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(2));
Assert.assertEquals(200, this.sizeConfigMixedPercentageMode.getSize(3));
}
@Test
public void getSizeMixedPercentageModeAfterAddingExactly100()
throws Exception {
this.sizeConfigMixedPercentageMode.setPercentage(3, 40);
this.sizeConfigMixedPercentageMode.calculatePercentages(1000, 4);
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(0, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(2));
Assert.assertEquals(400, this.sizeConfigMixedPercentageMode.getSize(3));
}
@Test
public void getSizeMixedPercentageModeAfterAddingTooMuch() throws Exception {
this.sizeConfigMixedPercentageMode.setPercentage(0, 20);
this.sizeConfigMixedPercentageMode.setPercentage(2, 20);
this.sizeConfigMixedPercentageMode.setPercentage(3, 20);
this.sizeConfigMixedPercentageMode.setPercentage(4, 20);
this.sizeConfigMixedPercentageMode.setPercentage(5, 20);
this.sizeConfigMixedPercentageMode.setPercentage(6, 20);
this.sizeConfigMixedPercentageMode.setPercentage(7, 20);
this.sizeConfigMixedPercentageMode.setPercentage(8, 20);
this.sizeConfigMixedPercentageMode.setPercentage(9, 20);
this.sizeConfigMixedPercentageMode.setPercentage(10, 20);
this.sizeConfigMixedPercentageMode.calculatePercentages(1000, 11);
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(0, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(2));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(3));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(4));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(5));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(6));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(7));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(8));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(9));
Assert.assertEquals(100, this.sizeConfigMixedPercentageMode.getSize(10));
}
@Test
public void getAggregateSizeMixedModeAfterAdding() throws Exception {
this.sizeConfigMixedPercentageMode.calculatePercentages(1000, 4);
Assert.assertEquals(300,
this.sizeConfigMixedPercentageMode.getAggregateSize(1));
Assert.assertEquals(500,
this.sizeConfigMixedPercentageMode.getAggregateSize(2));
Assert.assertEquals(800,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(4));
}
@Test
public void getAggregateSizeMixedModeSpaceChangeCacheCheck()
throws Exception {
Assert.assertEquals(300,
this.sizeConfigMixedPercentageMode.getAggregateSize(1));
Assert.assertEquals(700,
this.sizeConfigMixedPercentageMode.getAggregateSize(2));
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
this.sizeConfigMixedPercentageMode.calculatePercentages(1000, 4);
Assert.assertEquals(300,
this.sizeConfigMixedPercentageMode.getAggregateSize(1));
Assert.assertEquals(500,
this.sizeConfigMixedPercentageMode.getAggregateSize(2));
Assert.assertEquals(800,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(4));
}
@Test
public void getAggregateSizeMixedModeSizeChangeCacheCheck()
throws Exception {
Assert.assertEquals(300,
this.sizeConfigMixedPercentageMode.getAggregateSize(1));
Assert.assertEquals(700,
this.sizeConfigMixedPercentageMode.getAggregateSize(2));
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
this.sizeConfigMixedPercentageMode.setPercentage(2, 40);
Assert.assertEquals(300,
this.sizeConfigMixedPercentageMode.getAggregateSize(1));
Assert.assertEquals(600,
this.sizeConfigMixedPercentageMode.getAggregateSize(2));
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
}
@Test
public void getSizeConfigMixedMode() throws Exception {
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(1));
Assert.assertEquals(300, this.sizeConfigMixedMode.getSize(2));
}
@Test
public void getAggregateSizeConfigMixedMode() throws Exception {
Assert.assertEquals(100, this.sizeConfigMixedMode.getAggregateSize(1));
Assert.assertEquals(200, this.sizeConfigMixedMode.getAggregateSize(2));
Assert.assertEquals(500, this.sizeConfigMixedMode.getAggregateSize(3));
}
@Test
public void getSizeMixedModeAfterAdding() throws Exception {
this.sizeConfigMixedMode.calculatePercentages(500, 4);
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(1));
Assert.assertEquals(150, this.sizeConfigMixedMode.getSize(2));
Assert.assertEquals(150, this.sizeConfigMixedMode.getSize(3));
}
@Test
public void getSizeMixedModeAfterAddingExactly100() throws Exception {
this.sizeConfigMixedMode.setPercentage(2, 25);
this.sizeConfigMixedMode.setPercentage(3, 25);
this.sizeConfigMixedMode.setPercentage(4, 25);
this.sizeConfigMixedMode.setPercentage(5, 25);
this.sizeConfigMixedMode.calculatePercentages(1000, 6);
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(1));
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(2));
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(3));
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(4));
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(5));
}
@Test
public void getSizeMixedModeAfterAddingTooMuch() throws Exception {
this.sizeConfigMixedMode.setPercentage(2, 40);
this.sizeConfigMixedMode.setPercentage(3, 40);
this.sizeConfigMixedMode.setPercentage(4, 40);
this.sizeConfigMixedMode.setPercentage(5, 40);
this.sizeConfigMixedMode.calculatePercentages(600, 6);
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(1));
// 4 additional percentage sized positions that have the same percentage
// size
// as 400 pixels remain after the fixed sized positions, all positions
// should have 100 pixels
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(2));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(3));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(4));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(5));
}
@Test
public void getSizeMixedMixedModeAfterAddingTooMuch() throws Exception {
this.sizeConfigMixedMode.setPercentage(3, 40);
this.sizeConfigMixedMode.setPercentage(4, 40);
this.sizeConfigMixedMode.setPercentage(5, 40);
this.sizeConfigMixedMode.setPercentage(6, 40);
this.sizeConfigMixedMode.calculatePercentages(600, 7);
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(1));
// this column does not have a percentage width set, so it will be 0 if
// other columns with fixed percentage widths are added
Assert.assertEquals(0, this.sizeConfigMixedMode.getSize(2));
// 4 additional percentage sized positions that have the same percentage
// size
// as 400 pixels remain after the fixed sized positions, all positions
// should have 100 pixels
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(3));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(4));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(5));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(6));
}
@Test
public void getAggregateMixedModeSpaceChangeCacheCheck() throws Exception {
Assert.assertEquals(100, this.sizeConfigMixedMode.getAggregateSize(1));
Assert.assertEquals(200, this.sizeConfigMixedMode.getAggregateSize(2));
Assert.assertEquals(500, this.sizeConfigMixedMode.getAggregateSize(3));
this.sizeConfigMixedMode.calculatePercentages(1000, 3);
Assert.assertEquals(100, this.sizeConfigMixedMode.getAggregateSize(1));
Assert.assertEquals(200, this.sizeConfigMixedMode.getAggregateSize(2));
Assert.assertEquals(1000, this.sizeConfigMixedMode.getAggregateSize(3));
this.sizeConfigMixedMode.calculatePercentages(500, 4);
Assert.assertEquals(100, this.sizeConfigMixedMode.getAggregateSize(1));
Assert.assertEquals(200, this.sizeConfigMixedMode.getAggregateSize(2));
Assert.assertEquals(350, this.sizeConfigMixedMode.getAggregateSize(3));
Assert.assertEquals(500, this.sizeConfigMixedMode.getAggregateSize(4));
}
@Test
public void getAggregateMixedModeSizeChangeCacheCheck() throws Exception {
Assert.assertEquals(100, this.sizeConfigMixedMode.getAggregateSize(1));
Assert.assertEquals(200, this.sizeConfigMixedMode.getAggregateSize(2));
Assert.assertEquals(500, this.sizeConfigMixedMode.getAggregateSize(3));
this.sizeConfigMixedMode.setPercentage(2, 25);
this.sizeConfigMixedMode.setPercentage(3, 25);
this.sizeConfigMixedMode.setPercentage(4, 25);
this.sizeConfigMixedMode.setPercentage(5, 25);
this.sizeConfigMixedMode.calculatePercentages(1000, 6);
Assert.assertEquals(100, this.sizeConfigMixedMode.getAggregateSize(1));
Assert.assertEquals(200, this.sizeConfigMixedMode.getAggregateSize(2));
Assert.assertEquals(400, this.sizeConfigMixedMode.getAggregateSize(3));
Assert.assertEquals(600, this.sizeConfigMixedMode.getAggregateSize(4));
Assert.assertEquals(800, this.sizeConfigMixedMode.getAggregateSize(5));
Assert.assertEquals(1000, this.sizeConfigMixedMode.getAggregateSize(6));
}
@Test
public void setSizeCalculation() {
Assert.assertEquals(100, this.sizeConfigCalculationMode.getSize(5));
Assert.assertEquals(1000,
this.sizeConfigCalculationMode.getAggregateSize(10));
// resize position 5 to 150
this.sizeConfigCalculationMode.setSize(5, 150);
// the position itself needs to be 150
Assert.assertEquals(150, this.sizeConfigCalculationMode.getSize(5));
// the other cells need to be modified where all positions are adjusted
// as they are
// configured to take the remaining space
Assert.assertEquals(94, this.sizeConfigCalculationMode.getSize(4));
Assert.assertEquals(94, this.sizeConfigCalculationMode.getSize(6));
// as we're in percentage mode, the aggregate size shouldn't have
// changed
Assert.assertEquals(1000,
this.sizeConfigCalculationMode.getAggregateSize(10));
}
@Test
public void setSizeFixed() {
this.sizeConfigFixedMode.calculatePercentages(400, 2);
Assert.assertEquals(200, this.sizeConfigFixedMode.getSize(0));
Assert.assertEquals(200, this.sizeConfigFixedMode.getSize(1));
Assert.assertEquals(400, this.sizeConfigFixedMode.getAggregateSize(2));
// resize position 0 to 25 percent
this.sizeConfigFixedMode.setSize(0, 100);
// the position itself needs to be 100
Assert.assertEquals(100, this.sizeConfigFixedMode.getSize(0));
Assert.assertEquals(300, this.sizeConfigFixedMode.getSize(1));
// as we're in percentage mode, the aggregate size shouldn't have
// changed
Assert.assertEquals(400, this.sizeConfigFixedMode.getAggregateSize(2));
}
@Test
public void setSizeMixedPercentage() {
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(400, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(2));
// resize position 0 to 20 percent
this.sizeConfigMixedPercentageMode.setSize(0, 200);
// the position itself needs to be 200
Assert.assertEquals(200, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(500, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(2));
// as we're in percentage mode, the aggregate size shouldn't have
// changed
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
// resize position 2 to 20 percent
this.sizeConfigMixedPercentageMode.setSize(2, 200);
// the position itself needs to be 200
Assert.assertEquals(200, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(600, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(200, this.sizeConfigMixedPercentageMode.getSize(2));
// as we're in percentage mode, the aggregate size shouldn't have
// changed
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
// resize position 1 to 50 percent
this.sizeConfigMixedPercentageMode.setSize(1, 500);
// the position itself needs to be 200
Assert.assertEquals(200, this.sizeConfigMixedPercentageMode.getSize(0));
Assert.assertEquals(500, this.sizeConfigMixedPercentageMode.getSize(1));
Assert.assertEquals(300, this.sizeConfigMixedPercentageMode.getSize(2));
// as we're in percentage mode, the aggregate size shouldn't have
// changed
Assert.assertEquals(1000,
this.sizeConfigMixedPercentageMode.getAggregateSize(3));
}
@Test
public void setSizeMixed() {
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(1));
Assert.assertEquals(300, this.sizeConfigMixedMode.getSize(2));
// resize position 0 to 200
this.sizeConfigMixedMode.setSize(0, 200);
// the position itself needs to be 200
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(1));
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(2));
// as we're in percentage mode, the aggregate size shouldn't have
// changed
Assert.assertEquals(500, this.sizeConfigMixedMode.getAggregateSize(3));
// resize position 1 to 200
this.sizeConfigMixedMode.setSize(1, 200);
// the position itself needs to be 200
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(1));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(2));
// as we're in percentage mode, the aggregate size shouldn't have
// changed
Assert.assertEquals(500, this.sizeConfigMixedMode.getAggregateSize(3));
// resize position 2
this.sizeConfigMixedMode.setSize(2, 500);
// no changes as last column should take remaining space
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(0));
Assert.assertEquals(200, this.sizeConfigMixedMode.getSize(1));
Assert.assertEquals(100, this.sizeConfigMixedMode.getSize(2));
// as we're in percentage mode, the aggregate size shouldn't have
// changed
Assert.assertEquals(500, this.sizeConfigMixedMode.getAggregateSize(3));
}
}