File tree Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Expand file tree Collapse file tree 1 file changed +14
-6
lines changed Original file line number Diff line number Diff line change @@ -110,16 +110,24 @@ instance Arbitrary BigInt where
110110newtype NotEmpty a = NotEmpty { notEmpty :: a }
111111 deriving (Eq , Ord , Show )
112112
113+ toNotEmptyBy :: Functor m => ([Char ] -> a ) -> m (NonEmptyList Char ) -> m (NotEmpty a )
114+ toNotEmptyBy f = fmap (coerce f)
115+
116+ arbitraryNotEmptyBy :: ([Char ] -> a ) -> Gen (NotEmpty a )
117+ arbitraryNotEmptyBy f = toNotEmptyBy f arbitrary
118+
119+ shrinkNotEmptyBy :: ([Char ] -> a ) -> (a -> [Char ]) -> NotEmpty a -> [NotEmpty a ]
120+ shrinkNotEmptyBy g f =
121+ toNotEmptyBy g . shrink . coerce f
113122
114123instance Arbitrary (NotEmpty T. Text ) where
115- arbitrary = fmap (NotEmpty . T. pack . getNonEmpty) arbitrary
116- shrink = fmap (NotEmpty . T. pack . getNonEmpty)
117- . shrink . NonEmpty . T. unpack . notEmpty
124+ arbitrary = arbitraryNotEmptyBy T. pack
125+ shrink = shrinkNotEmptyBy T. pack T. unpack
118126
119127instance Arbitrary (NotEmpty TL. Text ) where
120- arbitrary = fmap ( NotEmpty . TL. pack . getNonEmpty) arbitrary
121- shrink = fmap ( NotEmpty . TL. pack . getNonEmpty)
122- . shrink . NonEmpty . TL. unpack . notEmpty
128+ arbitrary = arbitraryNotEmptyBy TL. pack
129+ shrink = shrinkNotEmptyBy TL. pack TL. unpack
130+
123131
124132data DecodeErr = Lenient | Ignore | Strict | Replace
125133 deriving (Show , Eq , Bounded , Enum )
You can’t perform that action at this time.
0 commit comments