📄 datasetutilitiestests.java
字号:
/* ===========================================================
* JFreeChart : a free chart library for the Java(tm) platform
* ===========================================================
*
* (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
*
* Project Info: http://www.jfree.org/jfreechart/index.html
*
* This library is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
* License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*
* [Java is a trademark or registered trademark of Sun Microsystems, Inc.
* in the United States and other countries.]
*
* --------------------------
* DatasetUtilitiesTests.java
* --------------------------
* (C) Copyright 2003-2005, by Object Refinery Limited and Contributors.
*
* Original Author: David Gilbert (for Object Refinery Limited);
* Contributor(s): -;
*
* $Id: DatasetUtilitiesTests.java,v 1.11.2.3 2005/10/27 12:46:43 mungady Exp $
*
* Changes
* -------
* 18-Sep-2003 : Version 1 (DG);
* 23-Mar-2004 : Added test for maximumStackedRangeValue() method (DG);
* 04-Oct-2004 : Eliminated NumberUtils usage (DG);
* 07-Jan-2005 : Updated for method name changes (DG);
* 03-Feb-2005 : Added testFindStackedRangeBounds2() method (DG);
*
*/
package org.jfree.data.general.junit;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.jfree.data.KeyToGroupMap;
import org.jfree.data.Range;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.jfree.data.general.DatasetUtilities;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.data.general.PieDataset;
import org.jfree.data.xy.DefaultTableXYDataset;
import org.jfree.data.xy.TableXYDataset;
import org.jfree.data.xy.XYDataset;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
/**
* Tests for the {@link DatasetUtilities} class.
*/
public class DatasetUtilitiesTests extends TestCase {
private static final double EPSILON = 0.0000000001;
/**
* Returns the tests as a test suite.
*
* @return The test suite.
*/
public static Test suite() {
return new TestSuite(DatasetUtilitiesTests.class);
}
/**
* Constructs a new set of tests.
*
* @param name the name of the tests.
*/
public DatasetUtilitiesTests(String name) {
super(name);
}
/**
* Some tests to verify that Java does what I think it does!
*/
public void testJava() {
assertTrue(Double.isNaN(Math.min(1.0, Double.NaN)));
assertTrue(Double.isNaN(Math.max(1.0, Double.NaN)));
}
/**
* Some tests for the calculatePieDatasetTotal() method.
*/
public void testCalculatePieDatasetTotal() {
DefaultPieDataset d = new DefaultPieDataset();
assertEquals(
0.0, DatasetUtilities.calculatePieDatasetTotal(d), EPSILON
);
d.setValue("A", 1.0);
assertEquals(
1.0, DatasetUtilities.calculatePieDatasetTotal(d), EPSILON
);
d.setValue("B", 3.0);
assertEquals(
4.0, DatasetUtilities.calculatePieDatasetTotal(d), EPSILON
);
}
/**
* Some tests for the findDomainBounds() method.
*/
public void testFindDomainBounds() {
XYDataset dataset = createXYDataset1();
Range r = DatasetUtilities.findDomainBounds(dataset);
assertEquals(1.0, r.getLowerBound(), EPSILON);
assertEquals(3.0, r.getUpperBound(), EPSILON);
}
/**
* Some tests for the iterateDomainBounds() method.
*/
public void testIterateDomainBounds() {
XYDataset dataset = createXYDataset1();
Range r = DatasetUtilities.iterateDomainBounds(dataset);
assertEquals(1.0, r.getLowerBound(), EPSILON);
assertEquals(3.0, r.getUpperBound(), EPSILON);
}
/**
* Some tests for the findRangeExtent() method.
*/
public void testFindRangeBounds1() {
CategoryDataset dataset = createCategoryDataset1();
Range r = DatasetUtilities.findRangeBounds(dataset);
assertEquals(1.0, r.getLowerBound(), EPSILON);
assertEquals(6.0, r.getUpperBound(), EPSILON);
}
/**
* Some tests for the findRangeBounds() method.
*/
public void testFindRangeBounds2() {
XYDataset dataset = createXYDataset1();
Range r = DatasetUtilities.findRangeBounds(dataset);
assertEquals(100.0, r.getLowerBound(), EPSILON);
assertEquals(105.0, r.getUpperBound(), EPSILON);
}
/**
* Some tests for the iterateCategoryRangeBounds() method.
*/
public void testIterateCategoryRangeBounds() {
CategoryDataset dataset = createCategoryDataset1();
Range r = DatasetUtilities.iterateCategoryRangeBounds(dataset, false);
assertEquals(1.0, r.getLowerBound(), EPSILON);
assertEquals(6.0, r.getUpperBound(), EPSILON);
}
/**
* Some tests for the iterateXYRangeBounds() method.
*/
public void testIterateXYRangeBounds() {
XYDataset dataset = createXYDataset1();
Range r = DatasetUtilities.iterateXYRangeBounds(dataset);
assertEquals(100.0, r.getLowerBound(), EPSILON);
assertEquals(105.0, r.getUpperBound(), EPSILON);
}
/**
* Check the range returned when a series contains a null value.
*/
public void testIterateXYRangeBounds2() {
XYSeries s1 = new XYSeries("S1");
s1.add(1.0, 1.1);
s1.add(2.0, null);
s1.add(3.0, 3.3);
XYSeriesCollection dataset = new XYSeriesCollection(s1);
Range r = DatasetUtilities.iterateXYRangeBounds(dataset);
assertEquals(1.1, r.getLowerBound(), EPSILON);
assertEquals(3.3, r.getUpperBound(), EPSILON);
}
/**
* Some tests for the findMinimumDomainValue() method.
*/
public void testFindMinimumDomainValue() {
XYDataset dataset = createXYDataset1();
Number minimum = DatasetUtilities.findMinimumDomainValue(dataset);
assertEquals(new Double(1.0), minimum);
}
/**
* Some tests for the findMaximumDomainValue() method.
*/
public void testFindMaximumDomainValue() {
XYDataset dataset = createXYDataset1();
Number maximum = DatasetUtilities.findMaximumDomainValue(dataset);
assertEquals(new Double(3.0), maximum);
}
/**
* Some tests for the findMinimumRangeValue() method.
*/
public void testFindMinimumRangeValue() {
CategoryDataset d1 = createCategoryDataset1();
Number min1 = DatasetUtilities.findMinimumRangeValue(d1);
assertEquals(new Double(1.0), min1);
XYDataset d2 = createXYDataset1();
Number min2 = DatasetUtilities.findMinimumRangeValue(d2);
assertEquals(new Double(100.0), min2);
}
/**
* Some tests for the findMaximumRangeValue() method.
*/
public void testFindMaximumRangeValue() {
CategoryDataset d1 = createCategoryDataset1();
Number max1 = DatasetUtilities.findMaximumRangeValue(d1);
assertEquals(new Double(6.0), max1);
XYDataset dataset = createXYDataset1();
Number maximum = DatasetUtilities.findMaximumRangeValue(dataset);
assertEquals(new Double(105.0), maximum);
}
/**
* A quick test of the min and max range value methods.
*/
public void testMinMaxRange() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100.0, "Series 1", "Type 1");
dataset.addValue(101.1, "Series 1", "Type 2");
Number min = DatasetUtilities.findMinimumRangeValue(dataset);
assertTrue(min.doubleValue() < 100.1);
Number max = DatasetUtilities.findMaximumRangeValue(dataset);
assertTrue(max.doubleValue() > 101.0);
}
/**
* A test to reproduce bug report 803660.
*/
public void test803660() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(100.0, "Series 1", "Type 1");
dataset.addValue(101.1, "Series 1", "Type 2");
Number n = DatasetUtilities.findMaximumRangeValue(dataset);
assertTrue(n.doubleValue() > 101.0);
}
/**
* A simple test for the cumulative range calculation. The sequence of
* "cumulative" values are considered to be { 0.0, 10.0, 25.0, 18.0 } so
* the range should be 0.0 -> 25.0.
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -