@@ -47,22 +47,22 @@ enum Event: DSLCompatible, Equatable {
4747 case e11( value: String )
4848 case e12( value: String )
4949
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+ // }
6666}
6767
6868enum Output : DSLCompatible , Equatable {
@@ -71,46 +71,45 @@ enum Output: DSLCompatible, Equatable {
7171 case o3( value: String )
7272}
7373
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-
11274final class AsyncStateMachineSequenceTests : XCTestCase {
11375// 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+ // }
114113// measure {
115114// let exp = expectation(description: "task")
116115// let task = Task {
@@ -141,23 +140,11 @@ final class AsyncStateMachineSequenceTests: XCTestCase {
141140 } transition: { eventValue in
142141 Transition ( to: State . s2 ( value: " new value " ) )
143142 }
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- }
150143 }
151144
152145 When ( state: State . s2 ( value: ) ) { stateValue in
153146 Execute ( output: Output . o2 ( value: stateValue) )
154147 } 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-
161148 On ( event: Event . e4 ( value: ) ) { eventValue in
162149 Guard ( predicate: !stateValue. isEmpty && !eventValue. isEmpty)
163150 } transition: { eventValue in
@@ -171,12 +158,6 @@ final class AsyncStateMachineSequenceTests: XCTestCase {
171158 } ) { state in
172159 Execute ( output: Output . o3 ( value: state. value) )
173160 } 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-
180161 On ( event: Event . e6 ( value: ) ) { eventValue in
181162 Guard ( predicate: !state. value. isEmpty && !eventValue. isEmpty)
182163 } transition: { eventValue in
0 commit comments