You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
3.1 KiB
114 lines
3.1 KiB
package yabl
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func Test_signedAirTemp8BitTypeHelper_fromBus(t *testing.T) {
|
|
entity := &PeripheryInfo{}
|
|
idx := 2
|
|
value := reflect.ValueOf(entity).Elem().Field(idx)
|
|
|
|
val42 := SignedAirTemp8BitType(42)
|
|
valM15 := SignedAirTemp8BitType(-15)
|
|
|
|
tests := []struct {
|
|
name string
|
|
fHelper fHelper
|
|
arg uint64
|
|
want *SignedAirTemp8BitType
|
|
}{
|
|
{
|
|
name: "SignedAirTemp8BitType positive from bus",
|
|
fHelper: &signedAirTemp8BitTypeHelper{baseTypeHelper{rValue: &value}},
|
|
arg: 42 + 67,
|
|
want: &val42,
|
|
},
|
|
{
|
|
name: "SignedAirTemp8BitType negative from bus",
|
|
fHelper: &signedAirTemp8BitTypeHelper{baseTypeHelper{rValue: &value}},
|
|
arg: -15 + 67,
|
|
want: &valM15,
|
|
},
|
|
{
|
|
name: "SignedAirTemp8BitType null from bus",
|
|
fHelper: &signedAirTemp8BitTypeHelper{baseTypeHelper{rValue: &value}},
|
|
arg: 255,
|
|
want: nil,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := tt.fHelper.fromBus(tt.arg)
|
|
if !(reflect.DeepEqual(got, tt.want) || ((got == nil) && (tt.want == nil))) {
|
|
t.Errorf("fromBus() = %v, want %v", got, tt.want)
|
|
}
|
|
if !(reflect.DeepEqual(entity.TempAirIn, tt.want) || ((entity.TempAirIn == nil) && (tt.want == nil))) {
|
|
t.Errorf("entity.TempAirIn = %v, want %v", entity.TempAirIn, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_signedAirTemp8BitTypeHelper_toBus(t *testing.T) {
|
|
entity := &PeripheryInfo{}
|
|
idx := 2
|
|
value := reflect.ValueOf(entity).Elem().Field(idx)
|
|
|
|
val42 := SignedAirTemp8BitType(42)
|
|
valM15 := SignedAirTemp8BitType(-15)
|
|
|
|
type wants struct {
|
|
bus uint64
|
|
val *SignedAirTemp8BitType
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
fHelper fHelper
|
|
arg any
|
|
want wants
|
|
}{
|
|
{
|
|
name: "SignedAirTemp8BitType from int to bus",
|
|
fHelper: &signedAirTemp8BitTypeHelper{baseTypeHelper{rValue: &value}},
|
|
arg: 42,
|
|
want: wants{bus: 42 + 67, val: &val42},
|
|
},
|
|
{
|
|
name: "SignedAirTemp8BitType from negative int to bus",
|
|
fHelper: &signedAirTemp8BitTypeHelper{baseTypeHelper{rValue: &value}},
|
|
arg: -15,
|
|
want: wants{bus: -15 + 67, val: &valM15}, // uint(-15) | mask
|
|
},
|
|
{
|
|
name: "SignedAirTemp8BitType from negative string to bus",
|
|
fHelper: &signedAirTemp8BitTypeHelper{baseTypeHelper{rValue: &value}},
|
|
arg: "-15",
|
|
want: wants{bus: -15 + 67, val: &valM15}, // uint(-15) | mask
|
|
},
|
|
{
|
|
name: "SignedAirTemp8BitType failed value to bus",
|
|
fHelper: &signedAirTemp8BitTypeHelper{baseTypeHelper{rValue: &value}},
|
|
arg: "fail",
|
|
want: wants{bus: 255, val: nil}, // uint(-15) | mask
|
|
},
|
|
{
|
|
name: "SignedAirTemp8BitType nil value to bus",
|
|
fHelper: &signedAirTemp8BitTypeHelper{baseTypeHelper{rValue: &value}},
|
|
arg: "nil",
|
|
want: wants{bus: 255, val: nil}, // uint(-15) | mask
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
got := tt.fHelper.toBus(tt.arg)
|
|
if !reflect.DeepEqual(got, tt.want.bus) {
|
|
t.Errorf("fromBus() = %v, want %v", got, tt.want.bus)
|
|
}
|
|
if !reflect.DeepEqual(entity.TempAirIn, tt.want.val) {
|
|
t.Errorf("entity.TempAirIn = %v, want %v", entity.TempAirIn, tt.want.val)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|