v/vlib/builtin/int_test.v

159 lines
2.6 KiB
V

const (
a = 3
u = u64(1)
)
fn test_const() {
b := (true && true) || false
assert b == true
assert a == 3
assert u == u64(1)
assert u == 1 // make sure this works without the cast
}
fn test_float_equal_operator() {
mut a := f32(1)
a += 0.000001
a -= 0.000001
assert a == 1
assert !a.eqbit(1)
assert !(a != 1)
assert a.nebit(1)
a += 0.000001
assert !(a < 1)
assert !a.ltbit(1)
assert !(a <= 1)
assert !a.lebit(1)
assert a > 1
assert a.gtbit(1)
assert a >= 1
assert a.gebit(1)
a = f64(1)
a += 0.000001
a -= 0.000001
assert a == 1
assert !a.eqbit(1)
assert !(a != 1)
a += 0.000001
assert !(a < 1)
assert !a.ltbit(1)
assert !(a <= 1)
assert !a.lebit(1)
assert a > 1
assert a.gtbit(1)
assert a >= 1
assert a.gebit(1)
f := 1.2
ab := int(f)
assert ab == 1
}
fn test_str_methods() {
assert i8(1).str() == '1'
assert i8(-1).str() == '-1'
assert i16(1).str() == '1'
assert i16(-1).str() == '-1'
assert int(1).str() == '1'
assert int(-1).str() == '-1'
assert i64(1).str() == '1'
assert i64(-1).str() == '-1'
// assert byte(1).str() == '1'
// assert byte(-1).str() == '255'
assert u16(1).str() == '1'
assert u16(-1).str() == '65535'
assert u32(1).str() == '1'
assert u32(-1).str() == '4294967295'
assert u64(1).str() == '1'
assert u64(-1).str() == '18446744073709551615'
}
fn test_and() {
c:=[1,2,3,4,5]
assert c[0] & 1 != 0
assert c[1] & 1 == 0
assert c[2] & 1 != 0
assert c[3] & 1 == 0
assert c[4] & 1 != 0
}
fn test_i8_print() {
b := i8(0)
println(b)
c := i16(7)
println(c)
d := u16(6)
println(d)
assert true
}
/*
fn test_cmp() {
assert 1 ≠ 2
assert 1 ⩽ 2
assert 1 ⩾ 0
}
*/
type myint int
type mystring string
fn test_int_alias() {
/*
i := myint(2)
s := mystring('hi')
ss := s + '!'
assert i + 10 == 12
*/
}
fn test_hex() {
x := u64(10)
assert x.hex() == 'a'
b := 1234
assert b.hex() == '4d2'
b1 := -1
assert b1.hex() == 'ffffffff'
}
fn test_oct() {
x1 := 0o12
assert x1 == 10
x2 := 00000o350
assert x2 == 232
x3 := 000o00073
assert x3 == 59
x4 := 00000000
assert x4 == 0
x5 := 00000195
assert x5 == 195
x6 := -0o744
assert x6 == -484
x7 := -000o000042
assert x7 == -34
x8 := -0000112
assert x8 == -112
x9 := -000
assert x9 == 0
}
fn test_int_decl() {
x1 := 0
x2 := 1333
x3 := -88955
x4 := 2000000000
x5 := -1999999999
assert typeof(x1) == 'int'
assert typeof(x2) == 'int'
assert typeof(x3) == 'int'
assert typeof(x4) == 'int'
assert typeof(x5) == 'int'
// integers are always 'int' by default
x6 := 989898932113111
x7 := u64(-321314588900011)
assert typeof(x6) == 'int'
assert typeof(x7) == 'u64'
}