diff --git a/zenno/src/lib/course.spec.ts b/zenno/src/lib/course.spec.ts index ed53d03..a3c0772 100644 --- a/zenno/src/lib/course.spec.ts +++ b/zenno/src/lib/course.spec.ts @@ -12,8 +12,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 0, endDist: 50, slope: 0, @@ -68,7 +66,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 6 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 250, endDist: 300, slope: 0, @@ -79,7 +76,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 7 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 300, endDist: 350, slope: 0, @@ -90,7 +86,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 8 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 350, endDist: 400, slope: 0, @@ -101,7 +96,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 9 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 400, endDist: 450, slope: 0, @@ -111,8 +105,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.MidRace, endRate: 10 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 450, endDist: 500, slope: 0, @@ -121,9 +113,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 11, phase: Phase.MidRace, endRate: 11 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 500, endDist: 550, slope: 0, @@ -132,9 +121,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 12, phase: Phase.MidRace, endRate: 12 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 550, endDist: 600, slope: 0, @@ -143,9 +129,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 13, phase: Phase.MidRace, endRate: 13 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 600, endDist: 650, slope: 0, @@ -154,9 +137,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 14, phase: Phase.MidRace, endRate: 14 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 650, endDist: 700, slope: 0, @@ -165,9 +145,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 15, phase: Phase.MidRace, endRate: 15 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 700, endDist: 750, slope: 0, @@ -176,9 +153,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 16, phase: Phase.MidRace, endRate: 16 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 750, endDist: 800, slope: 0, @@ -187,9 +161,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 17, phase: Phase.LateRace, endRate: 17 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 800, endDist: 850, slope: 0, @@ -198,9 +169,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 18, phase: Phase.LateRace, endRate: 18 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 850, endDist: 900, slope: 0, @@ -209,9 +177,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 19, phase: Phase.LateRace, endRate: 19 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 900, endDist: 950, slope: 0, @@ -220,53 +185,38 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 20, phase: Phase.LateRace, endRate: 20 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 950, endDist: 1000, slope: 0, }, { section: 21, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 21 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1000, endDist: 1050, slope: 0, }, { section: 22, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 22 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1050, endDist: 1100, slope: 0, }, { section: 23, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 23 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1100, endDist: 1150, slope: 0, }, { section: 24, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 24 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1150, endDist: 1200, slope: 0, @@ -282,8 +232,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 0, endDist: 25, slope: 1, @@ -293,8 +241,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 25, endDist: 50, slope: 0, @@ -349,7 +295,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 6 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 250, endDist: 300, slope: 0, @@ -360,7 +305,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 7 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 300, endDist: 350, slope: 0, @@ -371,7 +315,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 8 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 350, endDist: 400, slope: 0, @@ -382,7 +325,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 9 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 400, endDist: 450, slope: 0, @@ -392,8 +334,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.MidRace, endRate: 10 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 450, endDist: 500, slope: 0, @@ -402,9 +342,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 11, phase: Phase.MidRace, endRate: 11 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 500, endDist: 550, slope: 0, @@ -413,9 +350,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 12, phase: Phase.MidRace, endRate: 12 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 550, endDist: 600, slope: 0, @@ -424,9 +358,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 13, phase: Phase.MidRace, endRate: 13 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 600, endDist: 650, slope: 0, @@ -435,9 +366,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 14, phase: Phase.MidRace, endRate: 14 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 650, endDist: 700, slope: 0, @@ -446,9 +374,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 15, phase: Phase.MidRace, endRate: 15 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 700, endDist: 750, slope: 0, @@ -457,9 +382,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 16, phase: Phase.MidRace, endRate: 16 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 750, endDist: 800, slope: 0, @@ -468,9 +390,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 17, phase: Phase.LateRace, endRate: 17 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 800, endDist: 850, slope: 0, @@ -479,9 +398,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 18, phase: Phase.LateRace, endRate: 18 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 850, endDist: 900, slope: 0, @@ -490,9 +406,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 19, phase: Phase.LateRace, endRate: 19 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 900, endDist: 950, slope: 0, @@ -501,53 +414,38 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 20, phase: Phase.LateRace, endRate: 20 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 950, endDist: 1000, slope: 0, }, { section: 21, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 21 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1000, endDist: 1050, slope: 0, }, { section: 22, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 22 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1050, endDist: 1100, slope: 0, }, { section: 23, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 23 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1100, endDist: 1150, slope: 0, }, { section: 24, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 24 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1150, endDist: 1200, slope: 0, @@ -563,8 +461,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 0, endDist: 50, slope: 1, @@ -619,7 +515,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 6 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 250, endDist: 300, slope: 0, @@ -630,7 +525,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 7 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 300, endDist: 350, slope: 0, @@ -641,7 +535,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 8 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 350, endDist: 400, slope: 0, @@ -652,7 +545,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 9 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 400, endDist: 450, slope: 0, @@ -662,8 +554,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.MidRace, endRate: 10 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 450, endDist: 500, slope: 0, @@ -672,9 +562,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 11, phase: Phase.MidRace, endRate: 11 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 500, endDist: 550, slope: 0, @@ -683,9 +570,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 12, phase: Phase.MidRace, endRate: 12 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 550, endDist: 600, slope: 0, @@ -694,9 +578,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 13, phase: Phase.MidRace, endRate: 13 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 600, endDist: 650, slope: 0, @@ -705,9 +586,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 14, phase: Phase.MidRace, endRate: 14 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 650, endDist: 700, slope: 0, @@ -716,9 +594,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 15, phase: Phase.MidRace, endRate: 15 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 700, endDist: 750, slope: 0, @@ -727,9 +602,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 16, phase: Phase.MidRace, endRate: 16 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 750, endDist: 800, slope: 0, @@ -738,9 +610,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 17, phase: Phase.LateRace, endRate: 17 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 800, endDist: 850, slope: 0, @@ -749,9 +618,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 18, phase: Phase.LateRace, endRate: 18 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 850, endDist: 900, slope: 0, @@ -760,9 +626,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 19, phase: Phase.LateRace, endRate: 19 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 900, endDist: 950, slope: 0, @@ -771,53 +634,38 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 20, phase: Phase.LateRace, endRate: 20 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 950, endDist: 1000, slope: 0, }, { section: 21, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 21 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1000, endDist: 1050, slope: 0, }, { section: 22, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 22 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1050, endDist: 1100, slope: 0, }, { section: 23, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 23 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1100, endDist: 1150, slope: 0, }, { section: 24, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 24 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1150, endDist: 1200, slope: 0, @@ -833,8 +681,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 0, endDist: 50, slope: 1, @@ -900,7 +746,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 6 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 250, endDist: 300, slope: 0, @@ -911,7 +756,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 7 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 300, endDist: 350, slope: 0, @@ -922,7 +766,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 8 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 350, endDist: 400, slope: 0, @@ -933,7 +776,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 9 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 400, endDist: 450, slope: 0, @@ -943,8 +785,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.MidRace, endRate: 10 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 450, endDist: 500, slope: 0, @@ -953,9 +793,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 11, phase: Phase.MidRace, endRate: 11 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 500, endDist: 550, slope: 0, @@ -964,9 +801,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 12, phase: Phase.MidRace, endRate: 12 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 550, endDist: 600, slope: 0, @@ -975,9 +809,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 13, phase: Phase.MidRace, endRate: 13 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 600, endDist: 650, slope: 0, @@ -986,9 +817,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 14, phase: Phase.MidRace, endRate: 14 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 650, endDist: 700, slope: 0, @@ -997,9 +825,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 15, phase: Phase.MidRace, endRate: 15 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 700, endDist: 750, slope: 0, @@ -1008,9 +833,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 16, phase: Phase.MidRace, endRate: 16 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 750, endDist: 800, slope: 0, @@ -1019,9 +841,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 17, phase: Phase.LateRace, endRate: 17 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 800, endDist: 850, slope: 0, @@ -1030,9 +849,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 18, phase: Phase.LateRace, endRate: 18 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 850, endDist: 900, slope: 0, @@ -1041,9 +857,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 19, phase: Phase.LateRace, endRate: 19 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 900, endDist: 950, slope: 0, @@ -1052,53 +865,38 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 20, phase: Phase.LateRace, endRate: 20 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 950, endDist: 1000, slope: 0, }, { section: 21, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 21 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1000, endDist: 1050, slope: 0, }, { section: 22, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 22 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1050, endDist: 1100, slope: 0, }, { section: 23, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 23 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1100, endDist: 1150, slope: 0, }, { section: 24, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 24 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1150, endDist: 1200, slope: 0, @@ -1114,8 +912,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 0, endDist: 25, slope: 0, @@ -1125,8 +921,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 25, endDist: 50, slope: 1, @@ -1181,7 +975,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 6 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 250, endDist: 300, slope: 0, @@ -1192,7 +985,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 7 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 300, endDist: 350, slope: 0, @@ -1203,7 +995,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 8 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 350, endDist: 400, slope: 0, @@ -1214,7 +1005,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 9 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 400, endDist: 450, slope: 0, @@ -1224,8 +1014,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.MidRace, endRate: 10 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 450, endDist: 500, slope: 0, @@ -1234,9 +1022,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 11, phase: Phase.MidRace, endRate: 11 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 500, endDist: 550, slope: 0, @@ -1245,9 +1030,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 12, phase: Phase.MidRace, endRate: 12 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 550, endDist: 600, slope: 0, @@ -1256,9 +1038,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 13, phase: Phase.MidRace, endRate: 13 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 600, endDist: 650, slope: 0, @@ -1267,9 +1046,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 14, phase: Phase.MidRace, endRate: 14 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 650, endDist: 700, slope: 0, @@ -1278,9 +1054,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 15, phase: Phase.MidRace, endRate: 15 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 700, endDist: 750, slope: 0, @@ -1289,9 +1062,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 16, phase: Phase.MidRace, endRate: 16 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 750, endDist: 800, slope: 0, @@ -1300,9 +1070,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 17, phase: Phase.LateRace, endRate: 17 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 800, endDist: 850, slope: 0, @@ -1311,9 +1078,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 18, phase: Phase.LateRace, endRate: 18 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 850, endDist: 900, slope: 0, @@ -1322,9 +1086,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 19, phase: Phase.LateRace, endRate: 19 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 900, endDist: 950, slope: 0, @@ -1333,53 +1094,38 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 20, phase: Phase.LateRace, endRate: 20 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 950, endDist: 1000, slope: 0, }, { section: 21, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 21 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1000, endDist: 1050, slope: 0, }, { section: 22, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 22 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1050, endDist: 1100, slope: 0, }, { section: 23, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 23 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1100, endDist: 1150, slope: 0, }, { section: 24, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 24 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1150, endDist: 1200, slope: 0, @@ -1398,8 +1144,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 0, endDist: 10, slope: 0, @@ -1409,8 +1153,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 10, endDist: 20, slope: 1, @@ -1420,8 +1162,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 20, endDist: 30, slope: 0, @@ -1431,8 +1171,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 30, endDist: 40, slope: -1, @@ -1442,8 +1180,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.EarlyRace, endRate: 1 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 40, endDist: 50, slope: 0, @@ -1498,7 +1234,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 6 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 250, endDist: 300, slope: 0, @@ -1509,7 +1244,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 7 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 300, endDist: 350, slope: 0, @@ -1520,7 +1254,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 8 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 350, endDist: 400, slope: 0, @@ -1531,7 +1264,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg endRate: 9 / 24, posKeep: true, rush: true, - spotStruggleEnter: false, startDist: 400, endDist: 450, slope: 0, @@ -1541,8 +1273,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg phase: Phase.MidRace, endRate: 10 / 24, posKeep: true, - rush: false, - spotStruggleEnter: false, startDist: 450, endDist: 500, slope: 0, @@ -1551,9 +1281,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 11, phase: Phase.MidRace, endRate: 11 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 500, endDist: 550, slope: 0, @@ -1562,9 +1289,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 12, phase: Phase.MidRace, endRate: 12 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 550, endDist: 600, slope: 0, @@ -1573,9 +1297,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 13, phase: Phase.MidRace, endRate: 13 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 600, endDist: 650, slope: 0, @@ -1584,9 +1305,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 14, phase: Phase.MidRace, endRate: 14 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 650, endDist: 700, slope: 0, @@ -1595,9 +1313,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 15, phase: Phase.MidRace, endRate: 15 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 700, endDist: 750, slope: 0, @@ -1606,9 +1321,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 16, phase: Phase.MidRace, endRate: 16 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 750, endDist: 800, slope: 0, @@ -1617,9 +1329,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 17, phase: Phase.LateRace, endRate: 17 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 800, endDist: 850, slope: 0, @@ -1628,9 +1337,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 18, phase: Phase.LateRace, endRate: 18 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 850, endDist: 900, slope: 0, @@ -1639,9 +1345,6 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 19, phase: Phase.LateRace, endRate: 19 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 900, endDist: 950, slope: 0, @@ -1650,53 +1353,38 @@ test.for<{ raceLen: number; slopes: course.Slope[]; want: course.SectionSlopeSeg section: 20, phase: Phase.LateRace, endRate: 20 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 950, endDist: 1000, slope: 0, }, { section: 21, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 21 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1000, endDist: 1050, slope: 0, }, { section: 22, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 22 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1050, endDist: 1100, slope: 0, }, { section: 23, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 23 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1100, endDist: 1150, slope: 0, }, { section: 24, - phase: Phase.LateRace, + phase: Phase.LastSpurt, endRate: 24 / 24, - posKeep: false, - rush: false, - spotStruggleEnter: false, startDist: 1150, endDist: 1200, slope: 0,