mirror of
https://github.com/vlang/v.git
synced 2025-09-15 07:22:27 +03:00
checker, cgen: implement methods reverse()/reverse_in_place() for fixed arrays (#22712)
This commit is contained in:
parent
b210278c31
commit
97941b97f8
5 changed files with 105 additions and 2 deletions
52
vlib/builtin/fixed_array_reverse_test.v
Normal file
52
vlib/builtin/fixed_array_reverse_test.v
Normal file
|
@ -0,0 +1,52 @@
|
|||
struct User {
|
||||
age int
|
||||
name string
|
||||
}
|
||||
|
||||
fn test_fixed_array_reverse_in_place() {
|
||||
mut a := ['hi', '1', '5', '3']!
|
||||
a.reverse_in_place()
|
||||
assert a == ['3', '5', '1', 'hi']!
|
||||
|
||||
mut nums := [67, -3, 108, 42, 7]!
|
||||
nums.reverse_in_place()
|
||||
assert nums == [7, 42, 108, -3, 67]!
|
||||
|
||||
mut users := [User{22, 'Peter'}, User{20, 'Bob'}, User{25, 'Alice'}]!
|
||||
users.reverse_in_place()
|
||||
assert users[0].age == 25
|
||||
assert users[1].age == 20
|
||||
assert users[2].age == 22
|
||||
assert users[0].name == 'Alice'
|
||||
assert users[1].name == 'Bob'
|
||||
assert users[2].name == 'Peter'
|
||||
}
|
||||
|
||||
fn test_fixed_array_reverse() {
|
||||
a := ['hi', '1', '5', '3']!
|
||||
b := a.reverse()
|
||||
assert a == ['hi', '1', '5', '3']!
|
||||
assert b == ['3', '5', '1', 'hi']!
|
||||
|
||||
mut nums := [67, -3, 108, 42, 7]!
|
||||
n := nums.reverse()
|
||||
assert nums == [67, -3, 108, 42, 7]!
|
||||
assert n == [7, 42, 108, -3, 67]!
|
||||
|
||||
mut users := [User{22, 'Peter'}, User{20, 'Bob'}, User{25, 'Alice'}]!
|
||||
u := users.reverse()
|
||||
|
||||
assert users[0].age == 22
|
||||
assert users[1].age == 20
|
||||
assert users[2].age == 25
|
||||
assert users[0].name == 'Peter'
|
||||
assert users[1].name == 'Bob'
|
||||
assert users[2].name == 'Alice'
|
||||
|
||||
assert u[0].age == 25
|
||||
assert u[1].age == 20
|
||||
assert u[2].age == 22
|
||||
assert u[0].name == 'Alice'
|
||||
assert u[1].name == 'Bob'
|
||||
assert u[2].name == 'Peter'
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue