|
|
|
package common_utils
|
|
|
|
|
|
|
|
import (
|
|
|
|
"encoding/json"
|
|
|
|
"fmt"
|
|
|
|
"gitea.anxinyun.cn/container/common_calc"
|
|
|
|
"gitea.anxinyun.cn/container/common_models"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"log"
|
|
|
|
//"strings"
|
|
|
|
"testing"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
func Test_maxMin(t *testing.T) {
|
|
|
|
|
|
|
|
d := []float64{2.1, 3.1, 1.1, 5.1, 8.1, 7.1, 6.1}
|
|
|
|
_min, _max := common_calc.MinMax(d)
|
|
|
|
_basMax := common_calc.AbsMax(d)
|
|
|
|
println(_min, _max, _basMax)
|
|
|
|
}
|
|
|
|
|
|
|
|
func Test_uuid(t *testing.T) {
|
|
|
|
//createNativeRaw := common_models.EsRaw{
|
|
|
|
// StructId: 1,
|
|
|
|
// IotaDeviceName: "设备2",
|
|
|
|
// ThemeData: map[string]any{"temperature": 2.1, "humidity": 2.222},
|
|
|
|
// CollectTime: time.Now(),
|
|
|
|
// Meta: map[string]string{"temperature": "温度", "humidity": "湿度"},
|
|
|
|
// IotaDevice: "id_2",
|
|
|
|
// CreateTime: time.Now(),
|
|
|
|
//}
|
|
|
|
|
|
|
|
//rawStr := "94509763-bd66-4c53-9f0c-1bf9402ada9e-1710131814289"
|
|
|
|
//uid := uuidFromString(rawStr)
|
|
|
|
//println(uid)
|
|
|
|
|
|
|
|
//89d375ed-31ec-4759-a573-250f69fd204f-1666141882011 => uuid -> 81d8bcb0-c22a-366f-af0b-dcc1d7f5f8e4
|
|
|
|
//94509763-bd66-4c53-9f0c-1bf9402ada9e-1666141882011 -> uuid -> ce6ce4c1-8443-3f21-9fa1-6beb625e1504
|
|
|
|
rawStr := "94509763-bd66-4c53-9f0c-1bf9402ada9e-1666141882011"
|
|
|
|
println(common_calc.UUIDFromString(rawStr))
|
|
|
|
println("==============")
|
|
|
|
//uu, er := uuid.FromString("81d8bcb0-c22a-366f-af0b-dcc1d7f5f8e4")
|
|
|
|
//println(uu.String(), er)
|
|
|
|
//byteName := []byte("81d8bcb0-c22a-366f-af0b-dcc1d7f5f8e4")
|
|
|
|
//uu1, er1 := uuid.FromBytes(byteName)
|
|
|
|
//println(uu1.String(), er1)
|
|
|
|
|
|
|
|
}
|
|
|
|
func Test_uuid2(t *testing.T) {
|
|
|
|
|
|
|
|
//9c94a305-dd18-4809-8fc6-4191c699e726-1711587207244 -> uuid -> a167ece7-ecd6-3dd1-9d44-691f42f27798
|
|
|
|
rawStr := "9c94a305-dd18-4809-8fc6-4191c699e726-1711587207244"
|
|
|
|
println(common_calc.NameUUIDFromString(rawStr))
|
|
|
|
println("==============")
|
|
|
|
|
|
|
|
}
|
|
|
|
func TestRedisGet(t *testing.T) {
|
|
|
|
r := NewRedisHelper("", "10.8.30.160:30379")
|
|
|
|
key := "iota_meta:003540d0-616c-4611-92c1-1cd31005eabf"
|
|
|
|
v := r.Get(key)
|
|
|
|
println(v)
|
|
|
|
}
|
|
|
|
func TestRedisHMGet(t *testing.T) {
|
|
|
|
r := NewRedisHelper("", "10.8.30.160:30379")
|
|
|
|
key := "cache_filter:198"
|
|
|
|
field := "temperature"
|
|
|
|
|
|
|
|
//cc := common_models.FilterTp{}
|
|
|
|
var cc []common_models.AnalyzeData
|
|
|
|
err := r.HMGetObj(&cc, key, field)
|
|
|
|
if err != nil {
|
|
|
|
println(err.Error())
|
|
|
|
}
|
|
|
|
println("=====")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetIotaDevice(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
key := "1f2ebeac-c8b2-4abd-8706-470e5dfc8542"
|
|
|
|
v, r := cf.GetIotaDevice(key)
|
|
|
|
if r != nil {
|
|
|
|
fmt.Printf("%+v\n", r)
|
|
|
|
} else {
|
|
|
|
fmt.Printf("%+v\n", v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetStructure(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
key := "5da9aa1b-05b7-4943-be57-dedb34f7a1bd"
|
|
|
|
v, r := cf.GetThingStruct(key)
|
|
|
|
if r != nil {
|
|
|
|
fmt.Printf("%+v\n", r)
|
|
|
|
} else {
|
|
|
|
fmt.Printf("%+v\n", v)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetStationThreshold
|
|
|
|
func TestConfigHelper_GetStationThreshold(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
threshold, err := cf.GetStationThreshold(198)
|
|
|
|
if err == nil {
|
|
|
|
fmt.Printf("%+v\n", threshold)
|
|
|
|
} else {
|
|
|
|
fmt.Printf("%+v\n", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetStationGroup
|
|
|
|
func TestConfigHelper_GetStationGroup(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
model, err := cf.GetStationGroup(36)
|
|
|
|
if err == nil {
|
|
|
|
fmt.Printf("%+v\n", model)
|
|
|
|
} else {
|
|
|
|
fmt.Printf("%+v\n", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetStationGroupInfo(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
model, err := cf.GetStationGroupInfo(193)
|
|
|
|
if err == nil {
|
|
|
|
fmt.Printf("%+v\n", model)
|
|
|
|
} else {
|
|
|
|
fmt.Printf("%+v\n", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
//func TestConfigHelper_GetStationCorrGroup(t *testing.T) {
|
|
|
|
// var cf = NewConfigHelper("10.8.30.160:30379")
|
|
|
|
// model, err := cf.GetStationCorrGroup(193)
|
|
|
|
// if err == nil {
|
|
|
|
// fmt.Printf("%+v\n", model)
|
|
|
|
// } else {
|
|
|
|
// fmt.Printf("%+v\n", err)
|
|
|
|
// }
|
|
|
|
//}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetIotaScheme(t *testing.T) {
|
|
|
|
// scheme:01dc6242-84ab-4690-b640-8c21cdffcf39
|
|
|
|
var cf = NewConfigHelper("10.8.30.160:30379")
|
|
|
|
model, err := cf.GetIotaScheme("01dc6242-84ab-4690-b640-8c21cdffcf39")
|
|
|
|
if err == nil {
|
|
|
|
fmt.Printf("%+v\n", model)
|
|
|
|
} else {
|
|
|
|
fmt.Printf("%+v\n", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetIotaScheme2(t *testing.T) {
|
|
|
|
formattedStr := `{"id":"f65e5990-540d-40ff-9056-af775e5e4c56","name":"G07下游-静力","mode":"R","interval":1,"unit":"second","beginTime":"2023-08-10T16:45:35.244+08:00","endTime":null,"dimension":{"id":"f65e5990-540d-40ff-9056-af775e5e4c56","thingId":"8e3eec71-c924-47fd-ac8b-2f28c49ad4e9","name":"G07下游-静力"}}`
|
|
|
|
var scheme common_models.IotaScheme
|
|
|
|
err := json.Unmarshal([]byte(formattedStr), &scheme)
|
|
|
|
if err != nil {
|
|
|
|
log.Printf("【GetIotaScheme】json unmarshal error:%s \n", err.Error())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetStationFilter(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
Filter, err := cf.GetFilter(198)
|
|
|
|
if err == nil {
|
|
|
|
fmt.Printf("%+v\n", Filter)
|
|
|
|
} else {
|
|
|
|
fmt.Printf("%+v\n", err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetDeviceInfo(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
key := "1f2ebeac-c8b2-4abd-8706-470e5dfc8542"
|
|
|
|
device, err := cf.GetIotaDevice(key)
|
|
|
|
if err == nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
thingStruct, err := cf.GetThingStruct(device.ThingId)
|
|
|
|
if err != nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
iotaMeta, err := cf.GetIotaMeta(key)
|
|
|
|
if err != nil {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
s := common_models.Structure{
|
|
|
|
ThingId: thingStruct.ThingId,
|
|
|
|
Id: thingStruct.Id,
|
|
|
|
Name: thingStruct.Name,
|
|
|
|
SType: thingStruct.Type,
|
|
|
|
OrgId: thingStruct.OrgId,
|
|
|
|
Latitude: 0,
|
|
|
|
Longitude: 0,
|
|
|
|
}
|
|
|
|
|
|
|
|
deviceInfo := common_models.DeviceInfo{
|
|
|
|
Id: device.Id,
|
|
|
|
Name: device.Name,
|
|
|
|
Structure: s,
|
|
|
|
DeviceMeta: iotaMeta,
|
|
|
|
}
|
|
|
|
log.Printf("%v", deviceInfo)
|
|
|
|
//return deviceInfo
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetSubDeviceNext(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
//dtuId
|
|
|
|
dtuId := "55f1a93e-f5f5-4d62-baa9-3014d7cfcfd8"
|
|
|
|
thingId := "5da9aa1b-05b7-4943-be57-dedb34f7a1bd"
|
|
|
|
dtuSubs := cf.GetSubDeviceNext(dtuId, thingId)
|
|
|
|
println(dtuSubs)
|
|
|
|
iotaId := "c919fa99-1b95-4bc1-a427-2f26dfacc2da"
|
|
|
|
subs := cf.GetSubDeviceNext(iotaId, thingId)
|
|
|
|
println(subs)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetSubDeviceAll(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
//dtuId
|
|
|
|
dtuId := "55f1a93e-f5f5-4d62-baa9-3014d7cfcfd8"
|
|
|
|
thingId := "5da9aa1b-05b7-4943-be57-dedb34f7a1bd"
|
|
|
|
dtuSubs := cf.GetSubDeviceAll(dtuId, thingId)
|
|
|
|
println(dtuSubs)
|
|
|
|
iotaId := "c919fa99-1b95-4bc1-a427-2f26dfacc2da"
|
|
|
|
subs := cf.GetSubDeviceAll(iotaId, thingId)
|
|
|
|
println(subs)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetDeviceFactorProto(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
//device-proto:4004:7efbc3e8-ff6b-433b-9041-c76b9df89644
|
|
|
|
factorProtoId := "4004"
|
|
|
|
deviceMetaId := "7efbc3e8-ff6b-433b-9041-c76b9df89644"
|
|
|
|
dp, err := cf.GetDeviceFactorProto(factorProtoId, deviceMetaId)
|
|
|
|
|
|
|
|
log.Println(dp, err)
|
|
|
|
//GetDeviceFactorProto
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetTransform_units(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
dp, err := cf.GetDataUnit()
|
|
|
|
|
|
|
|
units := map[string][]common_models.DataUnit{}
|
|
|
|
for _, unit := range dp {
|
|
|
|
groupK := unit.Dimension
|
|
|
|
if _, ok := units[groupK]; ok {
|
|
|
|
units[groupK] = append(units[groupK], unit)
|
|
|
|
} else {
|
|
|
|
units[groupK] = []common_models.DataUnit{unit}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
log.Println(dp, err)
|
|
|
|
//GetDeviceFactorProto
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_GetFactorInfo(t *testing.T) {
|
|
|
|
cf := NewConfigHelper("10.8.30.160:30379")
|
|
|
|
|
|
|
|
// 测试存在的 factor
|
|
|
|
factor, err := cf.GetFactorInfo(11)
|
|
|
|
log.Println(factor, err)
|
|
|
|
assert.Equal(t, 11, factor.Id)
|
|
|
|
|
|
|
|
// 测试获取不存在的 factor
|
|
|
|
factor_nil, err := cf.GetFactorInfo(1111)
|
|
|
|
assert.Nil(t, factor_nil.Items)
|
|
|
|
|
|
|
|
// 测试获取存在的 station
|
|
|
|
station, err := cf.getStation(1)
|
|
|
|
log.Println(station, err)
|
|
|
|
assert.NotEqual(t, 0, station.Info.Id)
|
|
|
|
|
|
|
|
// 测试获取多个测点
|
|
|
|
stations, err := cf.GetStations(106, 1111)
|
|
|
|
log.Println(stations, err)
|
|
|
|
assert.Equal(t, 2, len(stations))
|
|
|
|
|
|
|
|
// 测试获取不存在的变化速率阈值
|
|
|
|
aggThreshold_notExist, err := cf.GetAggThreshold(1, 12)
|
|
|
|
assert.Nil(t, aggThreshold_notExist.Items)
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestConfigHelper_SetMap(t *testing.T) {
|
|
|
|
redisAddr := "10.8.30.160:30379"
|
|
|
|
cf := NewConfigHelper(redisAddr)
|
|
|
|
key := "cache_filter:500"
|
|
|
|
m := map[string]float64{"v1": 20, "v2": 30}
|
|
|
|
err := cf.SetChainedCacheObj(key, m)
|
|
|
|
log.Println(err)
|
|
|
|
time.Sleep(time.Second * 2)
|
|
|
|
println("=========")
|
|
|
|
}
|