@@ -47,22 +47,22 @@ enum Event: DSLCompatible, Equatable {
47
47
case e11( value: String )
48
48
case e12( value: String )
49
49
50
- var value : String {
51
- switch self {
52
- case . e1( let value) : return value
53
- case . e2( let value) : return value
54
- case . e3( let value) : return value
55
- case . e4( let value) : return value
56
- case . e5( let value) : return value
57
- case . e6( let value) : return value
58
- case . e7( let value) : return value
59
- case . e8( let value) : return value
60
- case . e9( let value) : return value
61
- case . e10( let value) : return value
62
- case . e11( let value) : return value
63
- case . e12( let value) : return value
64
- }
65
- }
50
+ // var value: String {
51
+ // switch self {
52
+ // case .e1(let value): return value
53
+ // case .e2(let value): return value
54
+ // case .e3(let value): return value
55
+ // case .e4(let value): return value
56
+ // case .e5(let value): return value
57
+ // case .e6(let value): return value
58
+ // case .e7(let value): return value
59
+ // case .e8(let value): return value
60
+ // case .e9(let value): return value
61
+ // case .e10(let value): return value
62
+ // case .e11(let value): return value
63
+ // case .e12(let value): return value
64
+ // }
65
+ // }
66
66
}
67
67
68
68
enum Output : DSLCompatible , Equatable {
@@ -71,46 +71,45 @@ enum Output: DSLCompatible, Equatable {
71
71
case o3( value: String )
72
72
}
73
73
74
- let stateMachine = StateMachine < State , Event , Output > ( initial: State . s1 ( value: " s1 " ) ) {
75
- When ( states: OneOf {
76
- State . s1 ( value: )
77
- State . s2 ( value: )
78
- State . s3 ( value: )
79
- State . s4 ( value: )
80
- State . s5 ( value: )
81
- State . s6 ( value: )
82
- State . s7 ( value: )
83
- State . s8 ( value: )
84
- State . s9 ( value: )
85
- State . s10 ( value: )
86
- State . s11 ( value: )
87
- State . s12 ( value: )
88
- } ) { state in
89
- Execute ( output: Output . o1 ( value: state. value) )
90
- } transitions: { state in
91
- On ( events: OneOf {
92
- Event . e1 ( value: )
93
- Event . e2 ( value: )
94
- Event . e3 ( value: )
95
- Event . e4 ( value: )
96
- Event . e5 ( value: )
97
- Event . e6 ( value: )
98
- Event . e7 ( value: )
99
- Event . e8 ( value: )
100
- Event . e9 ( value: )
101
- Event . e10 ( value: )
102
- Event . e11 ( value: )
103
- Event . e12 ( value: )
104
- } ) { _ in
105
- Guard ( predicate: !state. value. isEmpty)
106
- } transition: { event in
107
- Transition ( to: State . s2 ( value: state. value + event. value) )
108
- }
109
- }
110
- }
111
-
112
74
final class AsyncStateMachineSequenceTests : XCTestCase {
113
75
// func testPerformance() async {
76
+ // let stateMachine = StateMachine<State, Event, Output>(initial: State.s1(value: "s1")) {
77
+ // When(states: OneOf {
78
+ // State.s1(value:)
79
+ // State.s2(value:)
80
+ // State.s3(value:)
81
+ // State.s4(value:)
82
+ // State.s5(value:)
83
+ // State.s6(value:)
84
+ // State.s7(value:)
85
+ // State.s8(value:)
86
+ // State.s9(value:)
87
+ // State.s10(value:)
88
+ // State.s11(value:)
89
+ // State.s12(value:)
90
+ // }) { state in
91
+ // Execute(output: Output.o1(value: state.value))
92
+ // } transitions: { state in
93
+ // On(events: OneOf {
94
+ // Event.e1(value:)
95
+ // Event.e2(value:)
96
+ // Event.e3(value:)
97
+ // Event.e4(value:)
98
+ // Event.e5(value:)
99
+ // Event.e6(value:)
100
+ // Event.e7(value:)
101
+ // Event.e8(value:)
102
+ // Event.e9(value:)
103
+ // Event.e10(value:)
104
+ // Event.e11(value:)
105
+ // Event.e12(value:)
106
+ // }) { _ in
107
+ // Guard(predicate: !state.value.isEmpty)
108
+ // } transition: { event in
109
+ // Transition(to: State.s2(value: state.value + event.value))
110
+ // }
111
+ // }
112
+ // }
114
113
// measure {
115
114
// let exp = expectation(description: "task")
116
115
// let task = Task {
@@ -141,23 +140,11 @@ final class AsyncStateMachineSequenceTests: XCTestCase {
141
140
} transition: { eventValue in
142
141
Transition ( to: State . s2 ( value: " new value " ) )
143
142
}
144
-
145
- On ( event: Event . e2 ( value: ) ) { eventValue in
146
- Guard ( predicate: !stateValue. isEmpty && !eventValue. isEmpty)
147
- } transition: { eventValue in
148
- Transition ( to: State . s3 ( value: eventValue) )
149
- }
150
143
}
151
144
152
145
When ( state: State . s2 ( value: ) ) { stateValue in
153
146
Execute ( output: Output . o2 ( value: stateValue) )
154
147
} transitions: { stateValue in
155
- On ( event: Event . e3 ( value: ) ) { eventValue in
156
- Guard ( predicate: stateValue. isEmpty || eventValue. isEmpty)
157
- } transition: { eventValue in
158
- Transition ( to: State . s4 ( value: eventValue) )
159
- }
160
-
161
148
On ( event: Event . e4 ( value: ) ) { eventValue in
162
149
Guard ( predicate: !stateValue. isEmpty && !eventValue. isEmpty)
163
150
} transition: { eventValue in
@@ -171,12 +158,6 @@ final class AsyncStateMachineSequenceTests: XCTestCase {
171
158
} ) { state in
172
159
Execute ( output: Output . o3 ( value: state. value) )
173
160
} transitions: { state in
174
- On ( event: Event . e5 ( value: ) ) { eventValue in
175
- Guard ( predicate: state. value. isEmpty || eventValue. isEmpty)
176
- } transition: { eventValue in
177
- Transition ( to: State . s6 ( value: eventValue) )
178
- }
179
-
180
161
On ( event: Event . e6 ( value: ) ) { eventValue in
181
162
Guard ( predicate: !state. value. isEmpty && !eventValue. isEmpty)
182
163
} transition: { eventValue in
0 commit comments