EdgexAgent/device-gps-go/internal/transformer/transformvaluechecker_test.go
2025-07-10 20:30:06 +08:00

64 lines
3.0 KiB
Go

// -*- Mode: Go; indent-tabs-mode: t -*-
//
// Copyright (C) 2019-2021 IOTech Ltd
//
// SPDX-License-Identifier: Apache-2.0
package transformer
import (
"math"
"testing"
"github.com/stretchr/testify/assert"
)
func Test_checkTransformedValueInRange(t *testing.T) {
var tests = []struct {
name string
origin interface{}
transformed float64
expected bool
}{
{"valid - uint8 in range", uint8(10), float64(math.MaxUint8), true},
{"invalid - uint8 out of range", uint8(10), float64(math.MaxUint8 + 1), false},
{"invalid - uint8 transformed to float", uint8(10), float64(123.456), false},
{"invalid - uint8 transformed to signed number", uint8(10), float64(-123), false},
{"valid - uint16 in range", uint16(10), float64(math.MaxUint16), true},
{"invalid - uint16 out of range", uint16(10), float64(math.MaxUint16 + 1), false},
{"invalid - uint16 transformed to float", uint16(10), float64(123.456), false},
{"invalid - uint16 transformed to signed number", uint16(10), float64(-123), false},
{"valid - uint32 in range", uint32(10), float64(math.MaxUint32), true},
{"invalid - uint32 out of range", uint32(10), float64(math.MaxUint32 + 1), false},
{"invalid - uint32 transformed to float", uint32(10), float64(123.456), false},
{"invalid - uint32 transformed to signed number", uint32(10), float64(-123), false},
{"valid - uint64 in range", uint64(10), float64(math.MaxUint64), true},
{"invalid - uint64 out of range", uint64(10), float64(math.MaxUint64 * 2), false},
{"invalid - uint64 transformed to float", uint64(10), float64(123.456), false},
{"invalid - uint64 transformed to signed number", uint64(10), float64(-123), false},
{"valid - int8 in range", int8(10), float64(math.MaxInt8), true},
{"invalid - int8 out of range", int8(10), float64(math.MaxInt8 + 1), false},
{"invalid - int8 transformed to float", int8(10), float64(-123.456), false},
{"valid - int16 in range", int16(10), float64(math.MaxInt16), true},
{"invalid - int16 out of range", int16(10), float64(math.MaxInt16 + 1), false},
{"invalid - int16 transformed to float", int16(10), float64(-123.456), false},
{"valid - int32 in range", int32(10), float64(math.MaxInt32), true},
{"invalid - int32 out of range", int32(10), float64(math.MaxInt32 + 1), false},
{"invalid - int32 transformed to float", int32(10), float64(-123.456), false},
{"valid - int64 in range", int64(10), float64(math.MaxInt64), true},
{"invalid - int64 out of range", int64(10), float64(math.MaxUint64), false},
{"invalid - int64 transformed to float", int64(10), float64(-123.456), false},
{"valid - float32 in range", float32(10), float64(math.MaxFloat32), true},
{"invalid - float32 out of range", float32(10), float64(math.MaxFloat32 * 2), false},
{"valid - float64 in range", float64(10), float64(math.MaxFloat64), true},
{"invalid - unsupported origin value type", "invalid", float64(0), false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
res := checkTransformedValueInRange(tt.origin, tt.transformed)
assert.Equal(t, tt.expected, res)
})
}
}