...
Run Format

Source file src/strconv/atob_test.go

Documentation: strconv

  // Copyright 2009 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package strconv_test
  
  import (
  	"bytes"
  	. "strconv"
  	"testing"
  )
  
  type atobTest struct {
  	in  string
  	out bool
  	err error
  }
  
  var atobtests = []atobTest{
  	{"", false, ErrSyntax},
  	{"asdf", false, ErrSyntax},
  	{"0", false, nil},
  	{"f", false, nil},
  	{"F", false, nil},
  	{"FALSE", false, nil},
  	{"false", false, nil},
  	{"False", false, nil},
  	{"1", true, nil},
  	{"t", true, nil},
  	{"T", true, nil},
  	{"TRUE", true, nil},
  	{"true", true, nil},
  	{"True", true, nil},
  }
  
  func TestParseBool(t *testing.T) {
  	for _, test := range atobtests {
  		b, e := ParseBool(test.in)
  		if test.err != nil {
  			// expect an error
  			if e == nil {
  				t.Errorf("%s: expected %s but got nil", test.in, test.err)
  			} else {
  				// NumError assertion must succeed; it's the only thing we return.
  				if test.err != e.(*NumError).Err {
  					t.Errorf("%s: expected %s but got %s", test.in, test.err, e)
  				}
  			}
  		} else {
  			if e != nil {
  				t.Errorf("%s: expected no error but got %s", test.in, e)
  			}
  			if b != test.out {
  				t.Errorf("%s: expected %t but got %t", test.in, test.out, b)
  			}
  		}
  	}
  }
  
  var boolString = map[bool]string{
  	true:  "true",
  	false: "false",
  }
  
  func TestFormatBool(t *testing.T) {
  	for b, s := range boolString {
  		if f := FormatBool(b); f != s {
  			t.Errorf(`FormatBool(%v): expected %q but got %q`, b, s, f)
  		}
  	}
  }
  
  type appendBoolTest struct {
  	b   bool
  	in  []byte
  	out []byte
  }
  
  var appendBoolTests = []appendBoolTest{
  	{true, []byte("foo "), []byte("foo true")},
  	{false, []byte("foo "), []byte("foo false")},
  }
  
  func TestAppendBool(t *testing.T) {
  	for _, test := range appendBoolTests {
  		b := AppendBool(test.in, test.b)
  		if !bytes.Equal(b, test.out) {
  			t.Errorf("AppendBool(%q, %v): expected %q but got %q", test.in, test.b, test.out, b)
  		}
  	}
  }
  

View as plain text