This repository has been archived by the owner on Nov 20, 2020. It is now read-only.
forked from ewmailing/lua-TestMore
/
015-forlist.t
executable file
·99 lines (82 loc) · 1.8 KB
/
015-forlist.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#! /usr/bin/lua
--
-- lua-TestMore : <http://fperrad.github.com/lua-TestMore/>
--
-- Copyright (C) 2009, Perrad Francois
--
-- This code is licensed under the terms of the MIT/X11 license,
-- like Lua itself.
--
--[[
=head1 Lua for statement
=head2 Synopsis
% prove 015-forlist.t
=head2 Description
See "Lua 5.1 Reference Manual", section 2.4.5 "For Statement",
L<http://www.lua.org/manual/5.1/manual.html#2.4.5>.
See "Programming in Lua", section 4.3 "Control Structures".
=cut
--]]
print("1..18")
a = {"ok 1 - for ipairs", "ok 2 - for ipairs", "ok 3 - for ipairs"}
for _, v in ipairs(a) do
print(v)
end
for i, v in ipairs(a) do
print("ok " .. 3+i .. " - for ipairs")
end
r = false
t = {a=10, b=100}
for i, v in ipairs(t) do
print(i, v)
r = true
end
if r then
print("not ok 7 - for ipairs (hash)")
else
print("ok 7 - for ipairs (hash)")
end
for k in pairs(a) do
print("ok " .. 7+k .. " - for pairs")
end
local i = 1
for k in pairs(t) do
if k == 'a' or k == 'b' then
print("ok " .. 10+i .. " - for pairs (hash)")
else
print("not ok " .. 10+i .. " - " .. k)
end
i = i + 1
end
a = {"ok 13 - for break", "ok 14 - for break", "stop", "more"}
local i
for _, v in ipairs(a) do
if v == "stop" then break end
print(v)
i = _
end
if i == 2 then
print("ok 15 - break")
else
print("not ok 15 - " .. i)
end
local a = {"ok 16 - for & upval", "ok 17 - for & upval", "ok 18 - for & upval"}
local b = {}
for i, v in ipairs(a) do
b[i] = function () return v end
end
for i, v in ipairs(a) do
local r = b[i]()
if r == a[i] then
print(r)
else
print("not " .. a[i])
print("#", r)
end
end
-- Local Variables:
-- mode: lua
-- lua-indent-level: 4
-- fill-column: 100
-- End:
-- vim: ft=lua expandtab shiftwidth=4: