⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xyplottests.java

📁 jfreechart-1.0.12 开发包和文档等
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
        p1.setDataset(1, dataset2);        p1.setDomainAxis(1, domainAxis2);        p1.setRangeAxis(1, rangeAxis2);        p1.setRenderer(1, renderer2);        XYPlot p2 = null;        try {            ByteArrayOutputStream buffer = new ByteArrayOutputStream();            ObjectOutput out = new ObjectOutputStream(buffer);            out.writeObject(p1);            out.close();            ObjectInput in = new ObjectInputStream(                new ByteArrayInputStream(buffer.toByteArray())            );            p2 = (XYPlot) in.readObject();            in.close();        }        catch (Exception e) {            fail(e.toString());        }        assertEquals(p1, p2);        // now check that all datasets, renderers and axes are being listened        // too...        NumberAxis domainAxisA = (NumberAxis) p2.getDomainAxis(0);        NumberAxis rangeAxisA = (NumberAxis) p2.getRangeAxis(0);        XYSeriesCollection datasetA = (XYSeriesCollection) p2.getDataset(0);        StandardXYItemRenderer rendererA            = (StandardXYItemRenderer) p2.getRenderer(0);        NumberAxis domainAxisB = (NumberAxis) p2.getDomainAxis(1);        NumberAxis rangeAxisB = (NumberAxis) p2.getRangeAxis(1);        XYSeriesCollection datasetB = (XYSeriesCollection) p2.getDataset(1);        StandardXYItemRenderer rendererB            = (StandardXYItemRenderer) p2.getRenderer(1);        assertTrue(datasetA.hasListener(p2));        assertTrue(domainAxisA.hasListener(p2));        assertTrue(rangeAxisA.hasListener(p2));        assertTrue(rendererA.hasListener(p2));        assertTrue(datasetB.hasListener(p2));        assertTrue(domainAxisB.hasListener(p2));        assertTrue(rangeAxisB.hasListener(p2));        assertTrue(rendererB.hasListener(p2));    }    /**     * Some checks for the getRendererForDataset() method.     */    public void testGetRendererForDataset() {        XYDataset d0 = new XYSeriesCollection();        XYDataset d1 = new XYSeriesCollection();        XYDataset d2 = new XYSeriesCollection();        XYDataset d3 = new XYSeriesCollection();  // not used by plot        XYItemRenderer r0 = new XYLineAndShapeRenderer();        XYItemRenderer r2 = new XYLineAndShapeRenderer();        XYPlot plot = new XYPlot();        plot.setDataset(0, d0);        plot.setDataset(1, d1);        plot.setDataset(2, d2);        plot.setRenderer(0, r0);        // no renderer 1        plot.setRenderer(2, r2);        assertEquals(r0, plot.getRendererForDataset(d0));        assertEquals(r0, plot.getRendererForDataset(d1));        assertEquals(r2, plot.getRendererForDataset(d2));        assertEquals(null, plot.getRendererForDataset(d3));        assertEquals(null, plot.getRendererForDataset(null));    }    /**     * Some checks for the getLegendItems() method.     */    public void testGetLegendItems() {        // check the case where there is a secondary dataset that doesn't        // have a renderer (i.e. falls back to renderer 0)        XYDataset d0 = createDataset1();        XYDataset d1 = createDataset2();        XYItemRenderer r0 = new XYLineAndShapeRenderer();        XYPlot plot = new XYPlot();        plot.setDataset(0, d0);        plot.setDataset(1, d1);        plot.setRenderer(0, r0);        LegendItemCollection items = plot.getLegendItems();        assertEquals(2, items.getItemCount());    }    /**     * Creates a sample dataset.     *     * @return Series 1.     */    private IntervalXYDataset createDataset1() {        // create dataset 1...        TimeSeries series1 = new TimeSeries("Series 1", Day.class);        series1.add(new Day(1, MonthConstants.MARCH, 2002), 12353.3);        series1.add(new Day(2, MonthConstants.MARCH, 2002), 13734.4);        series1.add(new Day(3, MonthConstants.MARCH, 2002), 14525.3);        series1.add(new Day(4, MonthConstants.MARCH, 2002), 13984.3);        series1.add(new Day(5, MonthConstants.MARCH, 2002), 12999.4);        series1.add(new Day(6, MonthConstants.MARCH, 2002), 14274.3);        series1.add(new Day(7, MonthConstants.MARCH, 2002), 15943.5);        series1.add(new Day(8, MonthConstants.MARCH, 2002), 14845.3);        series1.add(new Day(9, MonthConstants.MARCH, 2002), 14645.4);        series1.add(new Day(10, MonthConstants.MARCH, 2002), 16234.6);        series1.add(new Day(11, MonthConstants.MARCH, 2002), 17232.3);        series1.add(new Day(12, MonthConstants.MARCH, 2002), 14232.2);        series1.add(new Day(13, MonthConstants.MARCH, 2002), 13102.2);        series1.add(new Day(14, MonthConstants.MARCH, 2002), 14230.2);        series1.add(new Day(15, MonthConstants.MARCH, 2002), 11235.2);        TimeSeriesCollection collection = new TimeSeriesCollection(series1);        return collection;    }    /**     * Creates a sample dataset.     *     * @return A sample dataset.     */    private XYDataset createDataset2() {        // create dataset 1...        XYSeries series = new XYSeries("Series 2");        XYSeriesCollection collection = new XYSeriesCollection(series);        return collection;    }    /**     * A test for a bug where setting the renderer doesn't register the plot     * as a RendererChangeListener.     */    public void testSetRenderer() {        XYPlot plot = new XYPlot();        XYItemRenderer renderer = new XYLineAndShapeRenderer();        plot.setRenderer(renderer);        // now make a change to the renderer and see if it triggers a plot        // change event...        MyPlotChangeListener listener = new MyPlotChangeListener();        plot.addChangeListener(listener);        renderer.setSeriesPaint(0, Color.black);        assertTrue(listener.getEvent() != null);    }    /**     * Some checks for the removeAnnotation() method.     */    public void testRemoveAnnotation() {        XYPlot plot = new XYPlot();        XYTextAnnotation a1 = new XYTextAnnotation("X", 1.0, 2.0);        XYTextAnnotation a2 = new XYTextAnnotation("X", 3.0, 4.0);        XYTextAnnotation a3 = new XYTextAnnotation("X", 1.0, 2.0);        plot.addAnnotation(a1);        plot.addAnnotation(a2);        plot.addAnnotation(a3);        plot.removeAnnotation(a2);        XYTextAnnotation x = (XYTextAnnotation) plot.getAnnotations().get(0);        assertEquals(x, a1);        // now remove a3, but since a3.equals(a1), this will in fact remove        // a1...        assertTrue(a1.equals(a3));        plot.removeAnnotation(a3);  // actually removes a1        x = (XYTextAnnotation) plot.getAnnotations().get(0);        assertEquals(x, a3);    }    /**     * Some tests for the addDomainMarker() method(s).     */    public void testAddDomainMarker() {        XYPlot plot = new XYPlot();        Marker m = new ValueMarker(1.0);        plot.addDomainMarker(m);        List listeners = Arrays.asList(m.getListeners(                MarkerChangeListener.class));        assertTrue(listeners.contains(plot));        plot.clearDomainMarkers();        listeners = Arrays.asList(m.getListeners(MarkerChangeListener.class));        assertFalse(listeners.contains(plot));    }    /**     * Some tests for the addRangeMarker() method(s).     */    public void testAddRangeMarker() {        XYPlot plot = new XYPlot();        Marker m = new ValueMarker(1.0);        plot.addRangeMarker(m);        List listeners = Arrays.asList(m.getListeners(                MarkerChangeListener.class));        assertTrue(listeners.contains(plot));        plot.clearRangeMarkers();        listeners = Arrays.asList(m.getListeners(MarkerChangeListener.class));        assertFalse(listeners.contains(plot));    }    /**     * A test for bug 1654215 (where a renderer is added to the plot without     * a corresponding dataset and it throws an exception at drawing time).     */    public void test1654215() {        DefaultXYDataset dataset = new DefaultXYDataset();        JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",                dataset, PlotOrientation.VERTICAL, true, false, false);        XYPlot plot = (XYPlot) chart.getPlot();        plot.setRenderer(1, new XYLineAndShapeRenderer());        boolean success = false;        try {            BufferedImage image = new BufferedImage(200 , 100,                    BufferedImage.TYPE_INT_RGB);            Graphics2D g2 = image.createGraphics();            chart.draw(g2, new Rectangle2D.Double(0, 0, 200, 100), null, null);            g2.dispose();            success = true;        }        catch (Exception e) {            e.printStackTrace();            success = false;        }        assertTrue(success);    }    /**     * A test for drawing range grid lines when there is no primary renderer.     * In 1.0.4, this is throwing a NullPointerException.     */    public void testDrawRangeGridlines() {        DefaultXYDataset dataset = new DefaultXYDataset();        JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",                dataset, PlotOrientation.VERTICAL, true, false, false);        XYPlot plot = (XYPlot) chart.getPlot();        plot.setRenderer(null);        boolean success = false;        try {            BufferedImage image = new BufferedImage(200 , 100,                    BufferedImage.TYPE_INT_RGB);            Graphics2D g2 = image.createGraphics();            chart.draw(g2, new Rectangle2D.Double(0, 0, 200, 100), null, null);            g2.dispose();            success = true;        }        catch (Exception e) {            e.printStackTrace();            success = false;        }        assertTrue(success);    }    /**     * A test for drawing a plot where a series has zero items.  With     * JFreeChart 1.0.5+cvs this was throwing an exception at one point.     */    public void testDrawSeriesWithZeroItems() {        DefaultXYDataset dataset = new DefaultXYDataset();        dataset.addSeries("Series 1", new double[][] {{1.0, 2.0}, {3.0, 4.0}});        dataset.addSeries("Series 2", new double[][] {{}, {}});        JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",                dataset, PlotOrientation.VERTICAL, true, false, false);        boolean success = false;        try {            BufferedImage image = new BufferedImage(200 , 100,                    BufferedImage.TYPE_INT_RGB);            Graphics2D g2 = image.createGraphics();            chart.draw(g2, new Rectangle2D.Double(0, 0, 200, 100), null, null);            g2.dispose();            success = true;        }        catch (Exception e) {            e.printStackTrace();            success = false;        }        assertTrue(success);    }    /**     * Check that removing a marker that isn't assigned to the plot returns     * false.     */    public void testRemoveDomainMarker() {        XYPlot plot = new XYPlot();        assertFalse(plot.removeDomainMarker(new ValueMarker(0.5)));    }    /**     * Check that removing a marker that isn't assigned to the plot returns     * false.     */    public void testRemoveRangeMarker() {        XYPlot plot = new XYPlot();        assertFalse(plot.removeRangeMarker(new ValueMarker(0.5)));    }    /**     * Some tests for the getDomainAxisForDataset() method.     */    public void testGetDomainAxisForDataset() {        XYDataset dataset = new XYSeriesCollection();        NumberAxis xAxis = new NumberAxis("X");        NumberAxis yAxis = new NumberAxis("Y");        XYItemRenderer renderer = new DefaultXYItemRenderer();        XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);        assertEquals(xAxis, plot.getDomainAxisForDataset(0));        // should get IllegalArgumentException for negative index        boolean pass = false;        try {            plot.getDomainAxisForDataset(-1);        }        catch (IllegalArgumentException e) {            pass = true;        }        assertTrue(pass);        // should get IllegalArgumentException for index too high        pass = false;        try {            plot.getDomainAxisForDataset(1);        }        catch (IllegalArgumentException e) {            pass = true;        }        assertTrue(pass);        // if multiple axes are mapped, the first in the list should be        // returned...        NumberAxis xAxis2 = new NumberAxis("X2");        plot.setDomainAxis(1, xAxis2);        assertEquals(xAxis, plot.getDomainAxisForDataset(0));        plot.mapDatasetToDomainAxis(0, 1);        assertEquals(xAxis2, plot.getDomainAxisForDataset(0));        List axisIndices = Arrays.asList(new Integer[] {new Integer(0),                new Integer(1)});        plot.mapDatasetToDomainAxes(0, axisIndices);        assertEquals(xAxis, plot.getDomainAxisForDataset(0));        axisIndices = Arrays.asList(new Integer[] {new Integer(1),                new Integer(2)});        plot.mapDatasetToDomainAxes(0, axisIndices);        assertEquals(xAxis2, plot.getDomainAxisForDataset(0));    }    /**     * Some tests for the getRangeAxisForDataset() method.     */    public void testGetRangeAxisForDataset() {        XYDataset dataset = new XYSeriesCollection();        NumberAxis xAxis = new NumberAxis("X");        NumberAxis yAxis = new NumberAxis("Y");        XYItemRenderer renderer = new DefaultXYItemRenderer();        XYPlot plot = new XYPlot(dataset, xAxis, yAxis, renderer);        assertEquals(yAxis, plot.getRangeAxisForDataset(0));        // should get IllegalArgumentException for negative index        boolean pass = false;        try {            plot.getRangeAxisForDataset(-1);        }        catch (IllegalArgumentException e) {            pass = true;        }        assertTrue(pass);        // should get IllegalArgumentException for index too high        pass = false;        try {            plot.getRangeAxisForDataset(1);        }        catch (IllegalArgumentException e) {            pass = true;        }        assertTrue(pass);        // if multiple axes are mapped, the first in the list should be        // returned...        NumberAxis yAxis2 = new NumberAxis("Y2");        plot.setRangeAxis(1, yAxis2);        assertEquals(yAxis, plot.getRangeAxisForDataset(0));        plot.mapDatasetToRangeAxis(0, 1);        assertEquals(yAxis2, plot.getRangeAxisForDataset(0));        List axisIndices = Arrays.asList(new Integer[] {new Integer(0),                new Integer(1)});        plot.mapDatasetToRangeAxes(0, axisIndices);        assertEquals(yAxis, plot.getRangeAxisForDataset(0));        axisIndices = Arrays.asList(new Integer[] {new Integer(1),                new Integer(2)});        plot.mapDatasetToRangeAxes(0, axisIndices);        assertEquals(yAxis2, plot.getRangeAxisForDataset(0));    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -