File

spec/util_human_units_spec.lua @ 10973:39991e40d1dc

util.dbuffer: dynamic string buffer Similar to util.ringbuffer (and shares almost identical API). Differences: - size limit is optional and dynamic - does not allocate a fixed buffer of max_size bytes - focus on simply storing references to existing string objects where possible, avoiding unnecessary allocations - references are still stored in a ring buffer to enable use as a fast FIFO Optional second parameter to new() provides the number of ring buffer segments. On Lua 5.2 on my laptop, a segment is ~19 bytes. If the ring buffer fills up, the next write will compact all strings into a single item.
author Matthew Wild <mwild1@gmail.com>
date Fri, 26 Jun 2020 16:41:31 +0100
parent 10886:994c4a333199
line wrap: on
line source

local units = require "util.human.units";

describe("util.human.units", function ()
	describe("format", function ()
		it("formats numbers with SI units", function ()
			assert.equal("1 km", units.format(1000, "m"));
			assert.equal("1 GJ", units.format(1000000000, "J"));
			assert.equal("1 ms", units.format(1/1000, "s"));
			assert.equal("10 ms", units.format(10/1000, "s"));
			assert.equal("1 ns", units.format(1/1000000000, "s"));
			assert.equal("1 KiB", units.format(1024, "B", 'b'));
			assert.equal("1 MiB", units.format(1024*1024, "B", 'b'));
		end);
	end);
end);