summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/lualatex/lua-physical/test/testUnit.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/lualatex/lua-physical/test/testUnit.lua')
-rw-r--r--Master/texmf-dist/doc/lualatex/lua-physical/test/testUnit.lua95
1 files changed, 95 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/lualatex/lua-physical/test/testUnit.lua b/Master/texmf-dist/doc/lualatex/lua-physical/test/testUnit.lua
new file mode 100644
index 00000000000..eb0d67402be
--- /dev/null
+++ b/Master/texmf-dist/doc/lualatex/lua-physical/test/testUnit.lua
@@ -0,0 +1,95 @@
+--[[
+This file contains the unit tests for the physical.Unit class.
+
+Copyright (c) 2020 Thomas Jenni
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+]]--
+
+local lu = require("luaunit")
+
+package.path = "../?.lua;" .. package.path
+local physical = require("physical")
+
+local D = physical.Dimension
+local U = physical.Unit
+
+
+TestUnit = {}
+
+function TestUnit:testNewDefault()
+ local u = U.new()
+ lu.assertEquals(u._term, {{},{}})
+end
+
+function TestUnit:testNewBaseUnit()
+ local _m = U.new("m","meter")
+ lu.assertEquals(_m.symbol, "m")
+ lu.assertEquals(_m.name, "meter")
+end
+
+function TestUnit:testMultiply()
+ local _m = U.new("m","meter")
+
+ local _m2 = _m * _m
+
+ lu.assertEquals(_m2.symbol, nil)
+ lu.assertEquals(_m2.name, nil)
+ lu.assertEquals(_m2._term[1][1][1], _m)
+ lu.assertEquals(_m2._term[1][1][2], 1)
+ lu.assertEquals(_m2._term[1][2][1], _m)
+ lu.assertEquals(_m2._term[1][2][2], 1)
+end
+
+function TestUnit:testDivide()
+ local _m = U.new("m","meter")
+
+ local _m2 = _m / _m
+
+ lu.assertEquals(_m2.symbol, nil)
+ lu.assertEquals(_m2.name, nil)
+ lu.assertEquals(_m2._term[1][1][1], _m)
+ lu.assertEquals(_m2._term[1][1][2], 1)
+ lu.assertEquals(_m2._term[2][1][1], _m)
+ lu.assertEquals(_m2._term[2][1][2], 1)
+end
+
+function TestUnit:testPower()
+ local _m = U.new("m","meter")
+
+ local _m2 = _m^4
+
+ lu.assertEquals(_m2.symbol, nil)
+ lu.assertEquals(_m2.name, nil)
+ lu.assertEquals(_m2._term[1][1][1], _m)
+ lu.assertEquals(_m2._term[1][1][2], 4)
+end
+
+function TestUnit:testNewDerivedUnit()
+ local _m = U.new("m","meter")
+ local _m2 = U.new("m2","squaremeter")
+
+ lu.assertEquals(_m2.symbol, "m2")
+ lu.assertEquals(_m2.name, "squaremeter")
+ lu.assertEquals(_m2._term[1][1][1], _m2)
+ lu.assertEquals(_m2._term[1][1][2], 1)
+end
+
+
+return TestUnit