github.com/aretext/aretext@v1.3.0/input/engine/serialize_test.go (about) 1 package engine 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestSerialize(t *testing.T) { 11 sm := &StateMachine{ 12 numStates: 3, 13 startState: 1, 14 acceptCmd: map[stateId]CmdId{ 15 0: 2, 16 1: 3, 17 2: 4, 18 }, 19 transitions: map[stateId][]transition{ 20 0: { 21 { 22 eventRange: eventRange{ 23 start: 10, 24 end: 17, 25 }, 26 nextState: 2, 27 captures: map[CmdId]CaptureId{ 28 1: 19, 29 2: 27, 30 }, 31 }, 32 { 33 eventRange: eventRange{ 34 start: 99, 35 end: 104, 36 }, 37 nextState: 0, 38 }, 39 }, 40 41 1: { 42 { 43 eventRange: eventRange{ 44 start: 77, 45 end: 79, 46 }, 47 nextState: 0, 48 }, 49 }, 50 }, 51 } 52 53 data := Serialize(sm) 54 deserialized, err := Deserialize(data) 55 require.NoError(t, err) 56 assert.Equal(t, sm, deserialized) 57 }