package com.orange.atk.results.measurement;/*
* Software Name : ATK
*
* Copyright (C) 2007 - 2012 France Télécom
*
* Licensed 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.
*
* ------------------------------------------------------------------
* File Name : com.orange.atk.results.measurement.TestPlotList.java
*
* Created : 16/05/2008
* Author(s) : France Telecom
*/
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import junit.framework.JUnit4TestAdapter;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.orange.atk.platform.Platform;
/**
* Unit tests associated to {@link PlotList}
*
*/
public class PlotListTest {
private static String logDir = Platform.TMP_DIR;
PlotList list1 = null;
// To allow the test runner to run this test class
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(PlotListTest.class);
}
@Before
public void setUp() {
list1 = new PlotList("test","c:","c:","x comment","y comment",1,true,"blue");
}
@After
public void tearDown() {
}
@Test
public void testGetSize() {
PlotList list1=null;
list1 = new PlotList("test","c:","c:","x comment","y comment",1,true,"blue");
list1.addValue(10F);
assertEquals(1, list1.getSize());
list1.addValue(10F);
assertEquals(2, list1.getSize());
for (int i = 0; i < 100; i++) {
list1.addValue(10F);
}
assertEquals(102, list1.getSize());
}
@Test
public void testGetMin() {
list1.addValue(10F);
list1.addValue(-3F);
list1.addValue(3F);
list1.addValue(30F);
list1.addValue(-30F);
list1.addValue(30000F);
assertEquals(-30L, list1.getMin().longValue());
}
@Test
public void testGetMinIfEmpty() {
assertEquals(Long.MAX_VALUE, list1.getMin().longValue());
}
@Test
public void testGetMax() {
list1.addValue(10F);
list1.addValue(-3F);
list1.addValue(3F);
list1.addValue(30F);
list1.addValue(-30F);
list1.addValue(30000F);
assertEquals(30000L, list1.getMax().longValue());
}
@Test
public void testGetMaxIfEmpty() {
assertEquals(Long.MIN_VALUE, list1.getMax().longValue());
}
@Test
public void testAddValue2Params() {
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
assertEquals(1, list1.getSize());
list1.addValue(30L, 3F);
assertEquals(2, list1.getSize());
list1.addValue(2L, -100F);
assertEquals(2, list1.getSize());
list1.addValue(31L, -100F);
assertEquals(3, list1.getSize());
}
@Test
public void testIsEmpty() {
assertTrue(list1.isEmpty());
list1.addValue(-1L, 10F);
assertFalse(list1.isEmpty());
list1.addValue(-2L, -3F);
assertFalse(list1.isEmpty());
list1.addValue(30L, 3F);
assertFalse(list1.isEmpty());
}
@Test
public void testGetX() {
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -100F);
/* expected = [ -1, 30, 31] */
assertEquals(-1L, list1.getX(0).longValue());
assertEquals(30L, list1.getX(1).longValue());
assertEquals(31L, list1.getX(2).longValue());
}
@Test
public void testGetY() {
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -100F);
/* expected = [ 10, 3, -100] */
assertEquals(10L, list1.getY(0).longValue());
assertEquals(3L, list1.getY(1).longValue());
assertEquals(-100L, list1.getY(2).longValue());
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void testInvalidGetXWith0() {
list1.getX(0);
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void testInvalidGetXWithMinus1() {
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -100F);
list1.getX(-1);
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void testInvalidGetXWithGetSize() {
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -100F);
list1.getX(list1.getSize());
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void testInvalidGetYWith0() {
list1.getY(0);
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void testInvalidGetYWithMinus1() {
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -100F);
list1.getY(-1);
}
@Test(expected = ArrayIndexOutOfBoundsException.class)
public void testInvalidGetYWithGetSize() {
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -100F);
list1.getY(list1.getSize());
}
@Test
public void testGetAverage() {
assertEquals(Double.NaN, list1.getAverage());
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -102F);
/* expected = Sum([ 10, 3, -100]) = -89/3 ~ -29.67 */
assertEquals(-29.67, list1.getAverage());
}
@Test
public void testGetDelta() {
assertEquals(Double.NaN, list1.getDelta());
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -102F);
/* expected = sqrt((10+89/3)^2+(3+89/3)^2+(-102+89/3)^2)/3 */
assertEquals(29.03, list1.getDelta());
}
@Test
public void testGetScale() {
list1.addValue(-1L, 10F);
list1.addValue(-2L, -3F);
list1.addValue(30L, 3F);
list1.addValue(2L, -100F);
list1.addValue(31L, -102F);
/* expected = 32 / range */
assertEquals(10L, list1.getXScale(3).longValue());
assertEquals(6L, list1.getXScale(5).longValue());
}
@Test
public void testGetScaleIfEmpty() {
assertEquals(0, list1.getXScale(3).longValue());
assertEquals(0, list1.getXScale(5).longValue());
}
}