forked from ChartsOrg/Charts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
HorizontalBarChartTests.swift
131 lines (113 loc) · 5.36 KB
/
HorizontalBarChartTests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
//
// HorizontalBarChartTests.swift
// ChartsTests
//
// Created by Xuan Liu on 2019/3/20.
//
@testable import DGCharts
import SnapshotTesting
import XCTest
class HorizontalBarChartTests: XCTestCase {
override func setUp() {
super.setUp()
// Set to `true` to re-capture all snapshots
isRecording = false
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
// MARK: Prepare
func setupCustomValuesDataEntries(values: [Double]) -> [ChartDataEntry] {
var entries: [ChartDataEntry] = Array()
for (i, value) in values.enumerated() {
entries.append(BarChartDataEntry(x: Double(i), y: value, icon: UIImage(named: "icon", in: Bundle(for: classForCoder), compatibleWith: nil)))
}
return entries
}
func setupStackedvaluesDataEntries() -> [ChartDataEntry] {
var entries: [ChartDataEntry] = Array()
entries.append(BarChartDataEntry(x: 0, yValues: [28, 50, 60, 30, 42], icon: UIImage(named: "icon")))
entries.append(BarChartDataEntry(x: 1, yValues: [-20, -36, -52, -40, -15], icon: UIImage(named: "icon")))
entries.append(BarChartDataEntry(x: 2, yValues: [10, 30, 40, 90, 72], icon: UIImage(named: "icon")))
entries.append(BarChartDataEntry(x: 3, yValues: [-40, -50, -30, -60, -20], icon: UIImage(named: "icon")))
entries.append(BarChartDataEntry(x: 4, yValues: [10, 40, 60, 45, 62], icon: UIImage(named: "icon")))
return entries
}
func setupDefaultValuesDataEntries() -> [ChartDataEntry] {
let values: [Double] = [8, 104, -81, 93, 52, -44, 97, 101, -75, 28,
-76, 25, 20, -13, 52, 44, -57, 23, 45, -91,
99, 14, -84, 48, 40, -71, 106, 41, -45, 61]
return setupCustomValuesDataEntries(values: values)
}
func setupDefaultDataSet(chartDataEntries: [ChartDataEntry]) -> BarChartDataSet {
let dataSet = BarChartDataSet(entries: chartDataEntries, label: "Bar chart unit test data")
dataSet.drawIconsEnabled = false
dataSet.iconsOffset = CGPoint(x: 0, y: -10.0)
return dataSet
}
func setupDefaultStackedDataSet(chartDataEntries: [ChartDataEntry]) -> BarChartDataSet {
let dataSet = BarChartDataSet(entries: chartDataEntries, label: "Stacked bar chart unit test data")
dataSet.drawIconsEnabled = false
dataSet.iconsOffset = CGPoint(x: 0, y: -10.0)
dataSet.colors = Array(arrayLiteral: NSUIColor(red: 46 / 255.0, green: 204 / 255.0, blue: 113 / 255.0, alpha: 1.0),
NSUIColor(red: 241 / 255.0, green: 196 / 255.0, blue: 15 / 255.0, alpha: 1.0),
NSUIColor(red: 231 / 255.0, green: 76 / 255.0, blue: 60 / 255.0, alpha: 1.0),
NSUIColor(red: 52 / 255.0, green: 152 / 255.0, blue: 219 / 255.0, alpha: 1.0))
return dataSet
}
func setupDefaultChart(dataSets: [BarChartDataSet]) -> BarChartView {
let data = BarChartData(dataSets: dataSets)
data.barWidth = 0.85
let chart = HorizontalBarChartView(frame: CGRect(x: 0, y: 0, width: 480, height: 350))
chart.backgroundColor = NSUIColor.clear
chart.data = data
return chart
}
// MARK: Start Test
func testDefaultValues() {
let dataEntries = setupDefaultValuesDataEntries()
let dataSet = setupDefaultDataSet(chartDataEntries: dataEntries)
let chart = setupDefaultChart(dataSets: [dataSet])
assertChartSnapshot(matching: chart)
}
func testHidesValues() {
let dataEntries = setupDefaultValuesDataEntries()
let dataSet = setupDefaultDataSet(chartDataEntries: dataEntries)
let chart = setupDefaultChart(dataSets: [dataSet])
dataSet.drawValuesEnabled = false
chart.notifyDataSetChanged()
assertChartSnapshot(matching: chart)
}
func testNotDrawValueAboveBars() {
let dataEntries = setupDefaultValuesDataEntries()
let dataSet = setupDefaultDataSet(chartDataEntries: dataEntries)
let chart = setupDefaultChart(dataSets: [dataSet])
chart.drawValueAboveBarEnabled = false
chart.notifyDataSetChanged()
assertChartSnapshot(matching: chart)
}
func testStackedDrawValues() {
let dataEntries = setupStackedvaluesDataEntries()
let dataSet = setupDefaultStackedDataSet(chartDataEntries: dataEntries)
let chart = setupDefaultChart(dataSets: [dataSet])
chart.notifyDataSetChanged()
assertChartSnapshot(matching: chart)
}
func testStackedNotDrawValues() {
let dataEntries = setupStackedvaluesDataEntries()
let dataSet = setupDefaultStackedDataSet(chartDataEntries: dataEntries)
dataSet.drawValuesEnabled = false
let chart = setupDefaultChart(dataSets: [dataSet])
chart.notifyDataSetChanged()
assertChartSnapshot(matching: chart)
}
func testStackedNotDrawValuesAboveBars() {
let dataEntries = setupStackedvaluesDataEntries()
let dataSet = setupDefaultStackedDataSet(chartDataEntries: dataEntries)
let chart = setupDefaultChart(dataSets: [dataSet])
chart.drawValueAboveBarEnabled = false
chart.notifyDataSetChanged()
assertChartSnapshot(matching: chart)
}
}