Skip to content

Commit 3c13d7b

Browse files
authored
Remove XCTest from custom-set (#873)
* Remove XCTest from custom-set and modify the generator. * Review fixes
1 parent 09b635c commit 3c13d7b

File tree

7 files changed

+242
-257
lines changed

7 files changed

+242
-257
lines changed

exercises/practice/custom-set/.meta/config.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
"lyuha",
1010
"robtimp",
1111
"samkrishna",
12-
"ThomasHaz"
12+
"ThomasHaz",
13+
"Sencudra"
1314
],
1415
"files": {
1516
"solution": [
Lines changed: 66 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,73 @@
1-
import XCTest
2-
@testable import {{exercise|camelCase}}
3-
class {{exercise|camelCase}}Tests: XCTestCase {
4-
let runAll = Bool(ProcessInfo.processInfo.environment["RUNALL", default: "false"]) ?? false
5-
let emptyArray = [Int]()
1+
import Foundation
2+
import Testing
63

4+
@testable import {{ exercise|camelCase }}
5+
6+
let RUNALL = Bool(ProcessInfo.processInfo.environment["RUNALL", default: "false"]) ?? false
7+
8+
@Suite
9+
struct {{ exercise|camelCase }}Tests {
10+
711
{% outer: for case in cases %}
812
{%- for subCases in case.cases %}
9-
{%- if forloop.outer.first and forloop.first %}
10-
func test{{subCases.description |camelCase }}() {
11-
{%- else %}
12-
func test{{subCases.description |camelCase }}() throws {
13-
try XCTSkipIf(true && !runAll) // change true to false to run this test
14-
{%- endif %}
15-
{%- if subCases.input | length == 2 and not subCases.input.element %}
16-
{%- if subCases.input.set1 %}
17-
let set1 = {{exercise|camelCase}}({{subCases.input.set1}})
18-
{%- else %}
19-
let set1 = {{exercise|camelCase}}(emptyArray)
20-
{%- endif %}
21-
{%- if subCases.input.set2 %}
22-
let set2 = {{exercise|camelCase}}({{subCases.input.set2}})
23-
{%- else %}
24-
let set2 = {{exercise|camelCase}}(emptyArray)
25-
{%- endif %}
26-
{%- else %}
27-
{%- if subCases.input.set and (subCases.property == "empty" or subCases.property == "contains") %}
28-
let customSet = {{exercise|camelCase}}({{subCases.input.set}})
29-
{%- elif subCases.input.set %}
30-
var customSet = {{exercise|camelCase}}({{subCases.input.set}})
31-
{%- elif subCases.property == "empty" or subCases.property == "contains" %}
32-
let customSet = {{exercise|camelCase}}(emptyArray)
33-
{%- else %}
34-
var customSet = {{exercise|camelCase}}(emptyArray)
35-
{%- endif %}
36-
{%- endif %}
13+
{%- if forloop.outer.first and forloop.first %}
14+
@Test("{{ subCases.description }}")
15+
{% else -%}
16+
@Test("{{ subCases.description }}", .enabled(if: RUNALL))
17+
{% endif -%}
18+
func test{{ subCases.description|camelCase }}() {
19+
{%- if subCases.input|contains:"set" %}
20+
{%- if (subCases.property == "empty" or subCases.property == "contains") %}
21+
let
22+
{%- else %}
23+
var
24+
{%- endif %}
25+
customSet = {{ exercise|camelCase }}(
26+
{%- if subCases.input.set -%}
27+
{{ subCases.input.set }}
28+
{%- else -%}
29+
[Int]()
30+
{%- endif -%}
31+
)
32+
{%- elif subCases.input|contains:"set1" and subCases.input|contains:"set2" %}
33+
let set1 = {{ exercise|camelCase }}(
34+
{%- if subCases.input.set1 -%}
35+
{{ subCases.input.set1 }}
36+
{%- else -%}
37+
[Int]()
38+
{%- endif -%}
39+
)
40+
let set2 = {{ exercise|camelCase }}(
41+
{%- if subCases.input.set2 -%}
42+
{{ subCases.input.set2 }}
43+
{%- else -%}
44+
[Int]()
45+
{%- endif -%}
46+
)
47+
{%- endif %}
3748

38-
{%- if subCases.property == "empty" %}
39-
{%- if subCases.expected %}
40-
XCTAssertTrue(customSet.isEmpty)
41-
{%- else %}
42-
XCTAssertFalse(customSet.isEmpty)
43-
{%- endif %}
44-
{%- elif subCases.property == "contains"%}
45-
{%- if subCases.expected %}
46-
XCTAssertTrue(customSet.contains({{subCases.input.element}}))
47-
{%- else %}
48-
XCTAssertFalse(customSet.contains({{subCases.input.element}}))
49-
{%- endif %}
50-
{%- elif subCases.property == "subset" %}
51-
{%- if subCases.expected %}
52-
XCTAssertTrue(set1.isSubset(of: set2))
53-
{%- else %}
54-
XCTAssertFalse(set1.isSubset(of: set2))
55-
{%- endif %}
56-
{%- elif subCases.property == "disjoint" %}
57-
{%- if subCases.expected %}
58-
XCTAssertTrue(set1.isDisjoint(with: set2))
59-
{%- else %}
60-
XCTAssertFalse(set1.isDisjoint(with:set2))
61-
{%- endif %}
62-
{%- elif subCases.property == "equal" %}
63-
{%- if subCases.expected %}
64-
XCTAssertEqual(set1, set2)
65-
{%- else %}
66-
XCTAssertNotEqual(set1, set2)
67-
{%- endif %}
68-
{%- elif subCases.property == "add"%}
69-
customSet.add({{subCases.input.element}})
70-
XCTAssertEqual(customSet, {{exercise|camelCase}}({{subCases.expected}}))
71-
{%- elif subCases.property == "intersection" %}
72-
XCTAssertEqual(set1.intersection(set2), {{exercise|camelCase}}({{subCases.expected}}))
73-
{%- elif subCases.property == "union" %}
74-
XCTAssertEqual(set1.union(set2), {{exercise|camelCase}}({{subCases.expected}}))
75-
{%- elif subCases.property == "difference" %}
76-
XCTAssertEqual(set1.difference(set2), {{exercise|camelCase}}({{subCases.expected}}))
77-
{%- endif %}
78-
}
49+
{%- if subCases.property == "empty" %}
50+
#expect({%- if not subCases.expected -%}!{%- endif -%}customSet.isEmpty)
51+
{%- elif subCases.property == "contains" %}
52+
#expect({%- if not subCases.expected -%}!{%- endif -%}customSet.contains({{ subCases.input.element }}))
53+
{%- elif subCases.property == "subset" %}
54+
#expect({%- if not subCases.expected -%}!{%- endif -%}set1.isSubset(of: set2))
55+
{%- elif subCases.property == "disjoint" %}
56+
#expect({%- if not subCases.expected -%}!{%- endif -%}set1.isDisjoint(with: set2))
57+
{%- elif subCases.property == "equal" %}
58+
#expect({%- if not subCases.expected -%}!{%- endif -%}(set1 == set2))
59+
{%- elif subCases.property == "add"%}
60+
customSet.add({{subCases.input.element}})
61+
#expect(customSet == {{ exercise|camelCase }}({{ subCases.expected }}))
62+
{%- elif subCases.property == "intersection" %}
63+
#expect(set1.intersection(set2) == {{ exercise|camelCase }}({{ subCases.expected }}))
64+
{%- elif subCases.property == "union" %}
65+
#expect(set1.union(set2) == {{ exercise|camelCase }}({{ subCases.expected }}))
66+
{%- elif subCases.property == "difference" %}
67+
#expect(set1.difference(set2) == {{ exercise|camelCase }}({{ subCases.expected }}))
68+
{%- endif %}
69+
}
7970
{% endfor -%}
8071
{% endfor -%}
72+
8173
}

exercises/practice/custom-set/Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// swift-tools-version:5.3
1+
// swift-tools-version:6.0
22

33
import PackageDescription
44

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1+
12
// Write your code for the 'Custom-Set' exercise in this file.

0 commit comments

Comments
 (0)