unsound = import "unsound" unsound.pyexec(""" kg = Dimension(1) m = Dimension(1) s = Dimension(1) a = Dimension(1) k = Dimension(1) mol = Dimension(1) cd = Dimension(1) """) .kg = unsound.pyeval("kg") .m = unsound.pyeval("m") .s = unsound.pyeval("s") .a = unsound.pyeval("a") .k = unsound.pyeval("k") .mol = unsound.pyeval("mol") .cd = unsound.pyeval("cd") .meter = .m .sec = .s .ampere = .a .kelvin = .k .candela = .cd assert .kg in Dimension(Int, 1, 0, 0, 0, 0, 0, 0) assert .m in Dimension(Int, 0, 1, 0, 0, 0, 0, 0) assert .s in Dimension(Int, 0, 0, 1, 0, 0, 0, 0) assert .a in Dimension(Int, 0, 0, 0, 1, 0, 0, 0) assert .k in Dimension(Int, 0, 0, 0, 0, 1, 0, 0) assert .mol in Dimension(Int, 0, 0, 0, 0, 0, 1, 0) assert .cd in Dimension(Int, 0, 0, 0, 0, 0, 0, 1) assert .meter in Dimension(Int, 0, 1, 0, 0, 0, 0, 0) assert .sec in Dimension(Int, 0, 0, 1, 0, 0, 0, 0) assert .ampere in Dimension(Int, 0, 0, 0, 1, 0, 0, 0) assert .kelvin in Dimension(Int, 0, 0, 0, 0, 1, 0, 0) assert .candela in Dimension(Int, 0, 0, 0, 0, 0, 0, 1) # Base unit types ''' Kilogram ''' .Kg = Dimension(Int, 1, 0, 0, 0, 0, 0, 0) ''' Meter ''' .M = Dimension(Int, 0, 1, 0, 0, 0, 0, 0) .Meter = .M ''' Second ''' .S = Dimension(Int, 0, 0, 1, 0, 0, 0, 0) .Sec = .S ''' Ampere ''' .A = Dimension(Int, 0, 0, 0, 1, 0, 0, 0) .Ampere = .A ''' Kelvin ''' .K = Dimension(Int, 0, 0, 0, 0, 1, 0, 0) .Kelvin = .K .Mol = Dimension(Int, 0, 0, 0, 0, 0, 1, 0) ''' Candela ''' .Cd = Dimension(Int, 0, 0, 0, 0, 0, 0, 1) .Candela = .Cd # Derived unit types .Hz = Dimension(Int, 0, 0, -1, 0, 0, 0, 0) .Hertz = .Hz .J = Dimension(Int, 1, 2, -2, 0, 0, 0, 0) .Joule = .J .N = Dimension(Int, 1, 1, -2, 0, 0, 0, 0) .Newton = .N .Pa = Dimension(Int, 1, -1, -2, 0, 0, 0, 0) .Pascal = .Pa .W = Dimension(Int, 1, 2, -3, 0, 0, 0, 0) .Watt = .W .C = Dimension(Int, 0, 0, 1, 1, 0, 0, 0) .Coulomb = .C .V = Dimension(Int, 1, 2, -3, -1, 0, 0, 0) .Volt = .V .F = Dimension(Int, -1, -2, 4, 2, 0, 0, 0) .Farad = .F .Ohm = Dimension(Int, 1, 2, -3, -2, 0, 0, 0) .Siemens = Dimension(Int, -1, -2, 3, 2, 0, 0, 0) .Wb = Dimension(Int, 1, 2, -2, -1, 0, 0, 0) .Weber = .Wb .Tesla = Dimension(Int, 1, 0, -2, -1, 0, 0, 0) .Henry = Dimension(Int, 1, 2, -2, -2, 0, 0, 0) .Bq = Dimension(Int, 0, 0, -1, 0, 0, 0, 0) .Becquerel = .Bq .Gy = Dimension(Int, 2, 0, -2, 0, 0, 0, 0) .Gray = .Gy .Sv = Dimension(Int, 2, 0, -2, 0, 0, 0, 0) .Sievert = .Sv .Kat = Dimension(Int, 0, 0, -1, 0, 0, 1, 0) .Katal = .Kat .quecto = 1e-30 .ronto = 1e-27 .yocto = 1e-24 .zepto = 1e-21 .atto = 1e-18 .femto = 1e-15 .pico = 1e-12 .nano = 1e-9 .micro = 1e-6 .milli = 1e-3 .centi = 1e-2 .deci = 1e-1 .deca = 1e+1 .hecto = 1e+2 .kilo = 1e+3 .mega = 1e+6 .giga = 1e+9 .tera = 1e+12 .peta = 1e+15 .exa = 1e+18 .zetta = 1e+21 .yotta = 1e+24 .ronna = 1e+27 .quetta = 1e+30