Annotate

spec/util_iterators_spec.lua @ 10825:2d002a4af144

mod_csi_simple: Fix flushing when client sent something Forgot to unset the flag afterwards, so it would only work once. The flag is not even needed, it works as intended without it.
author Kim Alvefur <zash@zash.se>
date Sat, 09 May 2020 13:50:58 +0200
parent 9328:a9592107021b
child 12744:e894677359e5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8802
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
1 local iter = require "util.iterators";
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
2
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
3 describe("util.iterators", function ()
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
4 describe("join", function ()
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
5 it("should produce a joined iterator", function ()
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
6 local expect = { "a", "b", "c", 1, 2, 3 };
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
7 local output = {};
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
8 for x in iter.join(iter.values({"a", "b", "c"})):append(iter.values({1, 2, 3})) do
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
9 table.insert(output, x);
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
10 end
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
11 assert.same(output, expect);
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
12 end);
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
13 end);
9327
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
14
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
15 describe("sorted_pairs", function ()
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
16 it("should produce sorted pairs", function ()
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
17 local orig = { b = 1, c = 2, a = "foo", d = false };
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
18 local n, last_key = 0, nil;
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
19 for k, v in iter.sorted_pairs(orig) do
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
20 n = n + 1;
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
21 if last_key then
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
22 assert(k > last_key, "Expected "..k.." > "..last_key)
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
23 end
9328
a9592107021b util.iterators tests: Check value matches expected [luacheck]
Matthew Wild <mwild1@gmail.com>
parents: 9327
diff changeset
24 assert.equal(orig[k], v);
9327
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
25 last_key = k;
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
26 end
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
27 assert.equal("d", last_key);
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
28 assert.equal(4, n);
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
29 end);
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
30
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
31 it("should allow a custom sort function", function ()
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
32 local orig = { b = 1, c = 2, a = "foo", d = false };
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
33 local n, last_key = 0, nil;
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
34 for k, v in iter.sorted_pairs(orig, function (a, b) return a > b end) do
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
35 n = n + 1;
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
36 if last_key then
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
37 assert(k < last_key, "Expected "..k.." > "..last_key)
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
38 end
9328
a9592107021b util.iterators tests: Check value matches expected [luacheck]
Matthew Wild <mwild1@gmail.com>
parents: 9327
diff changeset
39 assert.equal(orig[k], v);
9327
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
40 last_key = k;
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
41 end
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
42 assert.equal("a", last_key);
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
43 assert.equal(4, n);
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
44 end);
f6f1dec164b5 util.iterators: Add sorted_pairs() method
Matthew Wild <mwild1@gmail.com>
parents: 8805
diff changeset
45 end);
8802
befffddf1b25 Fix wrong tests committed with 7b621a4a2e8d
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
46 end);