-
Notifications
You must be signed in to change notification settings - Fork 0
/
convert_test.go
38 lines (33 loc) · 854 Bytes
/
convert_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package units
import (
"github.com/stretchr/testify/require"
"testing"
)
func TestConverter_Incompatible(t *testing.T) {
m1 := NewUnit("m", 1)
m2 := NewUnit("m", 2)
_, err := NewConverter(m1, m2)
require.Error(t, err)
}
func TestConverter_Convert(t *testing.T) {
m := NewUnit("m", 1)
km := m.Multiply(Scalar(1000))
c, err := NewConverter(km, m)
require.NoError(t, err)
require.Equal(t, float64(1000), c.Convert(1))
}
func TestConverter_ConvertPtr(t *testing.T) {
m := NewUnit("m", 1)
km := m.Multiply(Scalar(1000))
c, err := NewConverter(km, m)
require.NoError(t, err)
val := float64(1)
require.Equal(t, float64(1000), *c.ConvertPtr(&val))
}
func TestConverter_ConvertPtr_Nil(t *testing.T) {
u1 := NewUnit("m", 1)
u2 := NewUnit("m", 1)
c, err := NewConverter(u1, u2)
require.NoError(t, err)
require.Nil(t, c.ConvertPtr(nil))
}