github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/text/encoding/simplifiedchinese/all_test.go (about)

     1  // Copyright 2015 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package simplifiedchinese
     6  
     7  import (
     8  	"testing"
     9  
    10  	"golang.org/x/text/encoding"
    11  	"golang.org/x/text/encoding/internal"
    12  	"golang.org/x/text/transform"
    13  )
    14  
    15  func dec(e encoding.Encoding) (dir string, t transform.Transformer, err error) {
    16  	return "Decode", e.NewDecoder(), nil
    17  }
    18  func enc(e encoding.Encoding) (dir string, t transform.Transformer, err error) {
    19  	return "Encode", e.NewEncoder(), internal.ErrASCIIReplacement
    20  }
    21  
    22  func TestNonRepertoire(t *testing.T) {
    23  	testCases := []struct {
    24  		init      func(e encoding.Encoding) (string, transform.Transformer, error)
    25  		e         encoding.Encoding
    26  		src, want string
    27  	}{
    28  		{dec, GBK, "a\xfe\xfeb", "a\ufffdb"},
    29  		{dec, HZGB2312, "~{z~", "\ufffd"},
    30  
    31  		{enc, GBK, "갂", ""},
    32  		{enc, GBK, "a갂", "a"},
    33  		{enc, GBK, "\u4e02갂", "\x81@"},
    34  
    35  		{enc, HZGB2312, "갂", ""},
    36  		{enc, HZGB2312, "a갂", "a"},
    37  		{enc, HZGB2312, "\u6cf5갂", "~{1C~}"},
    38  	}
    39  	for _, tc := range testCases {
    40  		dir, tr, wantErr := tc.init(tc.e)
    41  
    42  		dst, _, err := transform.String(tr, tc.src)
    43  		if err != wantErr {
    44  			t.Errorf("%s %v(%q): got %v; want %v", dir, tc.e, tc.src, err, wantErr)
    45  		}
    46  		if got := string(dst); got != tc.want {
    47  			t.Errorf("%s %v(%q):\ngot  %q\nwant %q", dir, tc.e, tc.src, got, tc.want)
    48  		}
    49  	}
    50  }