Annotate

spec/util_human_io_spec.lua @ 13196:eca44e058eed

util.human.io: Use tail call in test to get correct line numbers This is probably not guaranteed to work and might vary with Lua version, but it's good enough for me to get accurate line numbers out of Busted that don't all point to the test() function.
author Kim Alvefur <zash@zash.se>
date Sun, 16 Jul 2023 18:42:58 +0200
parent 13054:f4d7fe919969
child 13197:6beec4de8e63
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10978
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 describe("util.human.io", function ()
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local human_io
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 setup(function ()
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 human_io = require "util.human.io";
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 end);
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 describe("table", function ()
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 it("alignment works", function ()
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 local row = human_io.table({
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 {
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 width = 3,
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 align = "right"
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 },
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 {
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 width = 3,
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 },
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 });
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 assert.equal(" 1 | . ", row({ 1, "." }));
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 assert.equal(" 10 | .. ", row({ 10, ".." }));
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 assert.equal("100 | ...", row({ 100, "..." }));
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 assert.equal("10… | ..…", row({ 1000, "...." }));
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 end);
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 end);
11896
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
26
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
27 describe("ellipsis", function()
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
28 it("works", function()
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
29 assert.equal("…", human_io.ellipsis("abc", 1));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
30 assert.equal("a…", human_io.ellipsis("abc", 2));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
31 assert.equal("abc", human_io.ellipsis("abc", 3));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
32
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
33 assert.equal("…", human_io.ellipsis("räksmörgås", 1));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
34 assert.equal("r…", human_io.ellipsis("räksmörgås", 2));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
35 assert.equal("rä…", human_io.ellipsis("räksmörgås", 3));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
36 assert.equal("räk…", human_io.ellipsis("räksmörgås", 4));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
37 assert.equal("räks…", human_io.ellipsis("räksmörgås", 5));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
38 assert.equal("räksm…", human_io.ellipsis("räksmörgås", 6));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
39 assert.equal("räksmö…", human_io.ellipsis("räksmörgås", 7));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
40 assert.equal("räksmör…", human_io.ellipsis("räksmörgås", 8));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
41 assert.equal("räksmörg…", human_io.ellipsis("räksmörgås", 9));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
42 assert.equal("räksmörgås", human_io.ellipsis("räksmörgås", 10));
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
43 end);
93e9f7ae2f9b util.human.io: Fix cutting of UTF-8 into pieces
Kim Alvefur <zash@zash.se>
parents: 10978
diff changeset
44 end);
13054
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
45
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
46 describe("parse_duration", function ()
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
47 local function test(expected, duration)
13196
eca44e058eed util.human.io: Use tail call in test to get correct line numbers
Kim Alvefur <zash@zash.se>
parents: 13054
diff changeset
48 return assert.equal(expected, human_io.parse_duration(duration));
13054
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
49 end
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
50 it("works", function ()
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
51 test(1, "1s");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
52 test(60, "1mi");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
53 test(60, "1min");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
54 test(60, "1 min");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
55 test(60, "1 minute");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
56 test(120, "2min");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
57 test(86400, "1d");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
58 test(2678400, "1m");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
59 test(2678400, "1month");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
60 test(2678400, "1 month");
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
61 end);
f4d7fe919969 util.human.io: Add parse_duration() method to parse a duration string
Matthew Wild <mwild1@gmail.com>
parents: 11896
diff changeset
62 end);
10978
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
63 end);
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
64
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
65
4d3247a1f6b3 util.human.io: Add brief test of table generation
Kim Alvefur <zash@zash.se>
parents:
diff changeset
66