Removed unused functionallity, and associated tests.
This commit is contained in:
parent
87b12e15b2
commit
9050d53962
|
@ -119,20 +119,6 @@ local function contains_only_nice_string_keys (t)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local function contains_only_nice_number_indexes (t)
|
|
||||||
-- Predicate: Does t contain only number keys, all of which are integer,
|
|
||||||
-- larger than/equal 1 and less than the maximum index.
|
|
||||||
|
|
||||||
local max_index = largest_number_index(t)
|
|
||||||
for k, v in pairs(t) do
|
|
||||||
if type(k) ~= 'number' or k < 1 or max_index < k or k ~= math.floor(k) then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
return #t > 0
|
|
||||||
end
|
|
||||||
|
|
||||||
local function is_set (t)
|
local function is_set (t)
|
||||||
-- Predicate: Does t contain only boolean values.
|
-- Predicate: Does t contain only boolean values.
|
||||||
local value_types = get_value_types(t)
|
local value_types = get_value_types(t)
|
||||||
|
@ -167,36 +153,6 @@ local function is_tabular (t)
|
||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local is_short_table, is_simple_value
|
|
||||||
|
|
||||||
function is_short_table (value)
|
|
||||||
-- Predicate: value is either an empty table, or one with a single simple
|
|
||||||
-- non-function element.
|
|
||||||
|
|
||||||
if type(value) ~= 'table' then
|
|
||||||
error(('[pretty/internal]: Only tables allowed in function analyze_structure.is_short_table, but was given %s (%s)'):format(value, type(value)), 2)
|
|
||||||
end
|
|
||||||
|
|
||||||
local first_key = next(value, nil)
|
|
||||||
if not first_key then
|
|
||||||
return true
|
|
||||||
elseif not next(value, first_key) == nil then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
|
|
||||||
return type(value[first_key]) ~= 'table'
|
|
||||||
and is_simple_value( value[first_key] )
|
|
||||||
end
|
|
||||||
|
|
||||||
function is_simple_value (value)
|
|
||||||
-- Predicate: value is either nil, a boolean, a number, a short string or a
|
|
||||||
-- short table.
|
|
||||||
|
|
||||||
return SIMPLE_VALUE_TYPES[ type(value) ]
|
|
||||||
or type(value) == 'string' and #value <= SHORT_STRING_MAX_LEN
|
|
||||||
or type(value) == 'table' and is_short_table(value)
|
|
||||||
end
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
local function get_table_info (t)
|
local function get_table_info (t)
|
||||||
|
@ -210,7 +166,6 @@ local function get_table_info (t)
|
||||||
info.has_map = info.map_elems > 0
|
info.has_map = info.map_elems > 0
|
||||||
info.is_set = is_set(t) and info.nr_elems >= MINIMUM_NUMBER_OF_SET_ELEMENTS
|
info.is_set = is_set(t) and info.nr_elems >= MINIMUM_NUMBER_OF_SET_ELEMENTS
|
||||||
info.is_tabular = is_tabular(t)
|
info.is_tabular = is_tabular(t)
|
||||||
info.is_short = is_short_table(t) -- TODO: Remove this. It's not used for anything.
|
|
||||||
|
|
||||||
-- Determine type of table
|
-- Determine type of table
|
||||||
if not info.has_seq and not info.has_map then info.type = TABLE_TYPE.EMPTY
|
if not info.has_seq and not info.has_map then info.type = TABLE_TYPE.EMPTY
|
||||||
|
|
|
@ -125,48 +125,6 @@ SUITE:addTest('Not Tabular, due to varying lengths', function ()
|
||||||
assert(table_info.is_tabular == false)
|
assert(table_info.is_tabular == false)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
SUITE:addTest('Very short/empty table', function ()
|
|
||||||
local input = { }
|
|
||||||
local table_info = analyze_structure(input)[input]
|
|
||||||
|
|
||||||
assert(table_info.is_short == true)
|
|
||||||
end)
|
|
||||||
|
|
||||||
SUITE:addTest('Very short table', function ()
|
|
||||||
local input = { 1 }
|
|
||||||
local table_info = analyze_structure(input)[input]
|
|
||||||
|
|
||||||
assert(table_info.is_short == true)
|
|
||||||
end)
|
|
||||||
|
|
||||||
SUITE:addTest('Recursive tables are not simple', function ()
|
|
||||||
local input = { {} }
|
|
||||||
local table_info = analyze_structure(input)[input]
|
|
||||||
|
|
||||||
assert(table_info.is_short == false)
|
|
||||||
end)
|
|
||||||
|
|
||||||
SUITE:addTest('Short strings are simple', function ()
|
|
||||||
local input = { 'hello' }
|
|
||||||
local table_info = analyze_structure(input)[input]
|
|
||||||
|
|
||||||
assert(table_info.is_short == true)
|
|
||||||
end)
|
|
||||||
|
|
||||||
SUITE:addTest('Long strings are not', function ()
|
|
||||||
local input = { 'hello world' }
|
|
||||||
local table_info = analyze_structure(input)[input]
|
|
||||||
|
|
||||||
assert(table_info.is_short == false)
|
|
||||||
end)
|
|
||||||
|
|
||||||
SUITE:addTest('Even maps can be simple!', function ()
|
|
||||||
local input = { a = 4 }
|
|
||||||
local table_info = analyze_structure(input)[input]
|
|
||||||
|
|
||||||
assert(table_info.is_short == true)
|
|
||||||
end)
|
|
||||||
|
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
-- Corner cases.
|
-- Corner cases.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user