blob: eddad5a29420d29a36338865bddf8c7e06fcb7d8 [file] [log] [blame]
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Data Visualization module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/
import QtQuick 2.0
import QtDataVisualization 1.2
import QtTest 1.0
Item {
id: top
height: 150
width: 150
ItemModelSurfaceDataProxy {
id: initial
}
ItemModelSurfaceDataProxy {
id: initialized
autoColumnCategories: false
autoRowCategories: false
columnCategories: ["colcat1", "colcat2"]
columnRole: "col"
columnRolePattern: /^.*-(\d\d)$/
columnRoleReplace: "\\1"
itemModel: ListModel { objectName: "model1" }
multiMatchBehavior: ItemModelSurfaceDataProxy.MMBAverage
rowCategories: ["rowcat1", "rowcat2"]
rowRole: "row"
rowRolePattern: /^(\d\d\d\d).*$/
rowRoleReplace: "\\1"
xPosRole: "x"
xPosRolePattern: /^.*-(\d\d)$/
xPosRoleReplace: "\\1"
yPosRole: "y"
yPosRolePattern: /^(\d\d\d\d).*$/
yPosRoleReplace: "\\1"
zPosRole: "z"
zPosRolePattern: /-/
zPosRoleReplace: "\\1"
}
ItemModelSurfaceDataProxy {
id: change
}
TestCase {
name: "ItemModelSurfaceDataProxy Initial"
function test_initial() {
compare(initial.autoColumnCategories, true)
compare(initial.autoRowCategories, true)
compare(initial.columnCategories, [])
compare(initial.columnRole, "")
verify(initial.columnRolePattern)
compare(initial.columnRoleReplace, "")
verify(!initial.itemModel)
compare(initial.multiMatchBehavior, ItemModelSurfaceDataProxy.MMBLast)
compare(initial.rowCategories, [])
compare(initial.rowRole, "")
verify(initial.rowRolePattern)
compare(initial.rowRoleReplace, "")
compare(initial.useModelCategories, false)
compare(initial.xPosRole, "")
verify(initial.xPosRolePattern)
compare(initial.xPosRoleReplace, "")
compare(initial.yPosRole, "")
verify(initial.yPosRolePattern)
compare(initial.yPosRoleReplace, "")
compare(initial.zPosRole, "")
verify(initial.zPosRolePattern)
compare(initial.zPosRoleReplace, "")
compare(initial.columnCount, 0)
compare(initial.rowCount, 0)
verify(!initial.series)
compare(initial.type, AbstractDataProxy.DataTypeSurface)
}
}
TestCase {
name: "ItemModelSurfaceDataProxy Initialized"
function test_initialized() {
compare(initialized.autoColumnCategories, false)
compare(initialized.autoRowCategories, false)
compare(initialized.columnCategories.length, 2)
compare(initialized.columnCategories[0], "colcat1")
compare(initialized.columnCategories[1], "colcat2")
compare(initialized.columnRole, "col")
compare(initialized.columnRolePattern, /^.*-(\d\d)$/)
compare(initialized.columnRoleReplace, "\\1")
compare(initialized.itemModel.objectName, "model1")
compare(initialized.multiMatchBehavior, ItemModelSurfaceDataProxy.MMBAverage)
compare(initialized.rowCategories.length, 2)
compare(initialized.rowCategories[0], "rowcat1")
compare(initialized.rowCategories[1], "rowcat2")
compare(initialized.rowRole, "row")
compare(initialized.rowRolePattern, /^(\d\d\d\d).*$/)
compare(initialized.rowRoleReplace, "\\1")
compare(initialized.xPosRole, "x")
compare(initialized.xPosRolePattern, /^.*-(\d\d)$/)
compare(initialized.xPosRoleReplace, "\\1")
compare(initialized.yPosRole, "y")
compare(initialized.yPosRolePattern, /^(\d\d\d\d).*$/)
compare(initialized.yPosRoleReplace, "\\1")
compare(initialized.zPosRole, "z")
compare(initialized.zPosRolePattern, /-/)
compare(initialized.zPosRoleReplace, "\\1")
compare(initialized.columnCount, 2)
compare(initialized.rowCount, 2)
}
}
TestCase {
name: "ItemModelSurfaceDataProxy Change"
ListModel { id: model1; objectName: "model1" }
function test_1_change() {
change.autoColumnCategories = false
change.autoRowCategories = false
change.columnCategories = ["colcat1", "colcat2"]
change.columnRole = "col"
change.columnRolePattern = /^.*-(\d\d)$/
change.columnRoleReplace = "\\1"
change.itemModel = model1
change.multiMatchBehavior = ItemModelSurfaceDataProxy.MMBAverage
change.rowCategories = ["rowcat1", "rowcat2"]
change.rowRole = "row"
change.rowRolePattern = /^(\d\d\d\d).*$/
change.rowRoleReplace = "\\1"
change.useModelCategories = true // Overwrites columnLabels and rowLabels
change.xPosRole = "x"
change.xPosRolePattern = /^.*-(\d\d)$/
change.xPosRoleReplace = "\\1"
change.yPosRole = "y"
change.yPosRolePattern = /^(\d\d\d\d).*$/
change.yPosRoleReplace = "\\1"
change.zPosRole = "z"
change.zPosRolePattern = /-/
change.zPosRoleReplace = "\\1"
}
function test_2_test_change() {
// This test has a dependency to the previous one due to asynchronous item model resolving
compare(change.autoColumnCategories, false)
compare(change.autoRowCategories, false)
compare(change.columnCategories.length, 2)
compare(change.columnCategories[0], "colcat1")
compare(change.columnCategories[1], "colcat2")
compare(change.columnRole, "col")
compare(change.columnRolePattern, /^.*-(\d\d)$/)
compare(change.columnRoleReplace, "\\1")
compare(change.itemModel.objectName, "model1")
compare(change.multiMatchBehavior, ItemModelSurfaceDataProxy.MMBAverage)
compare(change.rowCategories.length, 2)
compare(change.rowCategories[0], "rowcat1")
compare(change.rowCategories[1], "rowcat2")
compare(change.rowRole, "row")
compare(change.rowRolePattern, /^(\d\d\d\d).*$/)
compare(change.rowRoleReplace, "\\1")
compare(change.useModelCategories, true)
compare(change.xPosRole, "x")
compare(change.xPosRolePattern, /^.*-(\d\d)$/)
compare(change.xPosRoleReplace, "\\1")
compare(change.yPosRole, "y")
compare(change.yPosRolePattern, /^(\d\d\d\d).*$/)
compare(change.yPosRoleReplace, "\\1")
compare(change.zPosRole, "z")
compare(change.zPosRolePattern, /-/)
compare(change.zPosRoleReplace, "\\1")
compare(change.columnCount, 0)
compare(change.rowCount, 0)
}
}
TestCase {
name: "ItemModelSurfaceDataProxy MultiMatchBehaviour"
Surface3D {
id: surface1
Surface3DSeries {
ItemModelSurfaceDataProxy {
id: surfaceProxy
itemModel: ListModel {
ListElement{ coords: "0,0"; data: "5"; }
ListElement{ coords: "0,0"; data: "15"; }
ListElement{ coords: "0,1"; data: "5"; }
ListElement{ coords: "0,1"; data: "15"; }
ListElement{ coords: "1,0"; data: "5"; }
ListElement{ coords: "1,0"; data: "15"; }
ListElement{ coords: "1,1"; data: "0"; }
}
rowRole: "coords"
columnRole: "coords"
yPosRole: "data"
rowRolePattern: /(\d),\d/
columnRolePattern: /(\d),(\d)/
rowRoleReplace: "\\1"
columnRoleReplace: "\\2"
}
}
}
function test_0_async_dummy() {
}
function test_1_test_multimatch() {
compare(surface1.axisY.max, 15)
}
function test_2_multimatch() {
surfaceProxy.multiMatchBehavior = ItemModelSurfaceDataProxy.MMBFirst
}
function test_3_test_multimatch() {
compare(surface1.axisY.max, 5)
}
function test_4_multimatch() {
surfaceProxy.multiMatchBehavior = ItemModelSurfaceDataProxy.MMBLast
}
function test_5_test_multimatch() {
compare(surface1.axisY.max, 15)
}
function test_6_multimatch() {
surfaceProxy.multiMatchBehavior = ItemModelSurfaceDataProxy.MMBAverage
}
function test_7_test_multimatch() {
compare(surface1.axisY.max, 10)
}
function test_8_multimatch() {
surfaceProxy.multiMatchBehavior = ItemModelSurfaceDataProxy.MMBCumulativeY
}
function test_9_test_multimatch() {
compare(surface1.axisY.max, 20)
}
}
}