Implemented numbers with different bases
This commit is contained in:
parent
0e999cae92
commit
6d77a8a120
11 changed files with 165 additions and 12 deletions
|
@ -179,6 +179,71 @@ func TestNegateNumber(t *testing.T) {
|
|||
}
|
||||
}
|
||||
|
||||
func TestBinaryNumber(t *testing.T) {
|
||||
tokens := token.Tokenize([]byte(`0b1010`))
|
||||
|
||||
expected := []token.Kind{
|
||||
token.Number,
|
||||
token.EOF,
|
||||
}
|
||||
|
||||
for i, kind := range expected {
|
||||
assert.Equal(t, tokens[i].Kind, kind)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOctalNumber(t *testing.T) {
|
||||
tokens := token.Tokenize([]byte(`0o755`))
|
||||
|
||||
expected := []token.Kind{
|
||||
token.Number,
|
||||
token.EOF,
|
||||
}
|
||||
|
||||
for i, kind := range expected {
|
||||
assert.Equal(t, tokens[i].Kind, kind)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHexadecimalNumber(t *testing.T) {
|
||||
tokens := token.Tokenize([]byte(`0xCAFE`))
|
||||
|
||||
expected := []token.Kind{
|
||||
token.Number,
|
||||
token.EOF,
|
||||
}
|
||||
|
||||
for i, kind := range expected {
|
||||
assert.Equal(t, tokens[i].Kind, kind)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStandaloneZero(t *testing.T) {
|
||||
tokens := token.Tokenize([]byte(`0`))
|
||||
|
||||
expected := []token.Kind{
|
||||
token.Number,
|
||||
token.EOF,
|
||||
}
|
||||
|
||||
for i, kind := range expected {
|
||||
assert.Equal(t, tokens[i].Kind, kind)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLeadingZero(t *testing.T) {
|
||||
tokens := token.Tokenize([]byte(`0123`))
|
||||
|
||||
expected := []token.Kind{
|
||||
token.Number,
|
||||
token.EOF,
|
||||
}
|
||||
|
||||
for i, kind := range expected {
|
||||
assert.Equal(t, tokens[i].Kind, kind)
|
||||
}
|
||||
}
|
||||
|
||||
func TestOperatorAssign(t *testing.T) {
|
||||
tokens := token.Tokenize([]byte(`a += b -= c *= d /= e &= f |= g ^= h <<= i >>= j`))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue