tst_chartviewfunctions.qml
227 lines
| 9.2 KiB
| application/x-qml
|
QmlLexer
|
r2206 | /**************************************************************************** | ||
** | ||||
|
r2776 | ** Copyright (C) 2015 The Qt Company Ltd | ||
|
r2206 | ** All rights reserved. | ||
|
r2776 | ** For any questions to The Qt Company, please use contact form at http://qt.io | ||
|
r2206 | ** | ||
|
r2740 | ** This file is part of the Qt Charts module. | ||
|
r2206 | ** | ||
|
r2740 | ** Licensees holding valid commercial license for Qt may use this file in | ||
** accordance with the Qt License Agreement provided with the Software | ||||
** or, alternatively, in accordance with the terms contained in a written | ||||
|
r2776 | ** agreement between you and The Qt Company. | ||
|
r2206 | ** | ||
** If you have questions regarding the use of this file, please use | ||||
|
r2740 | ** contact form at http://qt.io | ||
|
r2206 | ** | ||
****************************************************************************/ | ||||
|
r2638 | import QtQuick 2.0 | ||
import QtTest 1.0 | ||||
|
r2788 | import QtCharts 2.1 | ||
|
r2206 | |||
Rectangle { | ||||
width: 400 | ||||
height: 300 | ||||
TestCase { | ||||
id: tc1 | ||||
|
r2228 | name: "tst_qml-qtquicktest ChartView Functions" | ||
|
r2206 | when: windowShown | ||
|
r2788 | property rect zoomRect | ||
|
r2206 | |||
function test_chartViewSeriesAndAxes() { | ||||
// Create XY series | ||||
var line = chartView.createSeries(ChartView.SeriesTypeLine, "line"); | ||||
verify(line != null && line != undefined); | ||||
var spline = chartView.createSeries(ChartView.SeriesTypeSpline, "spline"); | ||||
verify(spline != null && spline != undefined); | ||||
var scatter = chartView.createSeries(ChartView.SeriesTypeScatter, "scatter"); | ||||
verify(scatter != null && scatter != undefined); | ||||
// Create a series with specific axes | ||||
var line2 = chartView.createSeries(ChartView.SeriesTypeLine, "line2", chartView.axisX(line), chartView.axisY(line)); | ||||
// Check that all the XY series use the same axes | ||||
verify(chartView.axisX(line) != null); | ||||
verify(chartView.axisY(line) != null); | ||||
compare(chartView.axisX(line), chartView.axisX(line2)); | ||||
compare(chartView.axisY(line), chartView.axisY(line2)); | ||||
compare(chartView.axisX(line), chartView.axisX(spline)); | ||||
compare(chartView.axisY(line), chartView.axisY(spline)); | ||||
compare(chartView.axisX(line), chartView.axisX(scatter)); | ||||
compare(chartView.axisY(line), chartView.axisY(scatter)); | ||||
var bar = chartView.createSeries(ChartView.SeriesTypeBar, "bar"); | ||||
verify(bar != null && bar != undefined); | ||||
var stackedbar = chartView.createSeries(ChartView.SeriesTypeStackedBar, "stackedbar"); | ||||
verify(stackedbar != null && stackedbar != undefined); | ||||
var percentbar = chartView.createSeries(ChartView.SeriesTypePercentBar, "percentbar"); | ||||
verify(percentbar != null && percentbar != undefined); | ||||
var horizontalbar = chartView.createSeries(ChartView.SeriesTypeHorizontalBar, "horizontalbar"); | ||||
verify(horizontalbar != null && horizontalbar != undefined); | ||||
var horizontalstackedbar = chartView.createSeries(ChartView.SeriesTypeHorizontalStackedBar, "horizontalstackedbar"); | ||||
verify(horizontalstackedbar != null && horizontalstackedbar != undefined); | ||||
var horizontalpercentbar = chartView.createSeries(ChartView.SeriesTypeHorizontalPercentBar, "horizontalpercentbar"); | ||||
verify(horizontalpercentbar != null && horizontalpercentbar != undefined); | ||||
var area = chartView.createSeries(ChartView.SeriesTypeArea, "area"); | ||||
verify(area != null && area != undefined); | ||||
// Remove all series | ||||
chartView.removeAllSeries(); | ||||
compare(chartView.count, 0); | ||||
} | ||||
function test_chartViewRange() { | ||||
// Set initial values | ||||
chartView.createSeries(ChartView.SeriesTypeLine, "line"); | ||||
verify(chartView.axisX() != null); | ||||
verify(chartView.axisY() != null); | ||||
chartView.axisX().min = 1.0; | ||||
chartView.axisX().max = 2.0; | ||||
chartView.axisY().min = 1.0; | ||||
chartView.axisY().max = 2.0; | ||||
|
r2788 | var xMaxOriginal = chartView.axisX().max; | ||
var xMinOriginal = chartView.axisX().min; | ||||
var yMaxOriginal = chartView.axisY().max; | ||||
var yMinOriginal = chartView.axisY().min; | ||||
|
r2206 | var xMax = chartView.axisX().max; | ||
var xMin = chartView.axisX().min; | ||||
var yMax = chartView.axisY().max; | ||||
var yMin = chartView.axisY().min; | ||||
// zoom x 2.5 | ||||
chartView.zoom(1.5); | ||||
|
r2813 | verify(chartView.isZoomed()); | ||
|
r2206 | verify(chartView.axisX().max < xMax); | ||
verify(chartView.axisX().min > xMin); | ||||
verify(chartView.axisY().max < yMax); | ||||
verify(chartView.axisY().min > yMin); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
// zoom x 0.5 | ||||
chartView.zoom(0.5); | ||||
|
r2813 | verify(chartView.isZoomed()); | ||
|
r2206 | verify(chartView.axisX().max > xMax); | ||
verify(chartView.axisX().min < xMin); | ||||
verify(chartView.axisY().max > yMax); | ||||
verify(chartView.axisY().min < yMin); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
|
r2788 | // zoom x -1 | ||
// negative value has no effect | ||||
chartView.zoom(-1); | ||||
|
r2813 | verify(chartView.isZoomed()); | ||
|
r2788 | verify(chartView.axisX().max === xMax); | ||
verify(chartView.axisX().min === xMin); | ||||
verify(chartView.axisY().max === yMax); | ||||
verify(chartView.axisY().min === yMin); | ||||
// zoom in | ||||
chartView.zoomIn(); | ||||
|
r2813 | verify(chartView.isZoomed()); | ||
|
r2788 | verify(chartView.axisX().max < xMax); | ||
verify(chartView.axisX().min > xMin); | ||||
verify(chartView.axisY().max < yMax); | ||||
verify(chartView.axisY().min > yMin); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
// zoom in rect | ||||
zoomRect.x = 100; | ||||
zoomRect.y = 100; | ||||
zoomRect.width = 120; | ||||
zoomRect.height = 120; | ||||
chartView.zoomIn(zoomRect); | ||||
|
r2813 | verify(chartView.isZoomed()); | ||
|
r2788 | verify(chartView.axisX().max < xMax); | ||
verify(chartView.axisX().min > xMin); | ||||
verify(chartView.axisY().max < yMax); | ||||
verify(chartView.axisY().min > yMin); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
// zoom out | ||||
chartView.zoomOut(); | ||||
|
r2813 | verify(chartView.isZoomed()); | ||
|
r2788 | verify(chartView.axisX().max > xMax); | ||
verify(chartView.axisX().min < xMin); | ||||
verify(chartView.axisY().max > yMax); | ||||
verify(chartView.axisY().min < yMin); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
// zoom reset | ||||
chartView.zoomReset(); | ||||
|
r2813 | verify(!chartView.isZoomed()); | ||
|
r2788 | verify(chartView.axisX().max === xMaxOriginal); | ||
verify(chartView.axisX().min === xMinOriginal); | ||||
verify(chartView.axisY().max === yMaxOriginal); | ||||
verify(chartView.axisY().min === yMinOriginal); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
|
r2206 | // Scroll up | ||
chartView.scrollUp(10); | ||||
compare(chartView.axisX().max, xMax); | ||||
compare(chartView.axisX().min, xMin); | ||||
verify(chartView.axisY().max > yMax); | ||||
verify(chartView.axisY().min > yMin); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
// Scroll down | ||||
chartView.scrollDown(10); | ||||
compare(chartView.axisX().max, xMax); | ||||
compare(chartView.axisX().min, xMin); | ||||
verify(chartView.axisY().max < yMax); | ||||
verify(chartView.axisY().min < yMin); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
|
r2307 | // Scroll left | ||
|
r2206 | chartView.scrollLeft(10); | ||
verify(chartView.axisX().max < xMax); | ||||
verify(chartView.axisX().min < xMin); | ||||
compare(chartView.axisY().max, yMax); | ||||
compare(chartView.axisY().min, yMin); | ||||
xMax = chartView.axisX().max; | ||||
xMin = chartView.axisX().min; | ||||
yMax = chartView.axisY().max; | ||||
yMin = chartView.axisY().min; | ||||
|
r2307 | // Scroll right | ||
|
r2206 | chartView.scrollRight(10); | ||
verify(chartView.axisX().max > xMax); | ||||
verify(chartView.axisX().min > xMin); | ||||
compare(chartView.axisY().max, yMax); | ||||
compare(chartView.axisY().min, yMin); | ||||
} | ||||
} | ||||
ChartView { | ||||
id: chartView | ||||
anchors.fill: parent | ||||
title: "Chart" | ||||
} | ||||
} | ||||