- /* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-2004, 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., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA.
- *
- * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
- * in the United States and other countries.]
- *
- * --------------------
- * JFreeChartTests.java
- * --------------------
- * (C) Copyright 2002-2004, by Object Refinery Limited.
- *
- * Original Author: David Gilbert (for Object Refinery Limited);
- * Contributor(s): -;
- *
- * $Id: JFreeChartTests.java,v 1.1 2004/08/31 14:35:34 mungady Exp $
- *
- * Changes:
- * --------
- * 11-Jun-2002 : Version 1 (DG);
- * 17-Oct-2002 : Fixed errors reported by Checkstyle (DG);
- * 23-Sep-2003 : Removed null title test, since TM has added code to ensure null titles
- * cannot be created (DG);
- *
- */
- package org.jfree.chart.junit;
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.ObjectInput;
- import java.io.ObjectInputStream;
- import java.io.ObjectOutput;
- import java.io.ObjectOutputStream;
- import junit.framework.Test;
- import junit.framework.TestCase;
- import junit.framework.TestSuite;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.data.category.DefaultCategoryDataset;
- import org.jfree.data.general.DefaultPieDataset;
- import org.jfree.data.time.Day;
- import org.jfree.data.time.RegularTimePeriod;
- import org.jfree.data.time.TimeSeries;
- import org.jfree.data.time.TimeSeriesCollection;
- /**
- * Tests for the {@link JFreeChart} class.
- *
- */
- public class JFreeChartTests extends TestCase {
- /** A pie chart. */
- private JFreeChart pieChart;
- /**
- * Returns the tests as a test suite.
- *
- * @return the test suite.
- */
- public static Test suite() {
- return new TestSuite(JFreeChartTests.class);
- }
- /**
- * Constructs a new set of tests.
- *
- * @param name the name of the tests.
- */
- public JFreeChartTests(String name) {
- super(name);
- }
- /**
- * Common test setup.
- */
- protected void setUp() {
- // create a dataset...
- DefaultPieDataset data = new DefaultPieDataset();
- data.setValue("Java", new Double(43.2));
- data.setValue("Visual Basic", new Double(0.0));
- data.setValue("C/C++", new Double(17.5));
- // create the chart...
- this.pieChart = ChartFactory.createPieChart(
- "Pie Chart", // chart title
- data, // data
- true, // include legend
- true,
- false
- );
- }
- /**
- * Checks the subtitle count - should be 0.
- */
- public void testSubtitleCount() {
- int count = this.pieChart.getSubtitleCount();
- assertEquals(count, 0);
- }
- /**
- * Serialize a pie chart, restore it, and check for equality.
- */
- public void testSerialization1() {
- DefaultPieDataset data = new DefaultPieDataset();
- data.setValue("Type 1", 54.5);
- data.setValue("Type 2", 23.9);
- data.setValue("Type 3", 45.8);
- JFreeChart c1 = ChartFactory.createPieChart("Test", data, true, true, true);
- JFreeChart c2 = null;
- try {
- ByteArrayOutputStream buffer = new ByteArrayOutputStream();
- ObjectOutput out = new ObjectOutputStream(buffer);
- out.writeObject(c1);
- out.close();
- ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
- c2 = (JFreeChart) in.readObject();
- in.close();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- assertEquals(c1, c2);
- }
- /**
- * Serialize a 3D pie chart, restore it, and check for equality.
- */
- public void testSerialization2() {
- DefaultPieDataset data = new DefaultPieDataset();
- data.setValue("Type 1", 54.5);
- data.setValue("Type 2", 23.9);
- data.setValue("Type 3", 45.8);
- JFreeChart c1 = ChartFactory.createPieChart3D("Test", data, true, true, true);
- JFreeChart c2 = null;
- try {
- ByteArrayOutputStream buffer = new ByteArrayOutputStream();
- ObjectOutput out = new ObjectOutputStream(buffer);
- out.writeObject(c1);
- out.close();
- ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
- c2 = (JFreeChart) in.readObject();
- in.close();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- assertEquals(c1, c2);
- }
- /**
- * Serialize a bar chart, restore it, and check for equality.
- */
- public void testSerialization3() {
- // row keys...
- String series1 = "First";
- String series2 = "Second";
- String series3 = "Third";
- // column keys...
- String category1 = "Category 1";
- String category2 = "Category 2";
- String category3 = "Category 3";
- String category4 = "Category 4";
- String category5 = "Category 5";
- String category6 = "Category 6";
- String category7 = "Category 7";
- String category8 = "Category 8";
- // create the dataset...
- DefaultCategoryDataset dataset = new DefaultCategoryDataset();
- dataset.addValue(1.0, series1, category1);
- dataset.addValue(4.0, series1, category2);
- dataset.addValue(3.0, series1, category3);
- dataset.addValue(5.0, series1, category4);
- dataset.addValue(5.0, series1, category5);
- dataset.addValue(7.0, series1, category6);
- dataset.addValue(7.0, series1, category7);
- dataset.addValue(8.0, series1, category8);
- dataset.addValue(5.0, series2, category1);
- dataset.addValue(7.0, series2, category2);
- dataset.addValue(6.0, series2, category3);
- dataset.addValue(8.0, series2, category4);
- dataset.addValue(4.0, series2, category5);
- dataset.addValue(4.0, series2, category6);
- dataset.addValue(2.0, series2, category7);
- dataset.addValue(1.0, series2, category8);
- dataset.addValue(4.0, series3, category1);
- dataset.addValue(3.0, series3, category2);
- dataset.addValue(2.0, series3, category3);
- dataset.addValue(3.0, series3, category4);
- dataset.addValue(6.0, series3, category5);
- dataset.addValue(3.0, series3, category6);
- dataset.addValue(4.0, series3, category7);
- dataset.addValue(3.0, series3, category8);
- // create the chart...
- JFreeChart c1 = ChartFactory.createBarChart(
- "Vertical Bar Chart", // chart title
- "Category", // domain axis label
- "Value", // range axis label
- dataset, // data
- PlotOrientation.VERTICAL, // orientation
- true, // include legend
- true,
- false
- );
- JFreeChart c2 = null;
- try {
- ByteArrayOutputStream buffer = new ByteArrayOutputStream();
- ObjectOutput out = new ObjectOutputStream(buffer);
- out.writeObject(c1);
- out.close();
- ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
- c2 = (JFreeChart) in.readObject();
- in.close();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- assertEquals(c1, c2);
- }
- /**
- * Serialize a time seroes chart, restore it, and check for equality.
- */
- public void testSerialization4() {
- RegularTimePeriod t = new Day();
- TimeSeries series = new TimeSeries("Series 1");
- series.add(t, 36.4);
- t = t.next();
- series.add(t, 63.5);
- TimeSeriesCollection dataset = new TimeSeriesCollection();
- dataset.addSeries(series);
- JFreeChart c1 = ChartFactory.createTimeSeriesChart(
- "Test", "Date", "Value", dataset, true, true, true
- );
- JFreeChart c2 = null;
- try {
- ByteArrayOutputStream buffer = new ByteArrayOutputStream();
- ObjectOutput out = new ObjectOutputStream(buffer);
- out.writeObject(c1);
- out.close();
- ObjectInput in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray()));
- c2 = (JFreeChart) in.readObject();
- in.close();
- }
- catch (Exception e) {
- e.printStackTrace();
- }
- assertEquals(c1, c2);
- }
- }