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.
 
 
 

34 lines
677 B

  1. // +build go1.2
  2. package inf
  3. import (
  4. "encoding"
  5. "encoding/json"
  6. "testing"
  7. )
  8. var _ encoding.TextMarshaler = new(Dec)
  9. var _ encoding.TextUnmarshaler = new(Dec)
  10. type Obj struct {
  11. Val *Dec
  12. }
  13. func TestDecJsonMarshalUnmarshal(t *testing.T) {
  14. o := Obj{Val: NewDec(123, 2)}
  15. js, err := json.Marshal(o)
  16. if err != nil {
  17. t.Fatalf("json.Marshal(%v): got %v, want ok", o, err)
  18. }
  19. o2 := &Obj{}
  20. err = json.Unmarshal(js, o2)
  21. if err != nil {
  22. t.Fatalf("json.Unmarshal(%#q): got %v, want ok", js, err)
  23. }
  24. if o.Val.Scale() != o2.Val.Scale() ||
  25. o.Val.UnscaledBig().Cmp(o2.Val.UnscaledBig()) != 0 {
  26. t.Fatalf("json.Unmarshal(json.Marshal(%v)): want %v, got %v", o, o, o2)
  27. }
  28. }