Codebase list golang-gopkg-asn1-ber.v1 / debian/latest real_test.go
debian/latest

Tree @debian/latest (Download .tar.gz)

real_test.go @debian/latestraw · history · blame

package ber

import (
	"math"
	"testing"
)

var negativeZero = math.Copysign(0, -1)

func TestRealEncoding(t *testing.T) {
	for _, value := range []float64{
		0.15625,
		-0.15625,
		math.Inf(1),
		math.Inf(-1),
		math.NaN(),
		negativeZero,
		0.0,
	} {
		enc := encodeFloat(value)
		dec, err := ParseReal(enc)
		if err != nil {
			t.Errorf("Failed to decode %f (%v): %s", value, enc, err)
		}
		if dec != value {
			if !(math.IsNaN(dec) && math.IsNaN(value)) {
				t.Errorf("decoded value != orig: %f <=> %f", value, dec)
			}
		}
	}
}