File tree 3 files changed +52
-0
lines changed
3 files changed +52
-0
lines changed Original file line number Diff line number Diff line change 18
18
],
19
19
"dependencies" : {
20
20
"purescript-either" : " ^3.0.0" ,
21
+ "purescript-gen" : " ^1.1.0" ,
21
22
"purescript-maybe" : " ^3.0.0" ,
22
23
"purescript-partial" : " ^1.2.0"
23
24
},
Original file line number Diff line number Diff line change
1
+ module Data.Char.Gen where
2
+
3
+ import Prelude
4
+
5
+ import Control.Monad.Gen (class MonadGen , chooseInt )
6
+ import Data.Char as C
7
+
8
+ -- | Generates a character of the Unicode basic multilingual plain.
9
+ genUnicodeChar :: forall m . MonadGen m => m Char
10
+ genUnicodeChar = C .fromCharCode <$> chooseInt 0 65536
11
+
12
+ -- | Generates a character in the ASCII character set, excluding control codes.
13
+ genAsciiChar :: forall m . MonadGen m => m Char
14
+ genAsciiChar = C .fromCharCode <$> chooseInt 32 127
15
+
16
+ -- | Generates a character in the ASCII character set.
17
+ genAsciiChar' :: forall m . MonadGen m => m Char
18
+ genAsciiChar' = C .fromCharCode <$> chooseInt 0 127
19
+
20
+ -- | Generates a character that is a numeric digit.
21
+ genDigitChar :: forall m . MonadGen m => m Char
22
+ genDigitChar = C .fromCharCode <$> chooseInt 48 57
Original file line number Diff line number Diff line change
1
+ module Data.String.Gen where
2
+
3
+ import Prelude
4
+
5
+ import Control.Monad.Gen (class MonadGen , unfoldable )
6
+ import Control.Monad.Rec.Class (class MonadRec )
7
+ import Data.Char.Gen as CG
8
+ import Data.String as S
9
+
10
+ -- | Generates a string using the specified character generator.
11
+ genString :: forall m . MonadRec m => MonadGen m => m Char -> m String
12
+ genString = map S .fromCharArray <<< unfoldable
13
+
14
+ -- | Generates a string using characters from the Unicode basic multilingual
15
+ -- | plain.
16
+ genUnicodeString :: forall m . MonadRec m => MonadGen m => m String
17
+ genUnicodeString = genString CG .genUnicodeChar
18
+
19
+ -- | Generates a string using the ASCII character set, excluding control codes.
20
+ genAsciiString :: forall m . MonadRec m => MonadGen m => m String
21
+ genAsciiString = genString CG .genAsciiChar
22
+
23
+ -- | Generates a string using the ASCII character set.
24
+ genAsciiString' :: forall m . MonadRec m => MonadGen m => m String
25
+ genAsciiString' = genString CG .genAsciiChar'
26
+
27
+ -- | Generates a string made up of numeric digits.
28
+ genDigitString :: forall m . MonadRec m => MonadGen m => m String
29
+ genDigitString = genString CG .genDigitChar
You can’t perform that action at this time.
0 commit comments