package arbitrary import ( "fmt" ) func (arb T) phonenumber_canada() string { var areacode string { var areacodes []string = []string{ // alberta "403", "780", "587", "825", "368", // british columnbia "604", "250", "778", "236", "672", // manitoba "204", "413", // new brunswick "506", // newfoundland and labrador "709", // nova scotia and prince edward island "782", "902", // ontario "226", "249", "289", "343", "365", "416", "437", "519", "548", "613", "647", "705", "807", "905", // quebec "367", "418", "581", "438", "450", "514", "613", "581", "819", // saskatchewan "306", "639", // yukon, northwest territories and nunavut "867", } areacode = areacodes[arb.randomness.Intn(len(areacodes))] } var localpart1 int { localpart1 = arb.randomness.Intn(1000) } var localpart2 int { localpart2 = arb.randomness.Intn(10000) } var format string { var formats []string = []string{ "%s-%03d%04d", "%s-%03d-%04d", "%s %03d %04d", "%s %03d%04d", "(%s) %03d%04d", "(%s)%03d%04d", "(%s) %03d-%04d", "(%s)%03d-%04d", "(%s) %03d %04d", "(%s)%03d %04d", "%s/%03d-%04d", "+1%s%03d%04d", "+1-%s-%03d-%04d", "+1 %s %03d %04d", } format = formats[arb.randomness.Intn(len(formats))] } var result string { result = fmt.Sprintf(format, areacode, localpart1, localpart2) } return result }