-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChartTest.swift
82 lines (68 loc) · 2.72 KB
/
ChartTest.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
//
// ChartTest.swift
// Jia Jie's DCA CalculatorTests
//
// Created by Jia Jie Chan on 17/1/22.
//
import XCTest
@testable import Jia_Jie_s_DCA_Calculator
extension Double: Plottable {
public typealias T = Self
}
class ChartTest: XCTestCase {
var sut: [Double] = [3.5, 4.5, 10, 7.5, 3.5]
var state: RenderState!
var frame: Frame = .init(count: 5, height: Dimensions.height, width: Dimensions.width, padding: 0.1 * Dimensions.width)
var mmr: MMR = .init(max: 10, min: 3.5)!
override func setUpWithError() throws {
// Put setup code here. This method is called before the invocation of each test method in the class.
state = LineState(data: sut, frame: frame, mmr: .init(max: sut.max()!, min: sut.min()!)!, setKeyPath: \Double.self)
}
override func tearDownWithError() throws {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}
func reverse(y: CGFloat) -> CGFloat {
let share = y / frame.height
let deviation = share * mmr.range
let point = mmr.max - deviation
return point
}
func testExample() throws {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
var y = Y.get(point: 10, mmr: mmr, frame: frame)
XCTAssertEqual(y, 0)
y = Y.get(point: 3.5, mmr: mmr, frame: frame)
XCTAssertEqual(y, Dimensions.height)
XCTAssertEqual(reverse(y: y), 3.5)
let y1 = Y.get(point: 4.5, mmr: mmr, frame: frame)
let y2 = Y.get(point: 7.5, mmr: mmr, frame: frame)
XCTAssert(y1 > y2)
}
func testAllNegative() throws {
mmr = .init(max: -3.5, min: -10)!
var y = Y.get(point: -10, mmr: mmr, frame: frame)
XCTAssertEqual(y, Dimensions.height)
y = Y.get(point: -3.5, mmr: mmr, frame: frame)
XCTAssertEqual(y, 0)
let y1 = Y.get(point: -4.5, mmr: mmr, frame: frame)
let y2 = Y.get(point: -7.5, mmr: mmr, frame: frame)
XCTAssert(y2 > y1)
}
func testPositiveNegative() throws {
mmr = .init(max: 4, min: -4)!
var y = Y.get(point: -4, mmr: mmr, frame: frame)
XCTAssertEqual(y, Dimensions.height)
y = Y.get(point: 4, mmr: mmr, frame: frame)
XCTAssertEqual(y, 0)
let y1 = Y.get(point: 2.5, mmr: mmr, frame: frame)
let y2 = Y.get(point: -2.5, mmr: mmr, frame: frame)
XCTAssert(y2 > y1)
}
func testPerformanceExample() throws {
// This is an example of a performance test case.
self.measure {
// Put the code you want to measure the time of here.
}
}
}