Hopp til innhold

Modul:Coordinate/testtilfeller

Fra Wikipedia, den frie encyklopedi


local Coordinate = require('Module:Coordinate')
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()

function interp(s, tab)
  return (s:gsub('%%%((%a%w*)%)([-0-9%.]*[cdeEfgGiouxXsq])',
            function(k, fmt) return tab[k] and ("%"..fmt):format(tab[k]) or
                '%('..k..')'..fmt end))
end
getmetatable("").__mod = interp

function suite:testDummy()

    self:assertEquals("a", "b", "%(key)s is %(val)7.2f%" % {key = "concentration", val = 56.2795} )

end

function suite:testParseDecimalWithArcMilliSecondPrecision()
	local frame = self.frame
    local c = Coordinate:new(frame)
    s = c:parseDecimal(60.398545, 1/3600000)

    self:assertEquals(60, s.deg)
    self:assertEquals(23, s.min)
    self:assertEquals(54.762, s.sec)
end

function suite:testParseDecimalWithArcSecondPrecision()
	local frame = self.frame
    local c = Coordinate:new(frame)
    s = c:parseDecimal(60.398545, 1/3600)

    self:assertEquals(60, s.deg)
    self:assertEquals(23, s.min)
    self:assertEquals(55, s.sec)
end

function suite:testParseDecimalWithArcMinutePrecision()
	local frame = self.frame
    local c = Coordinate:new(frame)
    s = c:parseDecimal(60.398545, 1/60)

    self:assertEquals(60, s.deg)
    self:assertEquals(24, s.min)
    self:assertEquals(nil, s.sec)
end

function suite:testParseDecimalWithOneTenthDegreePrecision()
	local frame = self.frame
    local c = Coordinate:new(frame)
    s = c:parseDecimal(60.398545, 1/10)

    self:assertEquals(60, s.deg)
    self:assertEquals(24, s.min)
    self:assertEquals(nil, s.sec)
end

function suite:testParseDecimalWithDegreePrecision()
	local frame = self.frame
    local c = Coordinate:new(frame)
    s = c:parseDecimal(60.398545, 1)

    self:assertEquals(60, s.deg)
    self:assertEquals(nil, s.min)
    self:assertEquals(nil, s.sec)
end

return suite