begin testing

-- initial timeline
frame_count: 24
0 track(s)

-> DP_MSG_UNDO_POINT ok - 0 error(s)
-> DP_MSG_TRACK_ORDER ok - 0 error(s)

-- ordering empty tracks does nothing
frame_count: 24
0 track(s)

-> DP_MSG_UNDO_POINT ok - 0 error(s)
-> DP_MSG_TRACK_ORDER ok - 0 error(s)

-- ordering empty tracks with invalid ids does nothing
frame_count: 24
0 track(s)

-> DP_MSG_UNDO_POINT ok - 0 error(s)
-> DP_MSG_TRACK_CREATE ok - 0 error(s)
-> DP_MSG_TRACK_CREATE ok - 0 error(s)
-> DP_MSG_TRACK_CREATE ok - 0 error(s)
-> DP_MSG_TRACK_CREATE ok - 0 error(s)
-> DP_MSG_TRACK_CREATE ok - 0 error(s)

-- create tracks
frame_count: 24
5 track(s)
    [0] 500 "Track 5" 0 key frame(s):
    [1] 400 "Track 4" 0 key frame(s):
    [2] 300 "Track 3" 0 key frame(s):
    [3] 200 "Track 2" 0 key frame(s):
    [4] 100 "Track 1" 0 key frame(s):

-> DP_MSG_UNDO_POINT ok - 0 error(s)
-> DP_MSG_TRACK_ORDER ok - 0 error(s)

-- order tracks the other way round
frame_count: 24
5 track(s)
    [0] 100 "Track 1" 0 key frame(s):
    [1] 200 "Track 2" 0 key frame(s):
    [2] 300 "Track 3" 0 key frame(s):
    [3] 400 "Track 4" 0 key frame(s):
    [4] 500 "Track 5" 0 key frame(s):

-> DP_MSG_UNDO_POINT ok - 0 error(s)
-> DP_MSG_TRACK_ORDER ok - 0 error(s)

-- order tracks interleaved
frame_count: 24
5 track(s)
    [0] 100 "Track 1" 0 key frame(s):
    [1] 500 "Track 5" 0 key frame(s):
    [2] 400 "Track 4" 0 key frame(s):
    [3] 300 "Track 3" 0 key frame(s):
    [4] 200 "Track 2" 0 key frame(s):

-> DP_MSG_UNDO_POINT ok - 0 error(s)
-> DP_MSG_TRACK_ORDER ok - 0 error(s)

-- ordering tracks with no arguments changes nothing
frame_count: 24
5 track(s)
    [0] 100 "Track 1" 0 key frame(s):
    [1] 500 "Track 5" 0 key frame(s):
    [2] 400 "Track 4" 0 key frame(s):
    [3] 300 "Track 3" 0 key frame(s):
    [4] 200 "Track 2" 0 key frame(s):

-> DP_MSG_UNDO_POINT ok - 0 error(s)
-> DP_MSG_TRACK_ORDER ok - 0 error(s)

-- duplicates and missing elements ignored
frame_count: 24
5 track(s)
    [0] 100 "Track 1" 0 key frame(s):
    [1] 200 "Track 2" 0 key frame(s):
    [2] 300 "Track 3" 0 key frame(s):
    [3] 400 "Track 4" 0 key frame(s):
    [4] 500 "Track 5" 0 key frame(s):

-> DP_MSG_UNDO_POINT ok - 0 error(s)
-> DP_MSG_TRACK_ORDER ok - 0 error(s)

-- missing elements are appended in the order they appear
frame_count: 24
5 track(s)
    [0] 500 "Track 5" 0 key frame(s):
    [1] 300 "Track 3" 0 key frame(s):
    [2] 100 "Track 1" 0 key frame(s):
    [3] 200 "Track 2" 0 key frame(s):
    [4] 400 "Track 4" 0 key frame(s):

done testing
