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