1
1
mirror of https://github.com/exyte/Macaw.git synced 2024-09-11 13:15:35 +03:00
Macaw/MacawTests/MacawTests.swift
2019-06-04 11:30:48 +07:00

116 lines
4.0 KiB
Swift

import XCTest
#if os(OSX)
@testable import MacawOSX
#elseif os(iOS)
@testable import Macaw
#endif
class MacawTests: XCTestCase {
override func setUp() {
// Put setup code here. This method is called before the invocation of each test method in the class.
super.setUp()
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testSVGTriangle() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("triangle", referenceObject: createTriangleReferenceObject()))
}
func testSVGLine() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("line", referenceObject: createLineReferenceObject()))
}
func testSVGRect() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("rect", referenceObject: createRectReferenceObject()))
}
func testSVGRoundRect() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("roundRect", referenceObject: createRoundRectReferenceObject()))
}
func testSVGPolygon() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("polygon", referenceObject: createPolygonReferenceObject()))
}
func testSVGPolyline() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("polyline", referenceObject: createPolylineReferenceObject()))
}
func testSVGCircle() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("circle", referenceObject: createCircleReferenceObject()))
}
func testSVGEllipse() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("ellipse", referenceObject: createEllipseReferenceObject()))
}
func testSVGGroup() {
XCTAssertTrue(TestUtils.compareWithReferenceObject("group", referenceObject: createGroupReferenceObject()))
}
func createTriangleReferenceObject() -> Group {
let path = MoveTo(x: 150, y: 0).lineTo(x: 75, y: 200).lineTo(x: 225, y: 200).close().build()
return Group(contents: [Shape(form: path, stroke: Stroke(fill: Color.black, width: 2, cap: .round, join: .round))])
}
func createLineReferenceObject() -> Group {
let line = Line(x1: 0, y1: 0, x2: 200, y2: 200)
return Group(contents: [Shape(form: line, stroke: Stroke(fill: Color.red, width: 2, cap: .round, join: .round))])
}
func createRectReferenceObject() -> Group {
let rect = Rect(x: 50, w: 150, h: 150)
return Group(contents: [Shape(form: rect)])
}
func createRoundRectReferenceObject() -> Group {
let roundRect = RoundRect(rect: Rect(w: 150, h: 150), rx: 20, ry: 20)
return Group(contents: [Shape(form: roundRect)])
}
func createPolygonReferenceObject() -> Group {
let polygon = Polygon(points: [200, 10, 250, 190, 160, 210])
return Group(contents: [Shape(form: polygon)])
}
func createPolylineReferenceObject() -> Group {
let polyline = Polyline(points: [0, 40, 40, 40, 40, 80, 80, 80, 80, 120, 120, 120, 120, 160])
return Group(contents: [Shape(form: polyline,
fill: Color.white,
stroke: Stroke(fill: Color.red, width: 4, cap: .round, join: .round))])
}
func createCircleReferenceObject() -> Group {
let circle = Circle(cx: 50, cy: 50, r: 40)
return Group(contents: [Shape(form: circle,
fill: Color.red,
stroke: Stroke(fill: Color.black, width: 3, cap: .round, join: .round))])
}
func createEllipseReferenceObject() -> Group {
let ellipse = Ellipse(cx: 200, cy: 80, rx: 100, ry: 50)
return Group(contents: [Shape(form: ellipse,
fill: Color.yellow,
stroke: Stroke(fill: Color.purple, width: 2, cap: .round, join: .round))])
}
func createGroupReferenceObject() -> Group {
let pathShape = Shape(form: MoveTo(x: 150, y: 0).lineTo(x: 75, y: 200).lineTo(x: 225, y: 200).close().build(),
stroke: Stroke(fill: Color.black, width: 2, cap: .round, join: .round))
let lineShape = Shape(form: Line(x1: 0, y1: 0, x2: 200, y2: 200),
stroke: Stroke(fill: Color.white, width: 2, cap: .round, join: .round))
return Group(contents: [Group(contents: [pathShape, lineShape])])
}
}