44module System.Nix.Arbitrary.DerivedPath where
55
66import Data.Set qualified
7- import Test.QuickCheck
7+ import Test.QuickCheck (Arbitrary (.. ), oneof )
8+ import Test.QuickCheck.Arbitrary.Generic (GenericArbitrary (.. ))
89import System.Nix.Arbitrary.OutputName ()
910import System.Nix.Arbitrary.StorePath ()
10- import System.Nix.DerivedPath
11+ import System.Nix.DerivedPath ( SingleDerivedPath , DerivedPath , OutputsSpec ( .. ))
1112
1213instance Arbitrary OutputsSpec where
1314 arbitrary = oneof
@@ -17,28 +18,8 @@ instance Arbitrary OutputsSpec where
1718 <$> ((:) <$> arbitrary <*> arbitrary)
1819 ]
1920
20- arbitrarySingleDerivedPath :: Word -> Gen SingleDerivedPath
21- arbitrarySingleDerivedPath = \ case
22- 0 -> SingleDerivedPath_Opaque <$> arbitrary
23- depth -> SingleDerivedPath_Built
24- <$> (arbitrarySingleDerivedPath $ depth - 1 )
25- <*> arbitrary
21+ deriving via GenericArbitrary SingleDerivedPath
22+ instance Arbitrary SingleDerivedPath
2623
27- arbitraryDerivedPath :: Word -> Gen DerivedPath
28- arbitraryDerivedPath = \ case
29- 0 -> DerivedPath_Opaque <$> arbitrary
30- depth -> DerivedPath_Built
31- <$> (arbitrarySingleDerivedPath $ depth - 1 )
32- <*> arbitrary
33-
34- instance Arbitrary SingleDerivedPath where
35- arbitrary = do
36- n <- getSize
37- k <- choose (0 , n)
38- arbitrarySingleDerivedPath $ fromIntegral k
39-
40- instance Arbitrary DerivedPath where
41- arbitrary = do
42- n <- getSize
43- k <- choose (0 , n)
44- arbitraryDerivedPath $ fromIntegral k
24+ deriving via GenericArbitrary DerivedPath
25+ instance Arbitrary DerivedPath
0 commit comments