func ExampleToDelimiter() { ntd1 := gonumbers.ToDelimiter() fmt.Println(ntd1.Perform(1234567890)) ntd2 := gonumbers.ToDelimiter() ntd2.Options(gonumbers.Separator("."), gonumbers.Delimiter(",")) fmt.Println(ntd2.Perform(1234567890.506)) ntd3 := gonumbers.ToDelimiter() ntd3.Options(gonumbers.Separator("-"), gonumbers.Delimiter(":")) fmt.Println(ntd3.Perform(1234567890.34)) ntd4 := gonumbers.ToDelimiter() ntd4.Options(gonumbers.Separator("."), gonumbers.Delimiter("")) fmt.Println(ntd4.Perform(1234567890.34)) ntd5 := gonumbers.ToDelimiter() ntd5.Options(gonumbers.Separator(""), gonumbers.Delimiter("")) fmt.Println(ntd5.Perform(1234567890.34)) // Output: // 1,234,567,890 // 1,234,567,890.506 // 1:234:567:890-34 // 1234567890.34 // 123456789034 }
func Test_ToCurrency(t *testing.T) { for _, test := range testsNTC { ntc := gonumbers.ToCurrency() if test.addPrecision { ntc.Options(gonumbers.Precision(test.precision)) } if test.addUnit { ntc.Options(gonumbers.Unit(test.unit)) } if test.addSeparator { ntc.Options(gonumbers.Separator(test.separator)) } if test.addDelimiter { ntc.Options(gonumbers.Delimiter(test.delimiter)) } assert(t, test.out, ntc.Perform(test.in)) } }
func Test_ToDelimiter(t *testing.T) { tests := []struct { in float64 addSeparator bool separator string addDelimiter bool delimiter string out string }{ {in: 1234567890, out: "1,234,567,890"}, { in: 1234567890.506, addSeparator: true, separator: ".", addDelimiter: true, delimiter: ",", out: "1,234,567,890.506", }, { in: 1234567890.34, addSeparator: true, separator: "-", addDelimiter: true, delimiter: ":", out: "1:234:567:890-34", }, { in: 1234567890.34, addSeparator: true, separator: ".", addDelimiter: true, delimiter: "", out: "1234567890.34", }, { in: 1234567890.34, addSeparator: true, separator: "", addDelimiter: true, delimiter: "", out: "123456789034", }, } for _, test := range tests { ntd := gonumbers.ToDelimiter() if test.addSeparator { ntd.Options(gonumbers.Separator(test.separator)) } if test.addDelimiter { ntd.Options(gonumbers.Delimiter(test.delimiter)) } assert(t, test.out, ntd.Perform(test.in)) } }
func ExampleToCurrency() { ntc1 := gonumbers.ToCurrency() res1 := ntc1.Perform(1234567890.50) fmt.Println(res1) ntc2 := gonumbers.ToCurrency() ntc2.Options(gonumbers.Precision(2)) res2 := ntc2.Perform(1234567890.506) fmt.Println(res2) ntc3 := gonumbers.ToCurrency() ntc3.Options(gonumbers.Precision(2), gonumbers.Unit("$"), gonumbers.Separator(".")) res3 := ntc3.Perform(1234567890) fmt.Println(res3) ntc4 := gonumbers.ToCurrency() ntc4.Options(gonumbers.Precision(3), gonumbers.Unit("CAD$"), gonumbers.Separator("."), gonumbers.Delimiter(",")) res4 := ntc4.Perform(1234567890.506) fmt.Println(res4) ntc5 := gonumbers.ToCurrency() ntc5.Options(gonumbers.Precision(2), gonumbers.Separator("."), gonumbers.Delimiter("")) res5 := ntc5.Perform(1234567890.50) fmt.Println(res5) ntc6 := gonumbers.ToCurrency() ntc6.Options(gonumbers.Precision(2), gonumbers.Separator(","), gonumbers.Delimiter(".")) res6 := ntc6.Perform(1234567890.506) fmt.Println(res6) // Output: // $1,234,567,890.50 // $1,234,567,890.51 // $1,234,567,890.00 // CAD$1,234,567,890.506 // $1234567890.50 // $1.234.567.890,51 }
func Test_ToPhone(t *testing.T) { ntph_err1 := gonumbers.ToPhone() ntph_err1_resp, err1 := ntph_err1.Perform("good") assert_not(t, nil, err1) contains(t, err1.Error(), "The value should an integer.") assert(t, "", ntph_err1_resp) ntph_err2 := gonumbers.ToPhone() ntph_err2_resp, err2 := ntph_err2.Perform("123abc456") assert_not(t, nil, err2) contains(t, err2.Error(), "The value should an integer.") assert(t, "", ntph_err2_resp) tests := []struct { in interface{} out string delimiter string addDelimiter bool areaCode bool addAreaCode bool extension string addExtension bool countryCode string addCountryCode bool digitsSize int addDigitsSize bool }{ {in: 5551234, out: "555-1234"}, {in: 1235551234, out: "123-555-1234"}, { in: 1235551234, addAreaCode: true, areaCode: true, out: "(123) 555-1234", }, { in: 1235551234, addAreaCode: true, areaCode: true, addCountryCode: true, countryCode: "1", out: "+1(123) 555-1234", }, { in: 1235551234, addCountryCode: true, countryCode: "1", out: "+1-123-555-1234", }, { in: 5551234, addAreaCode: true, areaCode: true, out: "555-1234", }, { in: 1234555556789, addAreaCode: true, areaCode: true, addCountryCode: true, countryCode: "1", addExtension: true, extension: "4545", out: "+1(123455) 555-6789 x 4545", }, { in: 1234555556789, addAreaCode: true, areaCode: true, addCountryCode: true, countryCode: "1", addExtension: true, extension: "4545", addDigitsSize: true, digitsSize: 4, out: "+1(12345) 5555-6789 x 4545", }, { in: 1234555556789, addAreaCode: true, areaCode: true, addCountryCode: true, countryCode: "1", addExtension: true, extension: "4545", addDigitsSize: true, digitsSize: 5, out: "+1(1234) 55555-6789 x 4545", }, { in: 1234555556789, addDelimiter: true, delimiter: ",", addAreaCode: true, areaCode: true, addCountryCode: true, countryCode: "55", addDigitsSize: true, digitsSize: 5, out: "+55(1234) 55555,6789", }, } for _, test := range tests { ntph := gonumbers.ToPhone() if test.addDelimiter { ntph.Options(gonumbers.Delimiter(test.delimiter)) } if test.addAreaCode { ntph.Options(gonumbers.AreaCode(test.areaCode)) } if test.addExtension { ntph.Options(gonumbers.Extension(test.extension)) } if test.addCountryCode { ntph.Options(gonumbers.CountryCode(test.countryCode)) } if test.addDigitsSize { ntph.Options(gonumbers.DigitsSize(test.digitsSize)) } ntph_final, err := ntph.Perform(test.in) assert(t, nil, err) assert(t, test.out, ntph_final) } }
func ExampleToPhone() { ntph1 := gonumbers.ToPhone() resp1, err1 := ntph1.Perform(5551234) if err1 != nil { fmt.Println(err1) } fmt.Println(resp1) ntph2 := gonumbers.ToPhone() resp2, err2 := ntph2.Perform(1235551234) if err2 != nil { fmt.Println(err2) } fmt.Println(resp2) ntph3 := gonumbers.ToPhone() ntph3.Options(gonumbers.AreaCode(true)) resp3, err3 := ntph3.Perform(1235551234) if err3 != nil { fmt.Println(err3) } fmt.Println(resp3) ntph4 := gonumbers.ToPhone() ntph4.Options(gonumbers.AreaCode(true), gonumbers.CountryCode("1")) resp4, err4 := ntph4.Perform(1235551234) if err4 != nil { fmt.Println(err4) } fmt.Println(resp4) ntph5 := gonumbers.ToPhone() ntph5.Options(gonumbers.CountryCode("1")) resp5, err5 := ntph5.Perform(1235551234) if err5 != nil { fmt.Println(err5) } fmt.Println(resp5) ntph6 := gonumbers.ToPhone() ntph6.Options(gonumbers.AreaCode(true), gonumbers.CountryCode("1"), gonumbers.Extension("4545")) resp6, err6 := ntph6.Perform(1235551234) if err6 != nil { fmt.Println(err6) } fmt.Println(resp6) ntph7 := gonumbers.ToPhone() ntph7.Options(gonumbers.AreaCode(true), gonumbers.CountryCode("1"), gonumbers.Extension("4545"), gonumbers.DigitsSize(5)) resp7, err7 := ntph7.Perform(1234555556789) if err7 != nil { fmt.Println(err7) } fmt.Println(resp7) ntph8 := gonumbers.ToPhone() ntph8.Options(gonumbers.AreaCode(true), gonumbers.CountryCode("55"), gonumbers.Delimiter(","), gonumbers.DigitsSize(5)) resp8, err8 := ntph8.Perform(1234555556789) if err8 != nil { fmt.Println(err8) } fmt.Println(resp8) // Output: // 555-1234 // 123-555-1234 // (123) 555-1234 // +1(123) 555-1234 // +1-123-555-1234 // +1(123) 555-1234 x 4545 // +1(1234) 55555-6789 x 4545 // +55(1234) 55555,6789 }
func Test_ToHumanSize(t *testing.T) { nths1 := gonumbers.ToHumanSize() nths1.Options(gonumbers.Prefix("ahhaha")) nths1_final, err1 := nths1.Perform(123) assert_not(t, nil, err1) contains(t, err1.Error(), "Prefix must be binary or si.") assert(t, "", nths1_final) tests := []struct { in float64 addPrecision bool precision int addSeparator bool separator string addDelimiter bool delimiter string addPrefix bool prefix string out string }{ { in: 333, out: "333 Bytes", }, { in: 1234, out: "1.21 KB", }, { in: 1234567890, out: "1.15 GB", }, { in: 1234567, addPrecision: true, precision: 2, out: "1.2 MB", }, { in: 524288000, addPrecision: true, precision: 5, out: "500 MB", }, { in: 1234567, addPrecision: true, precision: 2, addSeparator: true, separator: ",", out: "1,2 MB", }, } for _, test := range tests { nths := gonumbers.ToHumanSize() if test.addPrecision { nths.Options(gonumbers.Precision(test.precision)) } if test.addSeparator { nths.Options(gonumbers.Separator(test.separator)) } if test.addDelimiter { nths.Options(gonumbers.Delimiter(test.delimiter)) } if test.addPrefix { nths.Options(gonumbers.Prefix(test.prefix)) } nths_final, err := nths.Perform(test.in) assert(t, nil, err) assert(t, test.out, nths_final) } }