github.com/aavshr/aws-sdk-go@v1.41.3/internal/ini/number_helper_test.go (about)

     1  //go:build go1.7
     2  // +build go1.7
     3  
     4  package ini
     5  
     6  import (
     7  	"testing"
     8  )
     9  
    10  func TestNumberHelper(t *testing.T) {
    11  	cases := []struct {
    12  		b              []rune
    13  		determineIndex int
    14  
    15  		expectedExists   []bool
    16  		expectedErrors   []bool
    17  		expectedCorrects []bool
    18  		expectedNegative bool
    19  		expectedBase     int
    20  	}{
    21  		{
    22  			b:              []rune("-10"),
    23  			determineIndex: 0,
    24  			expectedExists: []bool{
    25  				false,
    26  				false,
    27  				false,
    28  			},
    29  			expectedErrors: []bool{
    30  				false,
    31  				false,
    32  				false,
    33  			},
    34  			expectedCorrects: []bool{
    35  				true,
    36  				true,
    37  				true,
    38  			},
    39  			expectedNegative: true,
    40  			expectedBase:     10,
    41  		},
    42  		{
    43  			b:              []rune("0x10"),
    44  			determineIndex: 1,
    45  			expectedExists: []bool{
    46  				false,
    47  				false,
    48  				true,
    49  				true,
    50  			},
    51  			expectedErrors: []bool{
    52  				false,
    53  				false,
    54  				false,
    55  				false,
    56  			},
    57  			expectedCorrects: []bool{
    58  				true,
    59  				true,
    60  				true,
    61  				true,
    62  			},
    63  			expectedNegative: false,
    64  			expectedBase:     16,
    65  		},
    66  		{
    67  			b:              []rune("0b101"),
    68  			determineIndex: 1,
    69  			expectedExists: []bool{
    70  				false,
    71  				false,
    72  				true,
    73  				true,
    74  				true,
    75  			},
    76  			expectedErrors: []bool{
    77  				false,
    78  				false,
    79  				false,
    80  				false,
    81  				false,
    82  			},
    83  			expectedCorrects: []bool{
    84  				true,
    85  				true,
    86  				true,
    87  				true,
    88  				true,
    89  			},
    90  			expectedNegative: false,
    91  			expectedBase:     2,
    92  		},
    93  		{
    94  			b:              []rune("0o271"),
    95  			determineIndex: 1,
    96  			expectedExists: []bool{
    97  				false,
    98  				false,
    99  				true,
   100  				true,
   101  				true,
   102  			},
   103  			expectedErrors: []bool{
   104  				false,
   105  				false,
   106  				false,
   107  				false,
   108  				false,
   109  			},
   110  			expectedCorrects: []bool{
   111  				true,
   112  				true,
   113  				true,
   114  				true,
   115  				true,
   116  			},
   117  			expectedNegative: false,
   118  			expectedBase:     8,
   119  		},
   120  		{
   121  			b:              []rune("99"),
   122  			determineIndex: -1,
   123  			expectedExists: []bool{
   124  				false,
   125  				false,
   126  			},
   127  			expectedErrors: []bool{
   128  				false,
   129  				false,
   130  			},
   131  			expectedCorrects: []bool{
   132  				true,
   133  				true,
   134  			},
   135  			expectedNegative: false,
   136  			expectedBase:     10,
   137  		},
   138  		{
   139  			b:              []rune("0o2o71"),
   140  			determineIndex: 1,
   141  			expectedExists: []bool{
   142  				false,
   143  				false,
   144  				true,
   145  				true,
   146  				true,
   147  				true,
   148  			},
   149  			expectedErrors: []bool{
   150  				false,
   151  				false,
   152  				false,
   153  				false,
   154  				false,
   155  				true,
   156  			},
   157  			expectedCorrects: []bool{
   158  				true,
   159  				true,
   160  				true,
   161  				false,
   162  				true,
   163  				true,
   164  			},
   165  			expectedNegative: false,
   166  			expectedBase:     8,
   167  		},
   168  	}
   169  
   170  	for _, c := range cases {
   171  		helper := numberHelper{}
   172  
   173  		for i := 0; i < len(c.b); i++ {
   174  			if e, a := c.expectedExists[i], helper.Exists(); e != a {
   175  				t.Errorf("expected %t, but received %t", e, a)
   176  			}
   177  
   178  			if i == c.determineIndex {
   179  				if e, a := c.expectedErrors[i], helper.Determine(c.b[i]) != nil; e != a {
   180  					t.Errorf("expected %t, but received %t", e, a)
   181  				}
   182  			} else {
   183  				if e, a := c.expectedCorrects[i], helper.CorrectByte(c.b[i]); e != a {
   184  					t.Errorf("expected %t, but received %t", e, a)
   185  				}
   186  			}
   187  		}
   188  
   189  		if e, a := c.expectedNegative, helper.IsNegative(); e != a {
   190  			t.Errorf("expected %t, but received %t", e, a)
   191  		}
   192  
   193  		if e, a := c.expectedBase, helper.Base(); e != a {
   194  			t.Errorf("expected %d, but received %d", e, a)
   195  		}
   196  	}
   197  }