Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

expectedactual #17014

Merged
merged 1 commit into from
Apr 10, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading