Skip to content

Commit

Permalink
Expected ↔ actual (#17014)
Browse files Browse the repository at this point in the history
  • Loading branch information
brianrourkeboll committed Apr 10, 2024
1 parent 253c6a6 commit 6b6cca9
Showing 1 changed file with 113 additions and 113 deletions.
226 changes: 113 additions & 113 deletions tests/FSharp.Core.UnitTests/FSharp.Core/PrimTypes.fs
Original file line number Diff line number Diff line change
Expand Up @@ -831,63 +831,63 @@ module internal RangeTestsHelpers =
Assert.Throws (typeof<System.InvalidOperationException>, (fun () -> regressionExceptionAfterEndVariableStepIntegralRange zero two)) |> ignore

let inline common (min0, min1, min2, min3) (max0, max1, max2, max3) (zero, one, two, three) =
Assert.AreEqual ({min0 .. min3}, seq {yield min0; yield min1; yield min2; yield min3})
Assert.AreEqual ({min0 .. one .. min3}, seq {min0; min1; min2; min3})
Assert.AreEqual ({min0 .. two .. min3}, seq {min0; min2})
Assert.AreEqual ({min0 .. three .. min3}, seq {min0; min3})

Assert.AreEqual ([min0 .. min3], [min0; min1; min2; min3])
Assert.AreEqual ([min0 .. one .. min3], [min0; min1; min2; min3])
Assert.AreEqual ([min0 .. two .. min3], [min0; min2])
Assert.AreEqual ([min0 .. three .. min3], [min0; min3])

Assert.AreEqual ([|min0 .. min3|], [|min0; min1; min2; min3|])
Assert.AreEqual ([|min0 .. one .. min3|], [|min0; min1; min2; min3|])
Assert.AreEqual ([|min0 .. two .. min3|], [|min0; min2|])
Assert.AreEqual ([|min0 .. three .. min3|], [|min0; min3|])

Assert.AreEqual ({max3 .. max0}, seq {yield max3; yield max2; yield max1; yield max0})
Assert.AreEqual ({max3 .. one .. max0}, seq {max3; max2; max1; max0})
Assert.AreEqual ({max3 .. two .. max0}, seq {max3; max1})
Assert.AreEqual ({max3 .. three .. max0}, seq {max3; max0})

Assert.AreEqual ([max3 .. max0], [max3; max2; max1; max0])
Assert.AreEqual ([max3 .. one .. max0], [max3; max2; max1; max0])
Assert.AreEqual ([max3 .. two .. max0], [max3; max1])
Assert.AreEqual ([max3 .. three .. max0], [max3; max0])

Assert.AreEqual ([|max3 .. max0|], [|max3; max2; max1; max0|])
Assert.AreEqual ([|max3 .. one .. max0|], [|max3; max2; max1; max0|])
Assert.AreEqual ([|max3 .. two .. max0|], [|max3; max1|])
Assert.AreEqual ([|max3 .. three .. max0|], [|max3; max0|])

Assert.AreEqual ({max0 .. min0}, Seq.empty)
Assert.AreEqual ({max0 .. one .. min0}, Seq.empty)
Assert.AreEqual ({max0 .. two .. min0}, Seq.empty)
Assert.AreEqual ({max0 .. three .. min0}, Seq.empty)

Assert.AreEqual ([max0 .. min0], [])
Assert.AreEqual ([max0 .. one .. min0], [])
Assert.AreEqual ([max0 .. two .. min0], [])
Assert.AreEqual ([max0 .. three .. min0], [])

Assert.AreEqual ([|max0 .. min0|], [||])
Assert.AreEqual ([|max0 .. one .. min0|], [||])
Assert.AreEqual ([|max0 .. two .. min0|], [||])
Assert.AreEqual ([|max0 .. three .. min0|], [||])
Assert.AreEqual (seq {yield min0; yield min1; yield min2; yield min3}, {min0 .. min3})
Assert.AreEqual (seq {min0; min1; min2; min3}, {min0 .. one .. min3})
Assert.AreEqual (seq {min0; min2}, {min0 .. two .. min3})
Assert.AreEqual (seq {min0; min3}, {min0 .. three .. min3})

Assert.AreEqual ([min0; min1; min2; min3], [min0 .. min3])
Assert.AreEqual ([min0; min1; min2; min3], [min0 .. one .. min3])
Assert.AreEqual ([min0; min2], [min0 .. two .. min3])
Assert.AreEqual ([min0; min3], [min0 .. three .. min3])

Assert.AreEqual ([|min0; min1; min2; min3|], [|min0 .. min3|])
Assert.AreEqual ([|min0; min1; min2; min3|], [|min0 .. one .. min3|])
Assert.AreEqual ([|min0; min2|], [|min0 .. two .. min3|])
Assert.AreEqual ([|min0; min3|], [|min0 .. three .. min3|])

Assert.AreEqual (seq {yield max3; yield max2; yield max1; yield max0}, {max3 .. max0})
Assert.AreEqual (seq {max3; max2; max1; max0}, {max3 .. one .. max0})
Assert.AreEqual (seq {max3; max1}, {max3 .. two .. max0})
Assert.AreEqual (seq {max3; max0}, {max3 .. three .. max0})

Assert.AreEqual ([max3; max2; max1; max0], [max3 .. max0])
Assert.AreEqual ([max3; max2; max1; max0], [max3 .. one .. max0])
Assert.AreEqual ([max3; max1], [max3 .. two .. max0])
Assert.AreEqual ([max3; max0], [max3 .. three .. max0])

Assert.AreEqual ([|max3; max2; max1; max0|], [|max3 .. max0|])
Assert.AreEqual ([|max3; max2; max1; max0|], [|max3 .. one .. max0|])
Assert.AreEqual ([|max3; max1|], [|max3 .. two .. max0|])
Assert.AreEqual ([|max3; max0|], [|max3 .. three .. max0|])

Assert.AreEqual (Seq.empty, {max0 .. min0})
Assert.AreEqual (Seq.empty, {max0 .. one .. min0})
Assert.AreEqual (Seq.empty, {max0 .. two .. min0})
Assert.AreEqual (Seq.empty, {max0 .. three .. min0})

Assert.AreEqual ([], [max0 .. min0])
Assert.AreEqual ([], [max0 .. one .. min0])
Assert.AreEqual ([], [max0 .. two .. min0])
Assert.AreEqual ([], [max0 .. three .. min0])

Assert.AreEqual ([||], [|max0 .. min0|])
Assert.AreEqual ([||], [|max0 .. one .. min0|])
Assert.AreEqual ([||], [|max0 .. two .. min0|])
Assert.AreEqual ([||], [|max0 .. three .. min0|])

exceptions zero one two

// tests for singleStepRangeEnumerator, as it only is used if start and/or end are not the
// minimum or maximum of the number range and it is counting by 1s
Assert.AreEqual ({min1 .. min3}, seq {min1; min2; min3})
Assert.AreEqual ({max3 .. max1}, seq {max3; max2; max1})
Assert.AreEqual (seq {min1; min2; min3}, {min1 .. min3})
Assert.AreEqual (seq {max3; max2; max1}, {max3 .. max1})

Assert.AreEqual ([min1 .. min3], [min1; min2; min3])
Assert.AreEqual ([max3 .. max1], [max3; max2; max1])
Assert.AreEqual ([min1; min2; min3], [min1 .. min3])
Assert.AreEqual ([max3; max2; max1], [max3 .. max1])

Assert.AreEqual ([|min1 .. min3|], [|min1; min2; min3|])
Assert.AreEqual ([|max3 .. max1|], [|max3; max2; max1|])
Assert.AreEqual ([|min1; min2; min3|], [|min1 .. min3|])
Assert.AreEqual ([|max3; max2; max1|], [|max3 .. max1|])

let inline signed zero one min0 max0 =
let two = one + one
Expand All @@ -903,71 +903,71 @@ module internal RangeTestsHelpers =

common (min0, min1, min2, min3) (max0, max1, max2, max3) (zero, one, two, three)

Assert.AreEqual ({min0 .. max0 .. max0}, seq { min0; min0 + max0; min0 + max0 + max0 })
Assert.AreEqual ({min0 .. max1 .. max0}, seq { min0; min0 + max1; min0 + max1 + max1 })
Assert.AreEqual ({min0 .. max2 .. max0}, seq { min0; min0 + max2; min0 + max2 + max2 })
Assert.AreEqual ({min0 .. max3 .. max0}, seq { min0; min0 + max3; min0 + max3 + max3 })
Assert.AreEqual (seq { min0; min0 + max0; min0 + max0 + max0 }, {min0 .. max0 .. max0})
Assert.AreEqual (seq { min0; min0 + max1; min0 + max1 + max1 }, {min0 .. max1 .. max0})
Assert.AreEqual (seq { min0; min0 + max2; min0 + max2 + max2 }, {min0 .. max2 .. max0})
Assert.AreEqual (seq { min0; min0 + max3; min0 + max3 + max3 }, {min0 .. max3 .. max0})

Assert.AreEqual ([min0 .. max0 .. max0], [ min0; min0 + max0; min0 + max0 + max0 ])
Assert.AreEqual ([min0 .. max1 .. max0], [ min0; min0 + max1; min0 + max1 + max1 ])
Assert.AreEqual ([min0 .. max2 .. max0], [ min0; min0 + max2; min0 + max2 + max2 ])
Assert.AreEqual ([min0 .. max3 .. max0], [ min0; min0 + max3; min0 + max3 + max3 ])
Assert.AreEqual ([ min0; min0 + max0; min0 + max0 + max0 ], [min0 .. max0 .. max0])
Assert.AreEqual ([ min0; min0 + max1; min0 + max1 + max1 ], [min0 .. max1 .. max0])
Assert.AreEqual ([ min0; min0 + max2; min0 + max2 + max2 ], [min0 .. max2 .. max0])
Assert.AreEqual ([ min0; min0 + max3; min0 + max3 + max3 ], [min0 .. max3 .. max0])

Assert.AreEqual ([|min0 .. max0 .. max0|], [| min0; min0 + max0; min0 + max0 + max0 |])
Assert.AreEqual ([|min0 .. max1 .. max0|], [| min0; min0 + max1; min0 + max1 + max1 |])
Assert.AreEqual ([|min0 .. max2 .. max0|], [| min0; min0 + max2; min0 + max2 + max2 |])
Assert.AreEqual ([|min0 .. max3 .. max0|], [| min0; min0 + max3; min0 + max3 + max3 |])
Assert.AreEqual ([| min0; min0 + max0; min0 + max0 + max0 |], [|min0 .. max0 .. max0|])
Assert.AreEqual ([| min0; min0 + max1; min0 + max1 + max1 |], [|min0 .. max1 .. max0|])
Assert.AreEqual ([| min0; min0 + max2; min0 + max2 + max2 |], [|min0 .. max2 .. max0|])
Assert.AreEqual ([| min0; min0 + max3; min0 + max3 + max3 |], [|min0 .. max3 .. max0|])

Assert.AreEqual ({min3 .. -one .. min0}, seq {min3; min2; min1; min0})
Assert.AreEqual ({min3 .. -two .. min0}, seq {min3; min1})
Assert.AreEqual ({min3 .. -three .. min0}, seq {min3; min0})
Assert.AreEqual (seq {min3; min2; min1; min0}, {min3 .. -one .. min0})
Assert.AreEqual (seq {min3; min1}, {min3 .. -two .. min0})
Assert.AreEqual (seq {min3; min0}, {min3 .. -three .. min0})

Assert.AreEqual ([min3 .. -one .. min0], [min3; min2; min1; min0])
Assert.AreEqual ([min3 .. -two .. min0], [min3; min1])
Assert.AreEqual ([min3 .. -three .. min0], [min3; min0])
Assert.AreEqual ([min3; min2; min1; min0], [min3 .. -one .. min0])
Assert.AreEqual ([min3; min1], [min3 .. -two .. min0])
Assert.AreEqual ([min3; min0], [min3 .. -three .. min0])

Assert.AreEqual ([|min3 .. -one .. min0|], [|min3; min2; min1; min0|])
Assert.AreEqual ([|min3 .. -two .. min0|], [|min3; min1|])
Assert.AreEqual ([|min3 .. -three .. min0|], [|min3; min0|])
Assert.AreEqual ([|min3; min2; min1; min0|], [|min3 .. -one .. min0|])
Assert.AreEqual ([|min3; min1|], [|min3 .. -two .. min0|])
Assert.AreEqual ([|min3; min0|], [|min3 .. -three .. min0|])

Assert.AreEqual ({max0 .. -one .. max3}, seq {max0; max1; max2; max3})
Assert.AreEqual ({max0 .. -two .. max3}, seq {max0; max2})
Assert.AreEqual ({max0 .. -three .. max3}, seq {max0; max3})
Assert.AreEqual (seq {max0; max1; max2; max3}, {max0 .. -one .. max3})
Assert.AreEqual (seq {max0; max2}, {max0 .. -two .. max3})
Assert.AreEqual (seq {max0; max3}, {max0 .. -three .. max3})

Assert.AreEqual ([max0 .. -one .. max3], [max0; max1; max2; max3])
Assert.AreEqual ([max0 .. -two .. max3], [max0; max2])
Assert.AreEqual ([max0 .. -three .. max3], [max0; max3])
Assert.AreEqual ([max0; max1; max2; max3], [max0 .. -one .. max3])
Assert.AreEqual ([max0; max2], [max0 .. -two .. max3])
Assert.AreEqual ([max0; max3], [max0 .. -three .. max3])

Assert.AreEqual ([|max0 .. -one .. max3|], [|max0; max1; max2; max3|])
Assert.AreEqual ([|max0 .. -two .. max3|], [|max0; max2|])
Assert.AreEqual ([|max0 .. -three .. max3|], [|max0; max3|])
Assert.AreEqual ([|max0; max1; max2; max3|], [|max0 .. -one .. max3|])
Assert.AreEqual ([|max0; max2|], [|max0 .. -two .. max3|])
Assert.AreEqual ([|max0; max3|], [|max0 .. -three .. max3|])

Assert.AreEqual ({min0 .. -one .. max0}, Seq.empty)
Assert.AreEqual ({min0 .. -two .. max0}, Seq.empty)
Assert.AreEqual ({min0 .. -three .. max0}, Seq.empty)
Assert.AreEqual (Seq.empty, {min0 .. -one .. max0})
Assert.AreEqual (Seq.empty, {min0 .. -two .. max0})
Assert.AreEqual (Seq.empty, {min0 .. -three .. max0})

Assert.AreEqual ([min0 .. -one .. max0], [])
Assert.AreEqual ([min0 .. -two .. max0], [])
Assert.AreEqual ([min0 .. -three .. max0], [])
Assert.AreEqual ([], [min0 .. -one .. max0])
Assert.AreEqual ([], [min0 .. -two .. max0])
Assert.AreEqual ([], [min0 .. -three .. max0])

Assert.AreEqual ([|min0 .. -one .. max0|], [||])
Assert.AreEqual ([|min0 .. -two .. max0|], [||])
Assert.AreEqual ([|min0 .. -three .. max0|], [||])
Assert.AreEqual ([||], [|min0 .. -one .. max0|])
Assert.AreEqual ([||], [|min0 .. -two .. max0|])
Assert.AreEqual ([||], [|min0 .. -three .. max0|])

Assert.AreEqual ({max0 .. min0 .. min0}, seq {max0; max0 + min0})
Assert.AreEqual ({max0 .. min1 .. min0}, seq {max0; max0 + min1; max0 + min1 + min1 })
Assert.AreEqual ({max0 .. min2 .. min0}, seq {max0; max0 + min2; max0 + min2 + min2 })
Assert.AreEqual ({max0 .. min3 .. min0}, seq {max0; max0 + min3; max0 + min3 + min3 })
Assert.AreEqual (seq {max0; max0 + min0}, {max0 .. min0 .. min0})
Assert.AreEqual (seq {max0; max0 + min1; max0 + min1 + min1 }, {max0 .. min1 .. min0})
Assert.AreEqual (seq {max0; max0 + min2; max0 + min2 + min2 }, {max0 .. min2 .. min0})
Assert.AreEqual (seq {max0; max0 + min3; max0 + min3 + min3 }, {max0 .. min3 .. min0})

Assert.AreEqual ([max0 .. min0 .. min0], [max0; max0 + min0])
Assert.AreEqual ([max0 .. min1 .. min0], [max0; max0 + min1; max0 + min1 + min1 ])
Assert.AreEqual ([max0 .. min2 .. min0], [max0; max0 + min2; max0 + min2 + min2 ])
Assert.AreEqual ([max0 .. min3 .. min0], [max0; max0 + min3; max0 + min3 + min3 ])
Assert.AreEqual ([max0; max0 + min0], [max0 .. min0 .. min0])
Assert.AreEqual ([max0; max0 + min1; max0 + min1 + min1 ], [max0 .. min1 .. min0])
Assert.AreEqual ([max0; max0 + min2; max0 + min2 + min2 ], [max0 .. min2 .. min0])
Assert.AreEqual ([max0; max0 + min3; max0 + min3 + min3 ], [max0 .. min3 .. min0])

Assert.AreEqual ([|max0 .. min0 .. min0|], [|max0; max0 + min0|])
Assert.AreEqual ([|max0 .. min1 .. min0|], [|max0; max0 + min1; max0 + min1 + min1 |])
Assert.AreEqual ([|max0 .. min2 .. min0|], [|max0; max0 + min2; max0 + min2 + min2 |])
Assert.AreEqual ([|max0 .. min3 .. min0|], [|max0; max0 + min3; max0 + min3 + min3 |])
Assert.AreEqual ([|max0; max0 + min0|], [|max0 .. min0 .. min0|])
Assert.AreEqual ([|max0; max0 + min1; max0 + min1 + min1 |], [|max0 .. min1 .. min0|])
Assert.AreEqual ([|max0; max0 + min2; max0 + min2 + min2 |], [|max0 .. min2 .. min0|])
Assert.AreEqual ([|max0; max0 + min3; max0 + min3 + min3 |], [|max0 .. min3 .. min0|])

let inline unsigned zero one min0 max0 =
let two = one + one
Expand All @@ -983,20 +983,20 @@ module internal RangeTestsHelpers =

common (min0, min1, min2, min3) (max0, max1, max2, max3) (zero, one, two, three)

Assert.AreEqual ({min0 .. max0 .. max0}, seq {yield min0; yield min0 + max0})
Assert.AreEqual ({min0 .. max1 .. max0}, seq {min0; min0 + max1})
Assert.AreEqual ({min0 .. max2 .. max0}, seq {min0; min0 + max2})
Assert.AreEqual ({min0 .. max3 .. max0}, seq {min0; min0 + max3})
Assert.AreEqual (seq {yield min0; yield min0 + max0}, {min0 .. max0 .. max0})
Assert.AreEqual (seq {min0; min0 + max1}, {min0 .. max1 .. max0})
Assert.AreEqual (seq {min0; min0 + max2}, {min0 .. max2 .. max0})
Assert.AreEqual (seq {min0; min0 + max3}, {min0 .. max3 .. max0})

Assert.AreEqual ([min0 .. max0 .. max0], [min0; min0 + max0])
Assert.AreEqual ([min0 .. max1 .. max0], [min0; min0 + max1])
Assert.AreEqual ([min0 .. max2 .. max0], [min0; min0 + max2])
Assert.AreEqual ([min0 .. max3 .. max0], [min0; min0 + max3])
Assert.AreEqual ([min0; min0 + max0], [min0 .. max0 .. max0])
Assert.AreEqual ([min0; min0 + max1], [min0 .. max1 .. max0])
Assert.AreEqual ([min0; min0 + max2], [min0 .. max2 .. max0])
Assert.AreEqual ([min0; min0 + max3], [min0 .. max3 .. max0])

Assert.AreEqual ([|min0 .. max0 .. max0|], [|min0; min0 + max0|])
Assert.AreEqual ([|min0 .. max1 .. max0|], [|min0; min0 + max1|])
Assert.AreEqual ([|min0 .. max2 .. max0|], [|min0; min0 + max2|])
Assert.AreEqual ([|min0 .. max3 .. max0|], [|min0; min0 + max3|])
Assert.AreEqual ([|min0; min0 + max0|], [|min0 .. max0 .. max0|])
Assert.AreEqual ([|min0; min0 + max1|], [|min0 .. max1 .. max0|])
Assert.AreEqual ([|min0; min0 + max2|], [|min0 .. max2 .. max0|])
Assert.AreEqual ([|min0; min0 + max3|], [|min0 .. max3 .. max0|])

// Note to future contributors: if the code gen for ranges is not correct,
// some of these tests may loop forever or use up all available memory instead of failing outright.
Expand Down

0 comments on commit 6b6cca9

Please sign in to comment.