From 23f55814f90705721f44da4c99a9d897733060e3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Jan 2025 01:16:20 +0000 Subject: [PATCH] Bump ApiSurface from 4.1.15 to 4.1.16 (#325) * Bump FsCheck from 2.16.6 to 3.0.0 Bumps [FsCheck](https://github.com/Fscheck/fscheck) from 2.16.6 to 3.0.0. - [Release notes](https://github.com/Fscheck/fscheck/releases) - [Changelog](https://github.com/fscheck/FsCheck/blob/master/FsCheck%20Release%20Notes.md) - [Commits](https://github.com/Fscheck/fscheck/compare/2.16.6...3.0.0) --- updated-dependencies: - dependency-name: FsCheck dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump ApiSurface from 4.1.15 to 4.1.16 Bumps [ApiSurface](https://github.com/G-Research/ApiSurface) from 4.1.15 to 4.1.16. - [Release notes](https://github.com/G-Research/ApiSurface/releases) - [Commits](https://github.com/G-Research/ApiSurface/compare/ApiSurface.4.1.15...ApiSurface.4.1.16) --- updated-dependencies: - dependency-name: ApiSurface dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Bump Nerdbank.GitVersioning from 3.7.112 to 3.7.115 Bumps [Nerdbank.GitVersioning](https://github.com/dotnet/Nerdbank.GitVersioning) from 3.7.112 to 3.7.115. - [Release notes](https://github.com/dotnet/Nerdbank.GitVersioning/releases) - [Commits](https://github.com/dotnet/Nerdbank.GitVersioning/commits) --- updated-dependencies: - dependency-name: Nerdbank.GitVersioning dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Lockfile * Fix tests * Fix --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Smaug123 <3138005+Smaug123@users.noreply.github.com> --- Directory.Build.props | 2 +- ...Ware.Myriad.Plugins.Attributes.Test.fsproj | 2 +- .../TestJsonSerialize/TestJsonSerde.fs | 78 +++++++++++-------- .../WoofWare.Myriad.Plugins.Test.fsproj | 4 +- nix/deps.json | 17 ++-- 5 files changed, 56 insertions(+), 47 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 640cb81..19a68f4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -10,7 +10,7 @@ FS3388,FS3559 - + diff --git a/WoofWare.Myriad.Plugins.Attributes/Test/WoofWare.Myriad.Plugins.Attributes.Test.fsproj b/WoofWare.Myriad.Plugins.Attributes/Test/WoofWare.Myriad.Plugins.Attributes.Test.fsproj index ebcc26b..ba20e11 100644 --- a/WoofWare.Myriad.Plugins.Attributes/Test/WoofWare.Myriad.Plugins.Attributes.Test.fsproj +++ b/WoofWare.Myriad.Plugins.Attributes/Test/WoofWare.Myriad.Plugins.Attributes.Test.fsproj @@ -17,7 +17,7 @@ - + diff --git a/WoofWare.Myriad.Plugins.Test/TestJsonSerialize/TestJsonSerde.fs b/WoofWare.Myriad.Plugins.Test/TestJsonSerialize/TestJsonSerde.fs index f78284f..1638732 100644 --- a/WoofWare.Myriad.Plugins.Test/TestJsonSerialize/TestJsonSerde.fs +++ b/WoofWare.Myriad.Plugins.Test/TestJsonSerialize/TestJsonSerde.fs @@ -3,7 +3,7 @@ namespace WoofWare.Myriad.Plugins.Test open System open System.Collections.Generic open System.Text.Json.Nodes -open FsCheck.Random +open FsCheck.FSharp open Microsoft.FSharp.Reflection open NUnit.Framework open FsCheck @@ -15,21 +15,21 @@ module TestJsonSerde = let uriGen : Gen = gen { - let! suffix = Arb.generate + let! suffix = ArbMap.generate ArbMap.defaults return Uri $"https://example.com/%i{suffix}" } let rec innerGen (count : int) : Gen = gen { - let! guid = Arb.generate - let! mapKeys = Gen.listOf Arb.generate> + let! guid = ArbMap.generate ArbMap.defaults + let! mapKeys = Gen.listOf (ArbMap.generate> ArbMap.defaults) let mapKeys = mapKeys |> List.map _.Get |> List.distinct let! mapValues = Gen.listOfLength mapKeys.Length uriGen let map = List.zip mapKeys mapValues |> Map.ofList let! concreteDictKeys = if count > 0 then - Gen.listOf Arb.generate> + Gen.listOf (ArbMap.generate> ArbMap.defaults) else Gen.constant [] @@ -50,13 +50,16 @@ module TestJsonSerde = |> List.map KeyValuePair |> Dictionary - let! readOnlyDictKeys = Gen.listOf Arb.generate> + let! readOnlyDictKeys = Gen.listOf (ArbMap.generate> ArbMap.defaults) let readOnlyDictKeys = readOnlyDictKeys |> List.map _.Get |> List.distinct - let! readOnlyDictValues = Gen.listOfLength readOnlyDictKeys.Length (Gen.listOf Arb.generate) + + let! readOnlyDictValues = + Gen.listOfLength readOnlyDictKeys.Length (Gen.listOf (ArbMap.generate ArbMap.defaults)) + let readOnlyDict = List.zip readOnlyDictKeys readOnlyDictValues |> readOnlyDict let! dictKeys = Gen.listOf uriGen - let! dictValues = Gen.listOfLength dictKeys.Length Arb.generate + let! dictValues = Gen.listOfLength dictKeys.Length (ArbMap.generate ArbMap.defaults) let dict = List.zip dictKeys dictValues |> dict return @@ -71,28 +74,38 @@ module TestJsonSerde = let outerGen : Gen = gen { - let! a = Arb.generate - let! b = Arb.generate> - let! c = Gen.listOf Arb.generate + let! a = ArbMap.generate ArbMap.defaults + let! b = ArbMap.generate> ArbMap.defaults + let! c = Gen.listOf (ArbMap.generate ArbMap.defaults) let! depth = Gen.choose (0, 2) let! d = innerGen depth - let! e = Gen.arrayOf Arb.generate> - let! arr = Gen.arrayOf Arb.generate - let! byte = Arb.generate - let! sbyte = Arb.generate - let! i = Arb.generate - let! i32 = Arb.generate - let! i64 = Arb.generate - let! u = Arb.generate - let! u32 = Arb.generate - let! u64 = Arb.generate - let! f = Arb.generate |> Gen.filter (fun s -> Double.IsFinite (s / 1.0)) - let! f32 = Arb.generate |> Gen.filter (fun s -> Single.IsFinite (s / 1.0f)) - let! single = Arb.generate |> Gen.filter (fun s -> Single.IsFinite (s / 1.0f)) - let! intMeasureOption = Arb.generate - let! intMeasureNullable = Arb.generate + let! e = Gen.arrayOf (ArbMap.generate> ArbMap.defaults) + let! arr = Gen.arrayOf (ArbMap.generate ArbMap.defaults) + let! byte = ArbMap.generate ArbMap.defaults + let! sbyte = ArbMap.generate ArbMap.defaults + let! i = ArbMap.generate ArbMap.defaults + let! i32 = ArbMap.generate ArbMap.defaults + let! i64 = ArbMap.generate ArbMap.defaults + let! u = ArbMap.generate ArbMap.defaults + let! u32 = ArbMap.generate ArbMap.defaults + let! u64 = ArbMap.generate ArbMap.defaults + + let! f = + ArbMap.generate ArbMap.defaults + |> Gen.filter (fun s -> Double.IsFinite (s / 1.0)) + + let! f32 = + ArbMap.generate ArbMap.defaults + |> Gen.filter (fun s -> Single.IsFinite (s / 1.0f)) + + let! single = + ArbMap.generate ArbMap.defaults + |> Gen.filter (fun s -> Single.IsFinite (s / 1.0f)) + + let! intMeasureOption = ArbMap.generate ArbMap.defaults + let! intMeasureNullable = ArbMap.generate ArbMap.defaults let! someEnum = Gen.choose (0, 1) - let! timestamp = Arb.generate + let! timestamp = ArbMap.generate ArbMap.defaults return { @@ -270,10 +283,10 @@ module TestJsonSerde = match case with | 0 -> return FirstDu.EmptyCase | 1 -> - let! s = Arb.generate> + let! s = ArbMap.generate> ArbMap.defaults return FirstDu.Case1 s.Get | 2 -> - let! i = Arb.generate + let! i = ArbMap.generate ArbMap.defaults let! record = outerGen return FirstDu.Case2 (record, i) | _ -> return failwith $"unexpected: %i{case}" @@ -293,7 +306,6 @@ module TestJsonSerde = [] let ``DU generator covers all cases`` () = - let rand = Random () let cases = FSharpType.GetUnionCases typeof let counts = Array.zeroCreate cases.Length @@ -301,11 +313,13 @@ module TestJsonSerde = let mutable i = 0 - while i < 10_000 && Array.exists (fun i -> i = 0) counts do - let du = Gen.eval 10 (StdGen.StdGen (rand.Next (), rand.Next ())) duGen + let property (du : FirstDu) = let tag = decompose du counts.[tag] <- counts.[tag] + 1 i <- i + 1 + true + + Check.One (Config.Quick, Prop.forAll (Arb.fromGen duGen) property) for i in counts do i |> shouldBeGreaterThan 0 diff --git a/WoofWare.Myriad.Plugins.Test/WoofWare.Myriad.Plugins.Test.fsproj b/WoofWare.Myriad.Plugins.Test/WoofWare.Myriad.Plugins.Test.fsproj index c35dc32..2b4b5f0 100644 --- a/WoofWare.Myriad.Plugins.Test/WoofWare.Myriad.Plugins.Test.fsproj +++ b/WoofWare.Myriad.Plugins.Test/WoofWare.Myriad.Plugins.Test.fsproj @@ -41,8 +41,8 @@ - - + + diff --git a/nix/deps.json b/nix/deps.json index ec86b96..2f96da0 100644 --- a/nix/deps.json +++ b/nix/deps.json @@ -1,8 +1,8 @@ [ { "pname": "ApiSurface", - "version": "4.1.15", - "hash": "sha256-E0J62c/viqvVBvBA5lBPG90BgPCrA6+cS/h4MZjKz+k=" + "version": "4.1.16", + "hash": "sha256-3F+dY2nZMFukUjIGrvB/h3ZsZYdLJ9jvQKRxX33qk2E=" }, { "pname": "fantomas", @@ -21,19 +21,14 @@ }, { "pname": "FsCheck", - "version": "2.16.6", - "hash": "sha256-1hR2SaJTkqBzU3D955MvLNVzkQHkx0Z/QzOXZfzk2Zw=" + "version": "3.0.0", + "hash": "sha256-/5FqiNeTVFairRtInS0cjQ3uGlqVfVJG2FsKIo8mdZ4=" }, { "pname": "fsharp-analyzers", "version": "0.28.0", "hash": "sha256-BqGk9MzHHA3oRPNfWuANcM1YELsdhzWI+kLF4mUDUx8=" }, - { - "pname": "FSharp.Core", - "version": "4.2.3", - "hash": "sha256-yMGMrMUY+4Lwnh9JIbD2/3FBGIFcSK7leGURWaSQsLQ=" - }, { "pname": "FSharp.Core", "version": "4.3.4", @@ -191,8 +186,8 @@ }, { "pname": "Nerdbank.GitVersioning", - "version": "3.7.112", - "hash": "sha256-vrItlaH5MpBHa4MI1cQgI11NAe4W3XsxR9DizFE7fus=" + "version": "3.7.115", + "hash": "sha256-sqn+i7vvBgBUtm7j82mH+SpApgI2hsmL5DYfLm1Z7gw=" }, { "pname": "NETStandard.Library",