aboutsummaryrefslogtreecommitdiff
path: root/lib/fixture.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/fixture.ml')
-rw-r--r--lib/fixture.ml38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/fixture.ml b/lib/fixture.ml
index 4985624..dbd6297 100644
--- a/lib/fixture.ml
+++ b/lib/fixture.ml
@@ -19,6 +19,37 @@ let names =
]
+let email_handles =
+ [ "alice"
+ ; "bob"
+ ; "charlie"
+ ; "dave"
+ ; "eve"
+ ; "frank"
+ ; "grace"
+ ; "heidi"
+ ; "ivan"
+ ; "judy"
+ ; "mallory"
+ ; "oscar"
+ ; "peggy"
+ ; "sybil"
+ ; "trent"
+ ; "victor"
+ ; "walter"
+ ]
+
+
+let email_hosts =
+ [ "gmail.com"
+ ; "yahoo.com"
+ ; "hotmail.com"
+ ; "fastmail.fr"
+ ; "mccd.space"
+ ; "protonmail.com"
+ ]
+
+
let random_value_in_list values = List.nth values (Random.int (List.length values))
type compiled =
@@ -36,6 +67,10 @@ let show_compiled_csv fixture =
| Float f -> string_of_float f
+let random_email () =
+ random_value_in_list email_handles ^ "@" ^ random_value_in_list email_hosts
+
+
let random_name () = List.nth names (Random.int (List.length names))
let%test "random_name" = List.mem (random_name ()) names
@@ -62,6 +97,7 @@ type t =
| Int of string * int * int
| Increment of string
| Const of string * string
+ | Email of string
| List of string * string list
(* (Name, foreign ids to pick from) *)
@@ -72,6 +108,7 @@ let generate_fixture index fixture =
| Foreign (_, reference) -> random_value_in_list reference
| Increment _ -> Int (index + 1)
| Const (_, value) -> String value
+ | Email _ -> String (random_email ())
| Int (_, min, max) -> Int (Random.int (max - min) + min)
| List (_, values) -> String (random_value_in_list values)
@@ -111,6 +148,7 @@ let id_of_fixture fixture =
| Const (id, _) -> id
| Int (id, _, _) -> id
| List (id, _) -> id
+ | Email id -> id
in
String id