From bf91198da0544bc8ac75f53c8070265a81c40b6b Mon Sep 17 00:00:00 2001 From: Charles Iliya Krempeaux Date: Sat, 20 Nov 2021 17:46:15 -0800 Subject: [PATCH] phone number, plus other changes --- default.go | 6 +++ arbitrary.go => t.go | 0 bool.go => t_bool.go | 0 bool_test.go => t_bool_test.go | 0 t_phonenumber.go | 6 +++ t_phonenumber_canada.go | 61 ++++++++++++++++++++++++++++++ runes.go => t_runes.go | 0 runes_test.go => t_runes_test.go | 0 string.go => t_string.go | 0 string_test.go => t_string_test.go | 0 10 files changed, 73 insertions(+) rename arbitrary.go => t.go (100%) rename bool.go => t_bool.go (100%) rename bool_test.go => t_bool_test.go (100%) create mode 100644 t_phonenumber.go create mode 100644 t_phonenumber_canada.go rename runes.go => t_runes.go (100%) rename runes_test.go => t_runes_test.go (100%) rename string.go => t_string.go (100%) rename string_test.go => t_string_test.go (100%) diff --git a/default.go b/default.go index 840e453..bac8e7e 100644 --- a/default.go +++ b/default.go @@ -9,10 +9,16 @@ var ( Default = New( rand.NewSource( time.Now().UTC().UnixNano() ) ) ) +// Bool returns an arbitrary bool. func Bool() bool { return Default.Bool() } +// PhoneNumber returns an arbitrary phone‐number. +func PhoneNumber() string { + return Default.PhoneNumber() +} + func Runes(a ...interface{}) []rune { return Default.Runes(a...) } diff --git a/arbitrary.go b/t.go similarity index 100% rename from arbitrary.go rename to t.go diff --git a/bool.go b/t_bool.go similarity index 100% rename from bool.go rename to t_bool.go diff --git a/bool_test.go b/t_bool_test.go similarity index 100% rename from bool_test.go rename to t_bool_test.go diff --git a/t_phonenumber.go b/t_phonenumber.go new file mode 100644 index 0000000..0e11c11 --- /dev/null +++ b/t_phonenumber.go @@ -0,0 +1,6 @@ +package arbitrary + +// PhoneNumber returns an arbitrary phone‐number. +func (arb T) PhoneNumber() string { + return arb.phonenumber_canada() +} diff --git a/t_phonenumber_canada.go b/t_phonenumber_canada.go new file mode 100644 index 0000000..3bfce4e --- /dev/null +++ b/t_phonenumber_canada.go @@ -0,0 +1,61 @@ +package arbitrary + +import ( + "fmt" +) + +func (arb T) phonenumber_canada() string { + + var areacode string + { + var areacodes []string = []string{ + "604", + "250", + "778", + "236", + "672", + } + + areacode = areacodes[arb.randomness.Intn(len(areacodes))] + } + + var localpart1 string + { + localpart1 = fmt.Sprint(arb.randomness.Intn(1000)) + } + + var localpart2 string + { + localpart2 = fmt.Sprint(arb.randomness.Intn(10000)) + } + + var format string + { + var formats []string = []string{ + "%s-%s%s", + "%s-%s-%s", + "%s %s %s", + "%s %s%s", + "(%s) %s%s", + "(%s)%s%s", + "(%s) %s-%s", + "(%s)%s-%s", + "(%s) %s %s", + "(%s)%s %s", + "%s/%s-%s", + "+1%s%s%s", + "+1-%s-%s-%s", + "+1 %s %s %s", + } + + format = formats[arb.randomness.Intn(len(formats))] + } + + var result string + { + fmt.Sprintf(format, areacode, localpart1, localpart2) + } + + return result +} + diff --git a/runes.go b/t_runes.go similarity index 100% rename from runes.go rename to t_runes.go diff --git a/runes_test.go b/t_runes_test.go similarity index 100% rename from runes_test.go rename to t_runes_test.go diff --git a/string.go b/t_string.go similarity index 100% rename from string.go rename to t_string.go diff --git a/string_test.go b/t_string_test.go similarity index 100% rename from string_test.go rename to t_string_test.go