Skip to content

Commit 7b711ae

Browse files
committed
Take the ResizeArray helper into use in even more tests
1 parent 006c56a commit 7b711ae

4 files changed

Lines changed: 63 additions & 64 deletions

File tree

tests/Rocksmith2014.XML.Processing.Tests/InstrumentalChecker/MiscTests.fs

Lines changed: 41 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ let eventTests =
6969
let handshapeTests =
7070
testList "Arrangement Checker (Handshapes)" [
7171
testCase "Detects fingering that does not match anchor position" <| fun _ ->
72-
let hs = ResizeArray(seq { HandShape(0s, 1000, 1500) })
73-
let anchors = ResizeArray(seq { Anchor(2y, 500) })
72+
let hs = ![ HandShape(0s, 1000, 1500) ]
73+
let anchors = ![ Anchor(2y, 500) ]
7474
let level = Level(HandShapes = hs, Anchors = anchors)
7575

7676
let results = checkHandshapes testArr level
@@ -79,8 +79,8 @@ let handshapeTests =
7979
Expect.equal results.Head.IssueType FingeringAnchorMismatch "Correct issue type"
8080

8181
testCase "Logic that checks if fingering does not match anchor position ignores fingerings using thumb" <| fun _ ->
82-
let hs = ResizeArray(seq { HandShape(6s, 1000, 1500); HandShape(7s, 2000, 2500) })
83-
let anchors = ResizeArray(seq { Anchor(5y, 1000); Anchor(1y, 2000) })
82+
let hs = ![ HandShape(6s, 1000, 1500); HandShape(7s, 2000, 2500) ]
83+
let anchors = ![ Anchor(5y, 1000); Anchor(1y, 2000) ]
8484
let level = Level(HandShapes = hs, Anchors = anchors)
8585

8686
let results = checkHandshapes testArr level
@@ -92,8 +92,8 @@ let handshapeTests =
9292
let anchorTests =
9393
testList "Arrangement Checker (Anchors)" [
9494
testCase "Detects anchor inside handshape" <| fun _ ->
95-
let anchors = ResizeArray(seq { Anchor(1y, 200) })
96-
let handShapes = ResizeArray(seq { HandShape(StartTime = 100, EndTime = 400) })
95+
let anchors = ![ Anchor(1y, 200) ]
96+
let handShapes = ![ HandShape(StartTime = 100, EndTime = 400) ]
9797
let level = Level(HandShapes = handShapes, Anchors = anchors)
9898

9999
let results = checkAnchors testArr level
@@ -102,17 +102,17 @@ let anchorTests =
102102
Expect.equal results.Head.IssueType AnchorInsideHandShape "Correct issue type"
103103

104104
testCase "No false positive for anchor at the start of handshape" <| fun _ ->
105-
let anchors = ResizeArray(seq { Anchor(1y, 100) })
106-
let handShapes = ResizeArray(seq { HandShape(StartTime = 100, EndTime = 400) })
105+
let anchors = ![ Anchor(1y, 100) ]
106+
let handShapes = ![ HandShape(StartTime = 100, EndTime = 400) ]
107107
let level = Level(HandShapes = handShapes, Anchors = anchors)
108108

109109
let results = checkAnchors testArr level
110110

111111
Expect.isEmpty results "An issue was found in check results"
112112

113113
testCase "Detects anchor inside handshape at section boundary" <| fun _ ->
114-
let anchors = ResizeArray(seq { Anchor(1y, 8000) })
115-
let handShapes = ResizeArray(seq { HandShape(StartTime = 7000, EndTime = 9000) })
114+
let anchors = ![ Anchor(1y, 8000) ]
115+
let handShapes = ![ HandShape(StartTime = 7000, EndTime = 9000) ]
116116
let level = Level(HandShapes = handShapes, Anchors = anchors)
117117

118118
let results = checkAnchors testArr level
@@ -121,17 +121,17 @@ let anchorTests =
121121
Expect.equal results.Head.IssueType AnchorInsideHandShapeAtPhraseBoundary "Correct issue type"
122122

123123
testCase "Ignores anchors on phrases that will be moved (handshape check)" <| fun _ ->
124-
let anchors = ResizeArray(seq { Anchor(1y, 6500) })
125-
let handShapes = ResizeArray(seq { HandShape(StartTime = 6000, EndTime = 6550) })
124+
let anchors = ![ Anchor(1y, 6500) ]
125+
let handShapes = ![ HandShape(StartTime = 6000, EndTime = 6550) ]
126126
let level = Level(HandShapes = handShapes, Anchors = anchors)
127127

128128
let results = checkAnchors testArr level
129129

130130
Expect.isEmpty results "An issue was found in check results"
131131

132132
testCase "Detects anchor near the end of an unpitched slide" <| fun _ ->
133-
let anchors = ResizeArray(seq { Anchor(1y, 500) })
134-
let notes = ResizeArray(seq { Note(Time = 100, Sustain = 397, SlideUnpitchTo = 5y) })
133+
let anchors = ![ Anchor(1y, 500) ]
134+
let notes = ![ Note(Time = 100, Sustain = 397, SlideUnpitchTo = 5y) ]
135135
let level = Level(Notes = notes, Anchors = anchors)
136136

137137
let results = checkAnchors testArr level
@@ -140,8 +140,8 @@ let anchorTests =
140140
Expect.equal results.Head.IssueType AnchorCloseToUnpitchedSlide "Correct issue type"
141141

142142
testCase "Ignores anchors on phrases that will be moved (unpitched slide check)" <| fun _ ->
143-
let anchors = ResizeArray(seq { Anchor(1y, 6500) })
144-
let notes = ResizeArray(seq { Note(Time = 6200, Sustain = 300, SlideUnpitchTo = 5y) })
143+
let anchors = ![ Anchor(1y, 6500) ]
144+
let notes = ![ Note(Time = 6200, Sustain = 300, SlideUnpitchTo = 5y) ]
145145
let level = Level(Notes = notes, Anchors = anchors)
146146

147147
let results = checkAnchors testArr level
@@ -153,11 +153,11 @@ let anchorTests =
153153
let phraseTests =
154154
testList "Arrangement Checker (Phrases)" [
155155
testCase "Detects non-empty first phrase" <| fun _ ->
156-
let sections = ResizeArray(seq { Section("riff", 1500, 1s); Section("noguitar", 2000, 2s) })
157-
let phrases = ResizeArray(seq { Phrase("COUNT", 0uy, PhraseMask.None); Phrase("riff", 0uy, PhraseMask.None); Phrase("END", 0uy, PhraseMask.None) })
158-
let phraseIterations = ResizeArray(seq { PhraseIteration(1000, 0); PhraseIteration(1500, 1); PhraseIteration(2000, 2) })
159-
let notes = ResizeArray(seq { Note(Time = 1100) })
160-
let levels = ResizeArray(seq { Level(0y, Notes = notes) })
156+
let sections = ![ Section("riff", 1500, 1s); Section("noguitar", 2000, 2s) ]
157+
let phrases = ![ Phrase("COUNT", 0uy, PhraseMask.None); Phrase("riff", 0uy, PhraseMask.None); Phrase("END", 0uy, PhraseMask.None) ]
158+
let phraseIterations = ![ PhraseIteration(1000, 0); PhraseIteration(1500, 1); PhraseIteration(2000, 2) ]
159+
let notes = ![ Note(Time = 1100) ]
160+
let levels = ![ Level(0y, Notes = notes) ]
161161
let phraseTestArr = InstrumentalArrangement(Sections = sections, Phrases = phrases, PhraseIterations = phraseIterations, Levels = levels)
162162

163163
let results = checkPhrases phraseTestArr
@@ -166,10 +166,10 @@ let phraseTests =
166166
Expect.equal results.Head.IssueType FirstPhraseNotEmpty "Correct issue type"
167167

168168
testCase "Detects missing END phrase" <| fun _ ->
169-
let phrases = ResizeArray(seq { Phrase("COUNT", 0uy, PhraseMask.None); Phrase("riff", 0uy, PhraseMask.None) })
170-
let phraseIterations = ResizeArray(seq { PhraseIteration(1000, 0); PhraseIteration(1500, 1) })
171-
let notes = ResizeArray(seq { Note(Time = 1600) })
172-
let levels = ResizeArray(seq { Level(0y, Notes = notes) })
169+
let phrases = ![ Phrase("COUNT", 0uy, PhraseMask.None); Phrase("riff", 0uy, PhraseMask.None) ]
170+
let phraseIterations = ![ PhraseIteration(1000, 0); PhraseIteration(1500, 1) ]
171+
let notes = ![ Note(Time = 1600) ]
172+
let levels = ![ Level(0y, Notes = notes) ]
173173
let noEndTestArr = InstrumentalArrangement(Sections = sections, Phrases = phrases, PhraseIterations = phraseIterations, Levels = levels)
174174

175175
let results = checkPhrases noEndTestArr
@@ -178,21 +178,20 @@ let phraseTests =
178178
Expect.equal results.Head.IssueType NoEndPhrase "Correct issue type"
179179

180180
testCase "Detects more than 100 phrases" <| fun _ ->
181-
let phrases =
182-
ResizeArray(seq {
183-
Phrase("COUNT", 0uy, PhraseMask.None)
184-
Phrase("riff", 0uy, PhraseMask.None)
185-
Phrase("END", 0uy, PhraseMask.None) })
186-
187-
let phraseIterations =
188-
seq {
189-
yield PhraseIteration(1000, 0)
190-
for i in 1..99 -> PhraseIteration(1000 + i * 100, 1)
191-
yield PhraseIteration(9000, 2)
192-
} |> ResizeArray
193-
194-
let notes = ResizeArray(seq { Note(Time = 1600) })
195-
let levels = ResizeArray(seq { Level(0y, Notes = notes) })
181+
let phrases = ![
182+
Phrase("COUNT", 0uy, PhraseMask.None)
183+
Phrase("riff", 0uy, PhraseMask.None)
184+
Phrase("END", 0uy, PhraseMask.None)
185+
]
186+
187+
let phraseIterations = ![
188+
yield PhraseIteration(1000, 0)
189+
for i in 1..99 -> PhraseIteration(1000 + i * 100, 1)
190+
yield PhraseIteration(9000, 2)
191+
]
192+
193+
let notes = ![ Note(Time = 1600) ]
194+
let levels = ![ Level(0y, Notes = notes) ]
196195
let noEndTestArr = InstrumentalArrangement(Sections = sections, Phrases = phrases, PhraseIterations = phraseIterations, Levels = levels)
197196

198197
let results = checkPhrases noEndTestArr
@@ -205,8 +204,8 @@ let phraseTests =
205204
let generalTests =
206205
testList "Arrangement Checker (General)" [
207206
testCase "Does not throw exceptions when checking an arrangement without notes" <| fun _ ->
208-
let phrases = ResizeArray(seq { Phrase("A", 0uy, PhraseMask.None); Phrase("END", 0uy, PhraseMask.None) })
209-
let phraseIterations = ResizeArray(seq { PhraseIteration(500, 0); PhraseIteration(2500, 1) })
207+
let phrases = ![ Phrase("A", 0uy, PhraseMask.None); Phrase("END", 0uy, PhraseMask.None) ]
208+
let phraseIterations = ![ PhraseIteration(500, 0); PhraseIteration(2500, 1) ]
210209
let arr = InstrumentalArrangement(Phrases = phrases, PhraseIterations = phraseIterations)
211210

212211
let issues = ArrangementChecker.checkInstrumental arr

tests/Rocksmith2014.XML.Processing.Tests/ShowLightsCheckerTests.fs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,21 @@ open Rocksmith2014.XML.Processing
88
let showLightsTests =
99
testList "Arrangement Checker (Show Lights)" [
1010
testCase "Detects missing fog note" <| fun _ ->
11-
let sl = ResizeArray(seq { ShowLight(100, ShowLight.BeamMin) })
11+
let sl = ![ ShowLight(100, ShowLight.BeamMin) ]
1212

1313
let result = ShowLightsChecker.check sl
1414

1515
Expect.isSome result "Checker returned an issue"
1616

1717
testCase "Detects missing beam note" <| fun _ ->
18-
let sl = ResizeArray(seq { ShowLight(100, ShowLight.FogMin) })
18+
let sl = ![ ShowLight(100, ShowLight.FogMin) ]
1919

2020
let result = ShowLightsChecker.check sl
2121

2222
Expect.isSome result "Checker returned an issue"
2323

2424
testCase "Returns None for valid show lights" <| fun _ ->
25-
let sl = ResizeArray(seq { ShowLight(100, ShowLight.FogMin); ShowLight(100, ShowLight.BeamOff) })
25+
let sl = ![ ShowLight(100, ShowLight.FogMin); ShowLight(100, ShowLight.BeamOff) ]
2626

2727
let result = ShowLightsChecker.check sl
2828

tests/Rocksmith2014.XML.Processing.Tests/UtilsTests.fs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,20 @@ let tests =
99
testList "Utility tests" [
1010
testCase "getFirstNoteTime does not fail when there are no phrase iterations" <| fun _ ->
1111
let arr = InstrumentalArrangement()
12-
let notes = ResizeArray(seq { Note(Time = 4000) })
13-
arr.Levels <- ResizeArray(seq { Level(0y); Level(1y, Notes = notes) })
12+
let notes = ![ Note(Time = 4000) ]
13+
arr.Levels <- ![ Level(0y); Level(1y, Notes = notes) ]
1414

1515
let time = Utils.getFirstNoteTime arr
1616

1717
Expect.equal time (Some 4000) "First note time is correct"
1818

1919
testCase "getFirstNoteTime finds first note when there are DD levels" <| fun _ ->
20-
let phrases = ResizeArray(seq { Phrase("default", 0uy, PhraseMask.None); Phrase("riff", 1uy, PhraseMask.None) })
21-
let phraseIterations = ResizeArray(seq { PhraseIteration(0, 0); PhraseIteration(5000, 1) })
20+
let phrases = ![ Phrase("default", 0uy, PhraseMask.None); Phrase("riff", 1uy, PhraseMask.None) ]
21+
let phraseIterations = ![ PhraseIteration(0, 0); PhraseIteration(5000, 1) ]
2222
let arr = InstrumentalArrangement(Phrases = phrases, PhraseIterations = phraseIterations)
23-
let notes = ResizeArray(seq { Note(Time = 5400) })
24-
let chords = ResizeArray(seq { Chord(Time = 5000) })
25-
arr.Levels <- ResizeArray(seq { Level(0y); Level(1y, Notes = notes, Chords = chords) })
23+
let notes = ![ Note(Time = 5400) ]
24+
let chords = ![ Chord(Time = 5000) ]
25+
arr.Levels <- ![ Level(0y); Level(1y, Notes = notes, Chords = chords) ]
2626

2727
let time = Utils.getFirstNoteTime arr
2828

tests/Rocksmith2014.XML.Processing.Tests/VocalsCheckerTests.fs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,64 +15,64 @@ let vocalsTests =
1515
Expect.isEmpty result "Checking completed without issues"
1616

1717
testCase "Detects character not in default font" <| fun _ ->
18-
let vocals = ResizeArray(seq { Vocal(0, 50, "Test+"); Vocal(100, 50, "Nope:あ") })
18+
let vocals = ![ Vocal(0, 50, "Test+"); Vocal(100, 50, "Nope:あ") ]
1919

2020
let result = VocalsChecker.check None vocals
2121

2222
Expect.equal result.Head.IssueType (LyricWithInvalidChar('あ', false)) "Issue type is correct"
2323

2424
testCase "Accepts characters in default font" <| fun _ ->
25-
let vocals = ResizeArray(seq { Vocal(0, 50, "Test+"); Vocal(100, 50, "ÄöÖÅå"); Vocal(200, 50, "àè- +?&#\"") })
25+
let vocals = ![ Vocal(0, 50, "Test+"); Vocal(100, 50, "ÄöÖÅå"); Vocal(200, 50, "àè- +?&#\"") ]
2626

2727
let result = VocalsChecker.check None vocals
2828

2929
Expect.isEmpty result "Issue was created"
3030

3131
testCase "Ignores special characters ('-', '+') when using custom font" <| fun _ ->
32-
let vocals = ResizeArray(seq { Vocal(0, 100, "あ+"); Vocal(50, 50, "あ-"); Vocal(80, 50, "") })
32+
let vocals = ![ Vocal(0, 100, "あ+"); Vocal(50, 50, "あ-"); Vocal(80, 50, "") ]
3333
// Custom font does not define characters - or +
34-
let customFont = GlyphDefinitions(Glyphs = ResizeArray(seq { GlyphDefinition(Symbol = "") }))
34+
let customFont = GlyphDefinitions(Glyphs = ![ GlyphDefinition(Symbol = "") ])
3535

3636
let result = VocalsChecker.check (Some customFont) vocals
3737

3838
Expect.isEmpty result "Issue was created"
3939

4040
testCase "Detects hyphen not used as a special character when not included in custom font" <| fun _ ->
41-
let vocals = ResizeArray(seq { Vocal(0, 100, "あ+"); Vocal(50, 50, "あ--"); Vocal(80, 50, "") })
42-
let customFont = GlyphDefinitions(Glyphs = ResizeArray(seq { GlyphDefinition(Symbol = "") }))
41+
let vocals = ![ Vocal(0, 100, "あ+"); Vocal(50, 50, "あ--"); Vocal(80, 50, "") ]
42+
let customFont = GlyphDefinitions(Glyphs = ![ GlyphDefinition(Symbol = "") ])
4343

4444
let result = VocalsChecker.check (Some customFont) vocals
4545

4646
Expect.equal result.Head.IssueType (LyricWithInvalidChar('-', true)) "Issue type is correct"
4747

4848
testCase "Detects character not in the custom font" <| fun _ ->
49-
let vocals = ResizeArray(seq { Vocal(0, 50, "あ+"); Vocal(100, 50, "") })
50-
let customFont = GlyphDefinitions(Glyphs = ResizeArray(seq { GlyphDefinition(Symbol = "") }))
49+
let vocals = ![ Vocal(0, 50, "あ+"); Vocal(100, 50, "") ]
50+
let customFont = GlyphDefinitions(Glyphs = ![ GlyphDefinition(Symbol = "") ])
5151

5252
let result = VocalsChecker.check (Some customFont) vocals
5353

5454
Expect.equal result.Head.IssueType (LyricWithInvalidChar('不', true)) "Issue type is correct"
5555

5656
testCase "Detects lyric that is too long (ASCII)" <| fun _ ->
5757
let lyric = String.replicate 48 "A"
58-
let vocals = ResizeArray(seq { Vocal(0, 10, "Test+"); Vocal(0, 50, lyric) })
58+
let vocals = ![ Vocal(0, 10, "Test+"); Vocal(0, 50, lyric) ]
5959

6060
let result = VocalsChecker.check None vocals
6161

6262
Expect.equal result.Head.IssueType (LyricTooLong lyric) "Issue type is correct"
6363

6464
testCase "Detects lyric that is too long (non-ASCII)" <| fun _ ->
6565
let lyric = String.replicate 16 "" // 48 bytes in UTF8
66-
let vocals = ResizeArray(seq { Vocal(0, 100, "あ+"); Vocal(0, 50, lyric) })
67-
let customFont = GlyphDefinitions(Glyphs = ResizeArray(seq { GlyphDefinition(Symbol = "") }))
66+
let vocals = ![ Vocal(0, 100, "あ+"); Vocal(0, 50, lyric) ]
67+
let customFont = GlyphDefinitions(Glyphs = ![ GlyphDefinition(Symbol = "") ])
6868

6969
let result = VocalsChecker.check (Some customFont) vocals
7070

7171
Expect.hasLength result 1 "One issue created"
7272
Expect.equal result.Head.IssueType (LyricTooLong lyric) "Issue type is correct"
7373

7474
testCase "Detects lyrics without line breaks" <| fun _ ->
75-
let vocals = ResizeArray(seq { Vocal(0, 50, "Line"); Vocal(0, 100, "Test+") })
75+
let vocals = ![ Vocal(0, 50, "Line"); Vocal(0, 100, "Test+") ]
7676

7777
let result = VocalsChecker.check None vocals
7878

0 commit comments

Comments
 (0)