Skip to content

Commit 28d5ec8

Browse files
authored
Merge pull request #55 from RougeWare/develop
Sync develop into master
2 parents 428ced0 + 8fc5fd8 commit 28d5ec8

File tree

5 files changed

+341
-2
lines changed

5 files changed

+341
-2
lines changed

Sources/RectangleTools/Default Conformances/EdgeInsets + FourSided.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ import SwiftUI
9494
@available(iOS 13, *)
9595
@available(tvOS 13, *)
9696
@available(watchOS 6, *)
97-
extension EdgeInsets: FourSidedAbsolute {
97+
extension SwiftUI.EdgeInsets: FourSidedAbsolute {
9898
public init(top: CGFloat, right: CGFloat, bottom: CGFloat, left: CGFloat) {
9999
switch UserInterfaceLayoutDirection.current {
100100
case .leftToRight:
@@ -121,7 +121,7 @@ extension EdgeInsets: FourSidedAbsolute {
121121
@available(iOS 13, *)
122122
@available(tvOS 13, *)
123123
@available(watchOS 6, *)
124-
public extension EdgeInsets {
124+
public extension SwiftUI.EdgeInsets {
125125
/// The value of whichever edge inset is leading in the current app's UI direction
126126
var right: CGFloat {
127127
switch UserInterfaceLayoutDirection.current {

Sources/RectangleTools/Synthesized Conveniences/DualTwoDimensional Extensions.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,19 @@ public extension DualTwoDimensional
163163
self.init(firstDimensionPair: otherFirst, secondDimensionPair: otherSecond)
164164
}
165165
}
166+
167+
168+
169+
public extension DualTwoDimensional
170+
where FirstDimensionPair.Length: ExpressibleByIntegerLiteral,
171+
SecondDimensionPair.Length: ExpressibleByIntegerLiteral
172+
{
173+
174+
/// An instance of this where both of the pairs' Xs and Ys are `0`
175+
@inlinable
176+
static var zero: Self { self.init(firstDimensionPair: .zero, secondDimensionPair: .zero) }
177+
178+
/// An instance of this where both of the pairs' Xs and Ys are `1`
179+
@inlinable
180+
static var one: Self { self.init(firstDimensionPair: .one, secondDimensionPair: .one) }
181+
}

Tests/LinuxMain.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ tests += TwoDimensionalMeasurementTests.allTests
2020
tests += FourSidedTests.allTests
2121
tests += Rectangle_Edgewise_Init_Tests.allTests
2222
tests += Rectangle_Combination_Tests.allTests
23+
tests += DualTwoDimensionalTests.allTests
2324
XCTMain(tests)
Lines changed: 321 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,321 @@
1+
//
2+
// DualTwoDimensionalTests.swift
3+
// RectangleToolsTests
4+
//
5+
// Created by Ben Leggiero on 2020-08-08.
6+
//
7+
8+
import XCTest
9+
import RectangleTools
10+
11+
12+
13+
final class DualTwoDimensionalTests: XCTestCase {
14+
15+
func test_zero() {
16+
let decimalZero = DecimalRectangle.zero
17+
18+
let intZero = IntRect.zero
19+
let int8Zero = Int8Rect.zero
20+
let int16Zero = Int16Rect.zero
21+
let int32Zero = Int32Rect.zero
22+
let int64Zero = Int64Rect.zero
23+
let uIntZero = UIntRect.zero
24+
let uInt8Zero = UInt8Rect.zero
25+
let uInt16Zero = UInt16Rect.zero
26+
let uInt32Zero = UInt32Rect.zero
27+
let uInt64Zero = UInt64Rect.zero
28+
29+
let cgRectZero = CGRect.zero
30+
31+
32+
XCTAssertEqual(decimalZero.origin, .zero)
33+
XCTAssertEqual( intZero.origin, .zero)
34+
XCTAssertEqual( int8Zero.origin, .zero)
35+
XCTAssertEqual( int16Zero.origin, .zero)
36+
XCTAssertEqual( int32Zero.origin, .zero)
37+
XCTAssertEqual( int64Zero.origin, .zero)
38+
XCTAssertEqual( uIntZero.origin, .zero)
39+
XCTAssertEqual( uInt8Zero.origin, .zero)
40+
XCTAssertEqual( uInt16Zero.origin, .zero)
41+
XCTAssertEqual( uInt32Zero.origin, .zero)
42+
XCTAssertEqual( uInt64Zero.origin, .zero)
43+
XCTAssertEqual( cgRectZero.origin, .zero)
44+
45+
XCTAssertEqual(decimalZero.size, .zero)
46+
XCTAssertEqual( intZero.size, .zero)
47+
XCTAssertEqual( int8Zero.size, .zero)
48+
XCTAssertEqual( int16Zero.size, .zero)
49+
XCTAssertEqual( int32Zero.size, .zero)
50+
XCTAssertEqual( int64Zero.size, .zero)
51+
XCTAssertEqual( uIntZero.size, .zero)
52+
XCTAssertEqual( uInt8Zero.size, .zero)
53+
XCTAssertEqual( uInt16Zero.size, .zero)
54+
XCTAssertEqual( uInt32Zero.size, .zero)
55+
XCTAssertEqual( uInt64Zero.size, .zero)
56+
XCTAssertEqual( cgRectZero.size, .zero)
57+
58+
59+
XCTAssertEqual(decimalZero.origin.x, 0)
60+
XCTAssertEqual( intZero.origin.x, 0)
61+
XCTAssertEqual( int8Zero.origin.x, 0)
62+
XCTAssertEqual( int16Zero.origin.x, 0)
63+
XCTAssertEqual( int32Zero.origin.x, 0)
64+
XCTAssertEqual( int64Zero.origin.x, 0)
65+
XCTAssertEqual( uIntZero.origin.x, 0)
66+
XCTAssertEqual( uInt8Zero.origin.x, 0)
67+
XCTAssertEqual( uInt16Zero.origin.x, 0)
68+
XCTAssertEqual( uInt32Zero.origin.x, 0)
69+
XCTAssertEqual( uInt64Zero.origin.x, 0)
70+
XCTAssertEqual( cgRectZero.origin.x, 0)
71+
72+
XCTAssertEqual(decimalZero.origin.y, 0)
73+
XCTAssertEqual( intZero.origin.y, 0)
74+
XCTAssertEqual( int8Zero.origin.y, 0)
75+
XCTAssertEqual( int16Zero.origin.y, 0)
76+
XCTAssertEqual( int32Zero.origin.y, 0)
77+
XCTAssertEqual( int64Zero.origin.y, 0)
78+
XCTAssertEqual( uIntZero.origin.y, 0)
79+
XCTAssertEqual( uInt8Zero.origin.y, 0)
80+
XCTAssertEqual( uInt16Zero.origin.y, 0)
81+
XCTAssertEqual( uInt32Zero.origin.y, 0)
82+
XCTAssertEqual( uInt64Zero.origin.y, 0)
83+
XCTAssertEqual( cgRectZero.origin.y, 0)
84+
85+
XCTAssertEqual(decimalZero.origin.measurementX, 0)
86+
XCTAssertEqual( intZero.origin.measurementX, 0)
87+
XCTAssertEqual( int8Zero.origin.measurementX, 0)
88+
XCTAssertEqual( int16Zero.origin.measurementX, 0)
89+
XCTAssertEqual( int32Zero.origin.measurementX, 0)
90+
XCTAssertEqual( int64Zero.origin.measurementX, 0)
91+
XCTAssertEqual( uIntZero.origin.measurementX, 0)
92+
XCTAssertEqual( uInt8Zero.origin.measurementX, 0)
93+
XCTAssertEqual( uInt16Zero.origin.measurementX, 0)
94+
XCTAssertEqual( uInt32Zero.origin.measurementX, 0)
95+
XCTAssertEqual( uInt64Zero.origin.measurementX, 0)
96+
XCTAssertEqual( cgRectZero.origin.measurementX, 0)
97+
98+
XCTAssertEqual(decimalZero.origin.measurementY, 0)
99+
XCTAssertEqual( intZero.origin.measurementY, 0)
100+
XCTAssertEqual( int8Zero.origin.measurementY, 0)
101+
XCTAssertEqual( int16Zero.origin.measurementY, 0)
102+
XCTAssertEqual( int32Zero.origin.measurementY, 0)
103+
XCTAssertEqual( int64Zero.origin.measurementY, 0)
104+
XCTAssertEqual( uIntZero.origin.measurementY, 0)
105+
XCTAssertEqual( uInt8Zero.origin.measurementY, 0)
106+
XCTAssertEqual( uInt16Zero.origin.measurementY, 0)
107+
XCTAssertEqual( uInt32Zero.origin.measurementY, 0)
108+
XCTAssertEqual( uInt64Zero.origin.measurementY, 0)
109+
XCTAssertEqual( cgRectZero.origin.measurementY, 0)
110+
111+
112+
XCTAssertEqual(decimalZero.size.width, 0)
113+
XCTAssertEqual( intZero.size.width, 0)
114+
XCTAssertEqual( int8Zero.size.width, 0)
115+
XCTAssertEqual( int16Zero.size.width, 0)
116+
XCTAssertEqual( int32Zero.size.width, 0)
117+
XCTAssertEqual( int64Zero.size.width, 0)
118+
XCTAssertEqual( uIntZero.size.width, 0)
119+
XCTAssertEqual( uInt8Zero.size.width, 0)
120+
XCTAssertEqual( uInt16Zero.size.width, 0)
121+
XCTAssertEqual( uInt32Zero.size.width, 0)
122+
XCTAssertEqual( uInt64Zero.size.width, 0)
123+
XCTAssertEqual( cgRectZero.size.width, 0)
124+
125+
XCTAssertEqual(decimalZero.size.height, 0)
126+
XCTAssertEqual( intZero.size.height, 0)
127+
XCTAssertEqual( int8Zero.size.height, 0)
128+
XCTAssertEqual( int16Zero.size.height, 0)
129+
XCTAssertEqual( int32Zero.size.height, 0)
130+
XCTAssertEqual( int64Zero.size.height, 0)
131+
XCTAssertEqual( uIntZero.size.height, 0)
132+
XCTAssertEqual( uInt8Zero.size.height, 0)
133+
XCTAssertEqual( uInt16Zero.size.height, 0)
134+
XCTAssertEqual( uInt32Zero.size.height, 0)
135+
XCTAssertEqual( uInt64Zero.size.height, 0)
136+
XCTAssertEqual( cgRectZero.size.height, 0)
137+
138+
XCTAssertEqual(decimalZero.size.measurementX, 0)
139+
XCTAssertEqual( intZero.size.measurementX, 0)
140+
XCTAssertEqual( int8Zero.size.measurementX, 0)
141+
XCTAssertEqual( int16Zero.size.measurementX, 0)
142+
XCTAssertEqual( int32Zero.size.measurementX, 0)
143+
XCTAssertEqual( int64Zero.size.measurementX, 0)
144+
XCTAssertEqual( uIntZero.size.measurementX, 0)
145+
XCTAssertEqual( uInt8Zero.size.measurementX, 0)
146+
XCTAssertEqual( uInt16Zero.size.measurementX, 0)
147+
XCTAssertEqual( uInt32Zero.size.measurementX, 0)
148+
XCTAssertEqual( uInt64Zero.size.measurementX, 0)
149+
XCTAssertEqual( cgRectZero.size.measurementX, 0)
150+
151+
XCTAssertEqual(decimalZero.size.measurementY, 0)
152+
XCTAssertEqual( intZero.size.measurementY, 0)
153+
XCTAssertEqual( int8Zero.size.measurementY, 0)
154+
XCTAssertEqual( int16Zero.size.measurementY, 0)
155+
XCTAssertEqual( int32Zero.size.measurementY, 0)
156+
XCTAssertEqual( int64Zero.size.measurementY, 0)
157+
XCTAssertEqual( uIntZero.size.measurementY, 0)
158+
XCTAssertEqual( uInt8Zero.size.measurementY, 0)
159+
XCTAssertEqual( uInt16Zero.size.measurementY, 0)
160+
XCTAssertEqual( uInt32Zero.size.measurementY, 0)
161+
XCTAssertEqual( uInt64Zero.size.measurementY, 0)
162+
XCTAssertEqual( cgRectZero.size.measurementY, 0)
163+
}
164+
165+
166+
func test_one() {
167+
let decimalZero = DecimalRectangle.one
168+
169+
let intZero = IntRect.one
170+
let int8Zero = Int8Rect.one
171+
let int16Zero = Int16Rect.one
172+
let int32Zero = Int32Rect.one
173+
let int64Zero = Int64Rect.one
174+
let uIntZero = UIntRect.one
175+
let uInt8Zero = UInt8Rect.one
176+
let uInt16Zero = UInt16Rect.one
177+
let uInt32Zero = UInt32Rect.one
178+
let uInt64Zero = UInt64Rect.one
179+
180+
let cgRectZero = CGRect.one
181+
182+
183+
XCTAssertEqual(decimalZero.origin, .one)
184+
XCTAssertEqual( intZero.origin, .one)
185+
XCTAssertEqual( int8Zero.origin, .one)
186+
XCTAssertEqual( int16Zero.origin, .one)
187+
XCTAssertEqual( int32Zero.origin, .one)
188+
XCTAssertEqual( int64Zero.origin, .one)
189+
XCTAssertEqual( uIntZero.origin, .one)
190+
XCTAssertEqual( uInt8Zero.origin, .one)
191+
XCTAssertEqual( uInt16Zero.origin, .one)
192+
XCTAssertEqual( uInt32Zero.origin, .one)
193+
XCTAssertEqual( uInt64Zero.origin, .one)
194+
XCTAssertEqual( cgRectZero.origin, .one)
195+
196+
XCTAssertEqual(decimalZero.size, .one)
197+
XCTAssertEqual( intZero.size, .one)
198+
XCTAssertEqual( int8Zero.size, .one)
199+
XCTAssertEqual( int16Zero.size, .one)
200+
XCTAssertEqual( int32Zero.size, .one)
201+
XCTAssertEqual( int64Zero.size, .one)
202+
XCTAssertEqual( uIntZero.size, .one)
203+
XCTAssertEqual( uInt8Zero.size, .one)
204+
XCTAssertEqual( uInt16Zero.size, .one)
205+
XCTAssertEqual( uInt32Zero.size, .one)
206+
XCTAssertEqual( uInt64Zero.size, .one)
207+
XCTAssertEqual( cgRectZero.size, .one)
208+
209+
210+
XCTAssertEqual(decimalZero.origin.x, 1)
211+
XCTAssertEqual( intZero.origin.x, 1)
212+
XCTAssertEqual( int8Zero.origin.x, 1)
213+
XCTAssertEqual( int16Zero.origin.x, 1)
214+
XCTAssertEqual( int32Zero.origin.x, 1)
215+
XCTAssertEqual( int64Zero.origin.x, 1)
216+
XCTAssertEqual( uIntZero.origin.x, 1)
217+
XCTAssertEqual( uInt8Zero.origin.x, 1)
218+
XCTAssertEqual( uInt16Zero.origin.x, 1)
219+
XCTAssertEqual( uInt32Zero.origin.x, 1)
220+
XCTAssertEqual( uInt64Zero.origin.x, 1)
221+
XCTAssertEqual( cgRectZero.origin.x, 1)
222+
223+
XCTAssertEqual(decimalZero.origin.y, 1)
224+
XCTAssertEqual( intZero.origin.y, 1)
225+
XCTAssertEqual( int8Zero.origin.y, 1)
226+
XCTAssertEqual( int16Zero.origin.y, 1)
227+
XCTAssertEqual( int32Zero.origin.y, 1)
228+
XCTAssertEqual( int64Zero.origin.y, 1)
229+
XCTAssertEqual( uIntZero.origin.y, 1)
230+
XCTAssertEqual( uInt8Zero.origin.y, 1)
231+
XCTAssertEqual( uInt16Zero.origin.y, 1)
232+
XCTAssertEqual( uInt32Zero.origin.y, 1)
233+
XCTAssertEqual( uInt64Zero.origin.y, 1)
234+
XCTAssertEqual( cgRectZero.origin.y, 1)
235+
236+
XCTAssertEqual(decimalZero.origin.measurementX, 1)
237+
XCTAssertEqual( intZero.origin.measurementX, 1)
238+
XCTAssertEqual( int8Zero.origin.measurementX, 1)
239+
XCTAssertEqual( int16Zero.origin.measurementX, 1)
240+
XCTAssertEqual( int32Zero.origin.measurementX, 1)
241+
XCTAssertEqual( int64Zero.origin.measurementX, 1)
242+
XCTAssertEqual( uIntZero.origin.measurementX, 1)
243+
XCTAssertEqual( uInt8Zero.origin.measurementX, 1)
244+
XCTAssertEqual( uInt16Zero.origin.measurementX, 1)
245+
XCTAssertEqual( uInt32Zero.origin.measurementX, 1)
246+
XCTAssertEqual( uInt64Zero.origin.measurementX, 1)
247+
XCTAssertEqual( cgRectZero.origin.measurementX, 1)
248+
249+
XCTAssertEqual(decimalZero.origin.measurementY, 1)
250+
XCTAssertEqual( intZero.origin.measurementY, 1)
251+
XCTAssertEqual( int8Zero.origin.measurementY, 1)
252+
XCTAssertEqual( int16Zero.origin.measurementY, 1)
253+
XCTAssertEqual( int32Zero.origin.measurementY, 1)
254+
XCTAssertEqual( int64Zero.origin.measurementY, 1)
255+
XCTAssertEqual( uIntZero.origin.measurementY, 1)
256+
XCTAssertEqual( uInt8Zero.origin.measurementY, 1)
257+
XCTAssertEqual( uInt16Zero.origin.measurementY, 1)
258+
XCTAssertEqual( uInt32Zero.origin.measurementY, 1)
259+
XCTAssertEqual( uInt64Zero.origin.measurementY, 1)
260+
XCTAssertEqual( cgRectZero.origin.measurementY, 1)
261+
262+
263+
XCTAssertEqual(decimalZero.size.width, 1)
264+
XCTAssertEqual( intZero.size.width, 1)
265+
XCTAssertEqual( int8Zero.size.width, 1)
266+
XCTAssertEqual( int16Zero.size.width, 1)
267+
XCTAssertEqual( int32Zero.size.width, 1)
268+
XCTAssertEqual( int64Zero.size.width, 1)
269+
XCTAssertEqual( uIntZero.size.width, 1)
270+
XCTAssertEqual( uInt8Zero.size.width, 1)
271+
XCTAssertEqual( uInt16Zero.size.width, 1)
272+
XCTAssertEqual( uInt32Zero.size.width, 1)
273+
XCTAssertEqual( uInt64Zero.size.width, 1)
274+
XCTAssertEqual( cgRectZero.size.width, 1)
275+
276+
XCTAssertEqual(decimalZero.size.height, 1)
277+
XCTAssertEqual( intZero.size.height, 1)
278+
XCTAssertEqual( int8Zero.size.height, 1)
279+
XCTAssertEqual( int16Zero.size.height, 1)
280+
XCTAssertEqual( int32Zero.size.height, 1)
281+
XCTAssertEqual( int64Zero.size.height, 1)
282+
XCTAssertEqual( uIntZero.size.height, 1)
283+
XCTAssertEqual( uInt8Zero.size.height, 1)
284+
XCTAssertEqual( uInt16Zero.size.height, 1)
285+
XCTAssertEqual( uInt32Zero.size.height, 1)
286+
XCTAssertEqual( uInt64Zero.size.height, 1)
287+
XCTAssertEqual( cgRectZero.size.height, 1)
288+
289+
XCTAssertEqual(decimalZero.size.measurementX, 1)
290+
XCTAssertEqual( intZero.size.measurementX, 1)
291+
XCTAssertEqual( int8Zero.size.measurementX, 1)
292+
XCTAssertEqual( int16Zero.size.measurementX, 1)
293+
XCTAssertEqual( int32Zero.size.measurementX, 1)
294+
XCTAssertEqual( int64Zero.size.measurementX, 1)
295+
XCTAssertEqual( uIntZero.size.measurementX, 1)
296+
XCTAssertEqual( uInt8Zero.size.measurementX, 1)
297+
XCTAssertEqual( uInt16Zero.size.measurementX, 1)
298+
XCTAssertEqual( uInt32Zero.size.measurementX, 1)
299+
XCTAssertEqual( uInt64Zero.size.measurementX, 1)
300+
XCTAssertEqual( cgRectZero.size.measurementX, 1)
301+
302+
XCTAssertEqual(decimalZero.size.measurementY, 1)
303+
XCTAssertEqual( intZero.size.measurementY, 1)
304+
XCTAssertEqual( int8Zero.size.measurementY, 1)
305+
XCTAssertEqual( int16Zero.size.measurementY, 1)
306+
XCTAssertEqual( int32Zero.size.measurementY, 1)
307+
XCTAssertEqual( int64Zero.size.measurementY, 1)
308+
XCTAssertEqual( uIntZero.size.measurementY, 1)
309+
XCTAssertEqual( uInt8Zero.size.measurementY, 1)
310+
XCTAssertEqual( uInt16Zero.size.measurementY, 1)
311+
XCTAssertEqual( uInt32Zero.size.measurementY, 1)
312+
XCTAssertEqual( uInt64Zero.size.measurementY, 1)
313+
XCTAssertEqual( cgRectZero.size.measurementY, 1)
314+
}
315+
316+
317+
static let allTests = [
318+
("test_zero", test_zero),
319+
("test_one", test_one),
320+
]
321+
}

Tests/RectangleToolsTests/XCTestManifests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public func allTests() -> [XCTestCaseEntry] {
2020
testCase(FourSidedTests.allTests),
2121
testCase(Rectangle_Edgewise_Init_Tests.allTests),
2222
testCase(Rectangle_Combination_Tests.allTests),
23+
testCase(DualTwoDimensionalTests.allTests),
2324
]
2425
}
2526
#endif

0 commit comments

Comments
 (0)