package jxutils import ( "fmt" "testing" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/globals/testinit" ) func init() { testinit.Init() } func TestEarthDistance(t *testing.T) { lng1, lat1 := 118.796877, 32.060255 lng2, lat2 := 116.407395, 39.904211 distance := EarthDistance(lng1, lat1, lng2, lat2) fmt.Print(distance) } func TestMapValue2Scope(t *testing.T) { result := MapValue2Scope(-4, -10, 0, 0, 100) if result != 60 { t.Fatalf("result:%d is wrong", result) } result = MapValue2Scope(-4, 0, 10, 0, 100) if result != 0 { t.Fatalf("result:%d is wrong", result) } result = MapValue2Scope(100, 0, 10, 0, 100) if result != 100 { t.Fatalf("result:%d is wrong", result) } } func TestGetNameAndUnitFromSkuName(t *testing.T) { name, unit := GetNameAndUnitFromSkuName("【满59免运】蒜苔肉丝约400g/个(蒜苔约250g 肉丝约150g/份)") if name != "【满59免运】蒜苔肉丝约400g" || unit != "个" { t.Fatalf("TestGetNameAndUnitFromSkuName wrong, name:%s, unit:%s", name, unit) } name, unit = GetNameAndUnitFromSkuName("【满59免运】蒜苔肉丝约400g/g份(蒜苔约250g 肉丝约150g/份)") if name != "【满59免运】蒜苔肉丝约400g" || unit != "g" { t.Fatalf("TestGetNameAndUnitFromSkuName wrong, name:%s, unit:%s", name, unit) } name, unit = GetNameAndUnitFromSkuName("【满59免运】蒜苔肉丝约400g/个") if name != "【满59免运】蒜苔肉丝约400g" || unit != "个" { t.Fatalf("TestGetNameAndUnitFromSkuName wrong, name:%s, unit:%s", name, unit) } name, unit = GetNameAndUnitFromSkuName("【满59免运】蒜苔肉丝约400g/") if name != "【满59免运】蒜苔肉丝约400g" || unit != "份" { t.Fatalf("TestGetNameAndUnitFromSkuName wrong, name:%s, unit:%s", name, unit) } name, unit = GetNameAndUnitFromSkuName("【满59免运】蒜苔肉丝约400g") if name != "【满59免运】蒜苔肉丝约400g" || unit != "份" { t.Fatalf("TestGetNameAndUnitFromSkuName wrong, name:%s, unit:%s", name, unit) } } func TestSplitSkuName(t *testing.T) { prefix, name, comment, specUnit, unit, specQuality := SplitSkuName("[好吃]黄骨鱼约600G/非份(黄辣丁、昂刺鱼)") if prefix != "好吃" || name != "黄骨鱼" || comment != "黄辣丁、昂刺鱼" || specUnit != "g" || unit != "非份" || specQuality != 600 { t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit) } prefix, name, comment, specUnit, unit, specQuality = SplitSkuName("【满59免运】蒜苔肉丝约400g") if prefix != "满59免运" || name != "蒜苔肉丝" || comment != "" || specUnit != "g" || unit != "份" || specQuality != 400 { t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit) } prefix, name, comment, specUnit, unit, specQuality = SplitSkuName("【满59免运】蒜苔肉丝约400.1ML/") if prefix != "满59免运" || name != "蒜苔肉丝" || comment != "" || specUnit != "ml" || unit != "份" || specQuality != 400.1 { t.Fatalf("SplitSkuName wrong, name:%s, unit:%s", name, unit) } } func TestSplitUniversalOrderID(t *testing.T) { testData := [][]interface{}{ []interface{}{ "800402581000221", "800402581000221", model.VendorIDJD, }, []interface{}{ "3022716176275221584" + "|" + utils.Int2Str(model.VendorIDJD), "3022716176275221584", model.VendorIDJD, }, []interface{}{ "3022716176275221584", "3022716176275221584", model.VendorIDELM, }, []interface{}{ "15380342248732", "15380342248732", model.VendorIDEBAI, }, []interface{}{ "33437032333978492", "33437032333978492", model.VendorIDMTWM, }, []interface{}{ "5287873015048", "5287873015048", model.VendorIDWSC, }, } for _, v := range testData { universalOrderID := v[0].(string) desiredOrderID := v[1].(string) desiredVendorID := v[2].(int) orderID, vendorID := SplitUniversalOrderID(universalOrderID) if orderID != desiredOrderID || vendorID != desiredVendorID { t.Fatalf("%s is not ok, orderID:%s, desiredOrderID:%s, vendorID:%d, desiredVendorID:%d", universalOrderID, orderID, desiredOrderID, vendorID, desiredVendorID) } } } func TestGetPossibleVendorIDFromVendorOrderID(t *testing.T) { testData := [][]interface{}{ []interface{}{ "800402581000221", model.VendorIDJD, }, []interface{}{ "X00402581000221", model.VendorIDUnknown, }, []interface{}{ "8004025810002210", model.VendorIDUnknown, }, []interface{}{ "3022716176275221584", model.VendorIDEBAI, }, []interface{}{ "302271617627522158X", model.VendorIDUnknown, }, []interface{}{ "15380342248732", model.VendorIDEBAI, }, []interface{}{ "33437032333978492", model.VendorIDMTWM, }, []interface{}{ "5287873015048", model.VendorIDWSC, }, } for _, v := range testData { universalOrderID := v[0].(string) desiredVendorID := v[1].(int) vendorID := GetPossibleVendorIDFromVendorOrderID(universalOrderID) if vendorID != desiredVendorID { t.Fatalf("%s is not ok, should be:%d, but it's:%d", universalOrderID, desiredVendorID, vendorID) } } } func TestGetLastTimeFromList(t *testing.T) { timeList := []string{ "08:00:00", "23:00:00", } time1 := GetLastTimeFromList(utils.Str2Time("2019-06-17 07:59:59"), timeList) if time1.Sub(utils.Str2Time("2019-06-16 23:00:00")) != 0 { t.Fatal("GetLastTimeFromList wrong1") } time1 = GetLastTimeFromList(utils.Str2Time("2019-06-17 08:59:59"), timeList) if time1.Sub(utils.Str2Time("2019-06-17 08:00:00")) != 0 { t.Fatal("GetLastTimeFromList wrong2") } time1 = GetNextTimeFromList(utils.Str2Time("2019-06-17 08:59:59"), timeList) if time1.Sub(utils.Str2Time("2019-06-17 23:00:00")) != 0 { t.Fatal("GetNextTimeFromList wrong1") } time1 = GetNextTimeFromList(utils.Str2Time("2019-06-17 23:01:59"), timeList) if time1.Sub(utils.Str2Time("2019-06-18 08:00:00")) != 0 { t.Fatal("GetNextTimeFromList wrong2") } }