teal-src/util/mathcompat.tl
author Kim Alvefur <zash@zash.se>
Thu, 20 Oct 2022 16:50:12 +0200
changeset 12786 8815d3090928
permissions -rw-r--r--
util.mathcompat: Module to ease reuse of math.type() Mostly to ensure it is available during tests, as util.startup is not invoked there
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12786
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
if not math.type then
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
	local enum number_subtype
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
		"float" "integer"
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
	end
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
	local function math_type(t:any) : number_subtype
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
		if t is number then
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
			if t % 1 == 0 and t ~= t+1 and t ~= t-1 then
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
				return "integer"
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
			else
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
				return "float"
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
			end
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
		end
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
	end
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
	_G.math.type = math_type
8815d3090928 util.mathcompat: Module to ease reuse of math.type()
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
end