asciimath2unitsml 0.1.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +2 -0
- data/.gitmodules +4 -0
- data/README.adoc +163 -6
- data/asciimath2unitsml.gemspec +24 -2
- data/lib/asciimath2unitsml.rb +1 -0
- data/lib/asciimath2unitsml/conv.rb +117 -149
- data/lib/asciimath2unitsml/parse.rb +144 -33
- data/lib/asciimath2unitsml/render.rb +83 -0
- data/lib/asciimath2unitsml/unit.rb +81 -0
- data/lib/asciimath2unitsml/version.rb +1 -1
- data/lib/unitsdb/dimensions.yaml +802 -0
- data/lib/unitsdb/prefixes.yaml +154 -27
- data/lib/unitsdb/quantities.yaml +2274 -440
- data/lib/unitsdb/unit_systems.yaml +16 -0
- data/lib/unitsdb/units.yaml +10077 -1715
- data/lib/unitsdb_ruby/unitsdb.rb +164 -0
- data/spec/conv_spec.rb +716 -111
- metadata +22 -2
@@ -0,0 +1,164 @@
|
|
1
|
+
module UnitsDB
|
2
|
+
class Dimension
|
3
|
+
attr_reader :id, :length, :mass, :time, :electric_current, :thermodynamic_temperature,
|
4
|
+
:amount_of_substance, :luminous_intensity, :plane_angle, :dimensionless
|
5
|
+
|
6
|
+
def initialize(id, hash)
|
7
|
+
begin
|
8
|
+
@id = id
|
9
|
+
@dimensionless = hash[:dimensionless]
|
10
|
+
hash[:length] and @length = hash[:length][:powerNumerator].to_i
|
11
|
+
hash[:mass] and @mass = hash[:mass][:powerNumerator].to_i
|
12
|
+
hash[:time] and @time = hash[:time][:powerNumerator].to_i
|
13
|
+
hash[:electric_current] and @electric_current = hash[:electric_current][:powerNumerator].to_i
|
14
|
+
hash[:thermodynamic_temperature] and
|
15
|
+
@thermodynamic_temperature = hash[:thermodynamic_temperature][:powerNumerator].to_i
|
16
|
+
hash[:amount_of_substance] and @amount_of_substance = hash[:amount_of_substance][:powerNumerator].to_i
|
17
|
+
hash[:luminous_intensity] and @luminous_intensity = hash[:luminous_intensity][:powerNumerator].to_i
|
18
|
+
hash[:plane_angle] and @plane_angle = hash[:plane_angle][:powerNumerator].to_i
|
19
|
+
rescue
|
20
|
+
raise StandardError.new "Parse fail on Dimension #{id}: #{hash}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def keys
|
25
|
+
ret = []
|
26
|
+
@length and ret << "Length"
|
27
|
+
@mass and ret << "Mass"
|
28
|
+
@time and ret << "Time"
|
29
|
+
@electric_current and ret << "ElectricCurrent"
|
30
|
+
@thermodynamic_temperature and ret << "ThermodynamicTemperature"
|
31
|
+
@amount_of_substance and ret << "AmountOfSubstance"
|
32
|
+
@luminous_intensity and ret << "LuminousIntensity"
|
33
|
+
@plane_angle and ret << "PlaneAngle"
|
34
|
+
ret
|
35
|
+
end
|
36
|
+
|
37
|
+
def exponent(key)
|
38
|
+
case key
|
39
|
+
when "Length" then @length
|
40
|
+
when "Mass" then @mass
|
41
|
+
when "Time" then @time
|
42
|
+
when "ElectricCurrent" then @electric_current
|
43
|
+
when "ThermodynamicTemperature" then @thermodynamic_temperature
|
44
|
+
when "AmountOfSubstance" then @amount_of_substance
|
45
|
+
when "LuminousIntensity" then @luminous_intensity
|
46
|
+
when "PlaneAngle" then @plane_angle
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def vector
|
51
|
+
"#{@length}:#{@mass}:#{@time}:#{@electric_current}:#{@thermodynamic_temperature}:#{@amount_of_substance}:"\
|
52
|
+
"#{@luminous_intensity}:#{@plane_angle}"
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
class Prefix
|
57
|
+
attr_reader :id, :name, :base, :power, :symbol
|
58
|
+
|
59
|
+
def initialize(id, hash)
|
60
|
+
begin
|
61
|
+
@id = id
|
62
|
+
@name = hash[:name]
|
63
|
+
@base = hash[:base]
|
64
|
+
@power = hash[:power]
|
65
|
+
@symbol = hash[:symbol] # always is a hash
|
66
|
+
rescue
|
67
|
+
raise StandardError.new "Parse fail on Prefix #{id}: #{hash}"
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def ascii
|
72
|
+
@symbol[:ascii]
|
73
|
+
end
|
74
|
+
|
75
|
+
def symbolid
|
76
|
+
@symbol[:ascii]
|
77
|
+
end
|
78
|
+
|
79
|
+
def html
|
80
|
+
@symbol[:html]
|
81
|
+
end
|
82
|
+
|
83
|
+
def mathml
|
84
|
+
@symbol[:html]
|
85
|
+
end
|
86
|
+
|
87
|
+
def latex
|
88
|
+
@symbol[:latex]
|
89
|
+
end
|
90
|
+
|
91
|
+
def unicode
|
92
|
+
@symbol[:unicode]
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
class Quantity
|
97
|
+
attr_reader :id, :dimension, :type, :names, :units
|
98
|
+
|
99
|
+
def initialize(id, hash)
|
100
|
+
begin
|
101
|
+
@id = id
|
102
|
+
@dimension = hash[:dimension_url].sub(/^#/, "")
|
103
|
+
@type = hash[:quantity_type]
|
104
|
+
hash[:quantity_name] and @names = hash[:quantity_name]
|
105
|
+
hash[:unit_reference] and @units = hash[:unit_reference].map { |x| x[:url].sub(/^#/, "") }
|
106
|
+
rescue
|
107
|
+
raise StandardError.new "Parse fail on Quantity #{id}: #{hash}"
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def name
|
112
|
+
@names&.first
|
113
|
+
end
|
114
|
+
|
115
|
+
def unit
|
116
|
+
@units&.first
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
class Unit
|
121
|
+
attr_reader :id, :dimension, :short, :root, :unit_system, :names, :symbols, :symbols_hash, :root_units, :quantities,
|
122
|
+
:si_derived_bases, :prefixed
|
123
|
+
|
124
|
+
def initialize(id, hash)
|
125
|
+
begin
|
126
|
+
@id = id
|
127
|
+
@short = short
|
128
|
+
@dimension = hash[:dimension_url].sub(/^#/, "")
|
129
|
+
hash[:short] && !hash[:short].empty? and @short = hash[:short]
|
130
|
+
@unit_system = hash[:unit_system]
|
131
|
+
@names = hash[:unit_name]
|
132
|
+
@symbols_hash = hash[:unit_symbols]&.each_with_object({}) { |h, m| m[h[:id]] = h } || {}
|
133
|
+
@symbols = hash[:unit_symbols]
|
134
|
+
hash[:root_units] and hash[:root_units][:enumerated_root_units] and
|
135
|
+
@root = hash[:root_units][:enumerated_root_units]
|
136
|
+
hash[:quantity_reference] and @quantities = hash[:quantity_reference].map { |x| x[:url].sub(/^#/, "") }
|
137
|
+
hash[:si_derived_bases] and @si_derived_bases = hash[:si_derived_bases]
|
138
|
+
@prefixed = (hash[:prefixed] == true)
|
139
|
+
rescue
|
140
|
+
raise StandardError.new "Parse fail on Unit #{id}: #{hash}"
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
def system_name
|
145
|
+
@unit_system[:name]
|
146
|
+
end
|
147
|
+
|
148
|
+
def system_type
|
149
|
+
@unit_system[:type]
|
150
|
+
end
|
151
|
+
|
152
|
+
def name
|
153
|
+
@names.first
|
154
|
+
end
|
155
|
+
|
156
|
+
def symbolid
|
157
|
+
@symbols ? @symbols.first[:id] : @short
|
158
|
+
end
|
159
|
+
|
160
|
+
def symbolids
|
161
|
+
@symbols ? @symbols.map { |s| s[:id] } : [ @short ]
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
data/spec/conv_spec.rb
CHANGED
@@ -3,13 +3,14 @@ require "spec_helper"
|
|
3
3
|
RSpec.describe Asciimath2UnitsML do
|
4
4
|
it "converts an AsciiMath string to MathML + UnitsML" do
|
5
5
|
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
6
|
-
1 "unitsml(
|
6
|
+
1 "unitsml(mm*s^-2)"
|
7
7
|
INPUT
|
8
|
-
|
8
|
+
<?xml version='1.0'?>
|
9
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
9
10
|
<mn>1</mn>
|
10
11
|
<mo rspace='thickmathspace'>⁢</mo>
|
11
|
-
<mrow xref='
|
12
|
-
<mi mathvariant='normal'>
|
12
|
+
<mrow xref='U_mm.s-2'>
|
13
|
+
<mi mathvariant='normal'>mm</mi>
|
13
14
|
<mo>·</mo>
|
14
15
|
<msup>
|
15
16
|
<mrow>
|
@@ -21,17 +22,17 @@ RSpec.describe Asciimath2UnitsML do
|
|
21
22
|
</mrow>
|
22
23
|
</msup>
|
23
24
|
</mrow>
|
24
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='
|
25
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_mm.s-2' dimensionURL='#NISTd28'>
|
25
26
|
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
26
|
-
<UnitName xml:lang='en'>
|
27
|
+
<UnitName xml:lang='en'>mm*s^-2</UnitName>
|
27
28
|
<UnitSymbol type='HTML'>
|
28
|
-
|
29
|
+
mm·s
|
29
30
|
<sup>−2</sup>
|
30
31
|
</UnitSymbol>
|
31
32
|
<UnitSymbol type='MathML'>
|
32
33
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
33
34
|
<mrow>
|
34
|
-
<mi mathvariant='normal'>
|
35
|
+
<mi mathvariant='normal'>mm</mi>
|
35
36
|
<mo>·</mo>
|
36
37
|
<msup>
|
37
38
|
<mrow>
|
@@ -46,26 +47,262 @@ RSpec.describe Asciimath2UnitsML do
|
|
46
47
|
</math>
|
47
48
|
</UnitSymbol>
|
48
49
|
<RootUnits>
|
49
|
-
<EnumeratedRootUnit unit='
|
50
|
+
<EnumeratedRootUnit unit='meter' prefix='m'/>
|
50
51
|
<EnumeratedRootUnit unit='second' powerNumerator='-2'/>
|
51
52
|
</RootUnits>
|
52
53
|
</Unit>
|
54
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-3' xml:id='NISTp10_-3'>
|
55
|
+
<PrefixName xml:lang='en'>milli</PrefixName>
|
56
|
+
<PrefixSymbol type='ASCII'>m</PrefixSymbol>
|
57
|
+
<PrefixSymbol type='unicode'>m</PrefixSymbol>
|
58
|
+
<PrefixSymbol type='LaTeX'>m</PrefixSymbol>
|
59
|
+
<PrefixSymbol type='HTML'>m</PrefixSymbol>
|
60
|
+
</Prefix>
|
61
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd28'>
|
62
|
+
<Length symbol='L' powerNumerator='1'/>
|
63
|
+
<Time symbol='T' powerNumerator='-2'/>
|
64
|
+
</Dimension>
|
65
|
+
</math>
|
66
|
+
OUTPUT
|
67
|
+
end
|
68
|
+
|
69
|
+
it "deals with non-Ascii units and prefixes" do
|
70
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
71
|
+
1 "unitsml(um)"
|
72
|
+
INPUT
|
73
|
+
<?xml version='1.0'?>
|
74
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
75
|
+
<mn>1</mn>
|
76
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
77
|
+
<mrow xref='U_um'>
|
78
|
+
<mi mathvariant='normal'>µm</mi>
|
79
|
+
</mrow>
|
80
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_um' dimensionURL='#NISTd1'>
|
81
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
82
|
+
<UnitName xml:lang='en'>um</UnitName>
|
83
|
+
<UnitSymbol type='HTML'>um</UnitSymbol>
|
84
|
+
<UnitSymbol type='MathML'>
|
85
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
86
|
+
<mrow>
|
87
|
+
<mi mathvariant='normal'>µm</mi>
|
88
|
+
</mrow>
|
89
|
+
</math>
|
90
|
+
</UnitSymbol>
|
91
|
+
<RootUnits>
|
92
|
+
<EnumeratedRootUnit unit='meter' prefix='u'/>
|
93
|
+
</RootUnits>
|
94
|
+
</Unit>
|
95
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-6' xml:id='NISTp10_-6'>
|
96
|
+
<PrefixName xml:lang='en'>micro</PrefixName>
|
97
|
+
<PrefixSymbol type='ASCII'>u</PrefixSymbol>
|
98
|
+
<PrefixSymbol type='unicode'>μ</PrefixSymbol>
|
99
|
+
<PrefixSymbol type='LaTeX'>$mu$</PrefixSymbol>
|
100
|
+
<PrefixSymbol type='HTML'>µ</PrefixSymbol>
|
101
|
+
</Prefix>
|
102
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd1'>
|
103
|
+
<Length symbol='L' powerNumerator='1'/>
|
104
|
+
</Dimension>
|
105
|
+
</math>
|
106
|
+
OUTPUT
|
107
|
+
end
|
108
|
+
|
109
|
+
it "does not insert space before non-alphabetic units" do
|
110
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
111
|
+
1 "unitsml(degK)" + 1 "unitsml(prime)"
|
112
|
+
INPUT
|
113
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
114
|
+
<mn>1</mn>
|
115
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
116
|
+
<mrow xref='U_NISTu5'>
|
117
|
+
<mi mathvariant='normal'>°K</mi>
|
118
|
+
</mrow>
|
119
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu5' dimensionURL='#NISTd5'>
|
120
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
121
|
+
<UnitName xml:lang='en'>kelvin</UnitName>
|
122
|
+
<UnitSymbol type='HTML'>K</UnitSymbol>
|
123
|
+
<UnitSymbol type='MathML'>
|
124
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
125
|
+
<mrow>
|
126
|
+
<mi mathvariant='normal'>K</mi>
|
127
|
+
</mrow>
|
128
|
+
</math>
|
129
|
+
</UnitSymbol>
|
130
|
+
</Unit>
|
131
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd5'>
|
132
|
+
<ThermodynamicTemperature symbol='Theta' powerNumerator='1'/>
|
133
|
+
</Dimension>
|
134
|
+
<Quantity xmlns='http://unitsml.nist.gov/2005' xml:id='NISTq5' dimensionURL='#NISTd5' quantityType='base'>
|
135
|
+
<QuantityName xml:lang='en-US'>thermodynamic temperature</QuantityName>
|
136
|
+
</Quantity>
|
137
|
+
<mo>+</mo>
|
138
|
+
<mn>1</mn>
|
139
|
+
<mo>⁢</mo>
|
140
|
+
<mrow xref='U_NISTu147'>
|
141
|
+
<mi mathvariant='normal'>′</mi>
|
142
|
+
</mrow>
|
143
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu147'>
|
144
|
+
<UnitSystem name='not_SI' type='not_SI' xml:lang='en-US'/>
|
145
|
+
<UnitName xml:lang='en'>minute (minute of arc)</UnitName>
|
146
|
+
<UnitSymbol type='HTML'>′</UnitSymbol>
|
147
|
+
<UnitSymbol type='MathML'>
|
148
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
149
|
+
<mrow>
|
150
|
+
<mi mathvariant='normal'>′</mi>
|
151
|
+
</mrow>
|
152
|
+
</math>
|
153
|
+
</UnitSymbol>
|
154
|
+
</Unit>
|
155
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd9'>
|
156
|
+
<PlaneAngle symbol='Phi' powerNumerator='1'/>
|
157
|
+
</Dimension>
|
158
|
+
<Quantity xmlns='http://unitsml.nist.gov/2005' xml:id='NISTq9' dimensionURL='#NISTd9' quantityType='base'>
|
159
|
+
<QuantityName xml:lang='en-US'>plane angle</QuantityName>
|
160
|
+
<QuantityName xml:lang='en-US'>angle</QuantityName>
|
161
|
+
</Quantity>
|
162
|
+
</math>
|
163
|
+
OUTPUT
|
164
|
+
end
|
165
|
+
|
166
|
+
it "does not insert space before operators" do
|
167
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
168
|
+
8 "unitsml(kg)" cdot "unitsml(m)"
|
169
|
+
INPUT
|
170
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
171
|
+
<mn>8</mn>
|
172
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
173
|
+
<mrow xref='U_NISTu2'>
|
174
|
+
<mi mathvariant='normal'>kg</mi>
|
175
|
+
</mrow>
|
176
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu2' dimensionURL='#NISTd2'>
|
177
|
+
<UnitSystem name='SI' type='SI_base' xml:lang='en-US'/>
|
178
|
+
<UnitName xml:lang='en'>kilogram</UnitName>
|
179
|
+
<UnitSymbol type='HTML'>kg</UnitSymbol>
|
180
|
+
<UnitSymbol type='MathML'>
|
181
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
182
|
+
<mrow>
|
183
|
+
<mi mathvariant='normal'>kg</mi>
|
184
|
+
</mrow>
|
185
|
+
</math>
|
186
|
+
</UnitSymbol>
|
187
|
+
<RootUnits>
|
188
|
+
<EnumeratedRootUnit unit='gram' prefix='k'/>
|
189
|
+
</RootUnits>
|
190
|
+
</Unit>
|
53
191
|
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
54
192
|
<PrefixName xml:lang='en'>kilo</PrefixName>
|
55
193
|
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
194
|
+
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
195
|
+
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
196
|
+
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
56
197
|
</Prefix>
|
57
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='
|
198
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd2'>
|
58
199
|
<Mass symbol='M' powerNumerator='1'/>
|
59
|
-
<Time symbol='T' powerNumerator='-2'/>
|
60
200
|
</Dimension>
|
61
|
-
<
|
62
|
-
|
201
|
+
<Quantity xmlns='http://unitsml.nist.gov/2005' xml:id='NISTq2' dimensionURL='#NISTd2' quantityType='base'>
|
202
|
+
<QuantityName xml:lang='en-US'>mass</QuantityName>
|
203
|
+
</Quantity>
|
204
|
+
<mo>⋅</mo>
|
205
|
+
<mrow xref='U_NISTu1'>
|
206
|
+
<mi mathvariant='normal'>m</mi>
|
207
|
+
</mrow>
|
208
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu1' dimensionURL='#NISTd1'>
|
209
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
210
|
+
<UnitName xml:lang='en'>meter</UnitName>
|
211
|
+
<UnitSymbol type='HTML'>m</UnitSymbol>
|
212
|
+
<UnitSymbol type='MathML'>
|
213
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
214
|
+
<mrow>
|
215
|
+
<mi mathvariant='normal'>m</mi>
|
216
|
+
</mrow>
|
217
|
+
</math>
|
218
|
+
</UnitSymbol>
|
219
|
+
</Unit>
|
220
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd1'>
|
221
|
+
<Length symbol='L' powerNumerator='1'/>
|
222
|
+
</Dimension>
|
223
|
+
</math>
|
224
|
+
OUTPUT
|
225
|
+
end
|
226
|
+
|
227
|
+
it "deals with sqrt units" do
|
228
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
229
|
+
1 "unitsml(sqrt(Hz))"
|
230
|
+
INPUT
|
231
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
232
|
+
<mn>1</mn>
|
233
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
234
|
+
<mrow xref='U_sqrtHz'>
|
235
|
+
<msqrt>
|
236
|
+
<mi mathvariant='normal'>Hz</mi>
|
237
|
+
</msqrt>
|
238
|
+
</mrow>
|
239
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_Hz0.5' dimensionURL='#D_T-0.5'>
|
240
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
241
|
+
<UnitName xml:lang='en'>Hz^0.5</UnitName>
|
242
|
+
<UnitSymbol type='HTML'>√Hz</UnitSymbol>
|
243
|
+
<UnitSymbol type='MathML'>
|
244
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
245
|
+
<mrow>
|
246
|
+
<msqrt>
|
247
|
+
<mi mathvariant='normal'>Hz</mi>
|
248
|
+
</msqrt>
|
249
|
+
</mrow>
|
250
|
+
</math>
|
251
|
+
</UnitSymbol>
|
252
|
+
</Unit>
|
253
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='D_T-0.5'>
|
254
|
+
<Time symbol='T' powerNumerator='-0.5'/>
|
255
|
+
</Dimension>
|
256
|
+
</math>
|
257
|
+
OUTPUT
|
258
|
+
end
|
259
|
+
|
260
|
+
it "deals with kg and g" do
|
261
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
262
|
+
1 "unitsml(kg)" + 1 "unitsml(g)"
|
263
|
+
INPUT
|
264
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
265
|
+
<mn>1</mn>
|
266
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
267
|
+
<mrow xref='U_NISTu2'>
|
268
|
+
<mi mathvariant='normal'>kg</mi>
|
269
|
+
</mrow>
|
270
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu2' dimensionURL='#NISTd2'>
|
271
|
+
<UnitSystem name='SI' type='SI_base' xml:lang='en-US'/>
|
272
|
+
<UnitName xml:lang='en'>kilogram</UnitName>
|
273
|
+
<UnitSymbol type='HTML'>kg</UnitSymbol>
|
274
|
+
<UnitSymbol type='MathML'>
|
275
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
276
|
+
<mrow>
|
277
|
+
<mi mathvariant='normal'>kg</mi>
|
278
|
+
</mrow>
|
279
|
+
</math>
|
280
|
+
</UnitSymbol>
|
281
|
+
<RootUnits>
|
282
|
+
<EnumeratedRootUnit unit='gram' prefix='k'/>
|
283
|
+
</RootUnits>
|
284
|
+
</Unit>
|
285
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
286
|
+
<PrefixName xml:lang='en'>kilo</PrefixName>
|
287
|
+
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
288
|
+
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
289
|
+
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
290
|
+
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
291
|
+
</Prefix>
|
292
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd2'>
|
293
|
+
<Mass symbol='M' powerNumerator='1'/>
|
294
|
+
</Dimension>
|
295
|
+
<Quantity xmlns='http://unitsml.nist.gov/2005' xml:id='NISTq2' dimensionURL='#NISTd2' quantityType='base'>
|
296
|
+
<QuantityName xml:lang='en-US'>mass</QuantityName>
|
297
|
+
</Quantity>
|
298
|
+
<mo>+</mo>
|
299
|
+
<mn>1</mn>
|
63
300
|
<mo rspace='thickmathspace'>⁢</mo>
|
64
301
|
<mrow xref='U_NISTu27'>
|
65
302
|
<mi mathvariant='normal'>g</mi>
|
66
303
|
</mrow>
|
67
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu27' dimensionURL='#
|
68
|
-
<UnitSystem name='SI' type='
|
304
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu27' dimensionURL='#NISTd2'>
|
305
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
69
306
|
<UnitName xml:lang='en'>gram</UnitName>
|
70
307
|
<UnitSymbol type='HTML'>g</UnitSymbol>
|
71
308
|
<UnitSymbol type='MathML'>
|
@@ -76,9 +313,6 @@ RSpec.describe Asciimath2UnitsML do
|
|
76
313
|
</math>
|
77
314
|
</UnitSymbol>
|
78
315
|
</Unit>
|
79
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='D_M'>
|
80
|
-
<Mass symbol='M' powerNumerator='1'/>
|
81
|
-
</Dimension>
|
82
316
|
</math>
|
83
317
|
OUTPUT
|
84
318
|
end
|
@@ -105,6 +339,14 @@ RSpec.describe Asciimath2UnitsML do
|
|
105
339
|
</math>
|
106
340
|
</UnitSymbol>
|
107
341
|
</Unit>
|
342
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd16'>
|
343
|
+
<Length symbol='L' powerNumerator='2'/>
|
344
|
+
<Mass symbol='M' powerNumerator='1'/>
|
345
|
+
<Time symbol='T' powerNumerator='-3'/>
|
346
|
+
</Dimension>
|
347
|
+
<Quantity xmlns='http://unitsml.nist.gov/2005' xml:id='NISTq20' dimensionURL='#NISTd16' quantityType='base'>
|
348
|
+
<QuantityName xml:lang='en-US'>power</QuantityName>
|
349
|
+
</Quantity>
|
108
350
|
</math>
|
109
351
|
OUTPUT
|
110
352
|
end
|
@@ -129,7 +371,7 @@ RSpec.describe Asciimath2UnitsML do
|
|
129
371
|
</mrow>
|
130
372
|
</msup>
|
131
373
|
</mrow>
|
132
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#
|
374
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#NISTd37'>
|
133
375
|
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
134
376
|
<UnitName xml:lang='en'>kg*s^-2</UnitName>
|
135
377
|
<UnitSymbol type='HTML'>
|
@@ -161,8 +403,11 @@ RSpec.describe Asciimath2UnitsML do
|
|
161
403
|
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
162
404
|
<PrefixName xml:lang='en'>kilo</PrefixName>
|
163
405
|
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
406
|
+
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
407
|
+
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
408
|
+
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
164
409
|
</Prefix>
|
165
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='
|
410
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd37'>
|
166
411
|
<Mass symbol='M' powerNumerator='1'/>
|
167
412
|
<Time symbol='T' powerNumerator='-2'/>
|
168
413
|
</Dimension>
|
@@ -182,64 +427,177 @@ RSpec.describe Asciimath2UnitsML do
|
|
182
427
|
</mrow>
|
183
428
|
</msup>
|
184
429
|
</mrow>
|
185
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#D_MT-2'>
|
186
|
-
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
187
|
-
<UnitName xml:lang='en'>kg*s^-2</UnitName>
|
188
|
-
<UnitSymbol type='HTML'>
|
189
|
-
kg·s
|
190
|
-
<sup>−2</sup>
|
191
|
-
</UnitSymbol>
|
192
|
-
<UnitSymbol type='MathML'>
|
193
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
194
|
-
<mrow>
|
195
|
-
<mi mathvariant='normal'>kg</mi>
|
196
|
-
<mo>·</mo>
|
197
|
-
<msup>
|
198
|
-
<mrow>
|
199
|
-
<mi mathvariant='normal'>s</mi>
|
200
|
-
</mrow>
|
201
|
-
<mrow>
|
202
|
-
<mo>−</mo>
|
203
|
-
<mn>2</mn>
|
204
|
-
</mrow>
|
205
|
-
</msup>
|
206
|
-
</mrow>
|
207
|
-
</math>
|
208
|
-
</UnitSymbol>
|
209
|
-
<RootUnits>
|
210
|
-
<EnumeratedRootUnit unit='gram' prefix='k'/>
|
211
|
-
<EnumeratedRootUnit unit='second' powerNumerator='-2'/>
|
212
|
-
</RootUnits>
|
213
|
-
</Unit>
|
214
|
-
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
215
|
-
<PrefixName xml:lang='en'>kilo</PrefixName>
|
216
|
-
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
217
|
-
</Prefix>
|
218
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='D_MT-2'>
|
219
|
-
<Mass symbol='M' powerNumerator='1'/>
|
220
|
-
<Time symbol='T' powerNumerator='-2'/>
|
221
|
-
</Dimension>
|
222
430
|
</math>
|
223
431
|
OUTPUT
|
224
432
|
end
|
225
433
|
|
226
|
-
=begin
|
227
434
|
it "deals with notational variants" do
|
228
435
|
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
229
436
|
9 "unitsml(degK)" + 10 "unitsml(K)"
|
230
437
|
INPUT
|
438
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
439
|
+
<mn>9</mn>
|
440
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
441
|
+
<mrow xref='U_NISTu5'>
|
442
|
+
<mi mathvariant='normal'>°K</mi>
|
443
|
+
</mrow>
|
444
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu5' dimensionURL='#NISTd5'>
|
445
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
446
|
+
<UnitName xml:lang='en'>kelvin</UnitName>
|
447
|
+
<UnitSymbol type='HTML'>K</UnitSymbol>
|
448
|
+
<UnitSymbol type='MathML'>
|
449
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
450
|
+
<mrow>
|
451
|
+
<mi mathvariant='normal'>K</mi>
|
452
|
+
</mrow>
|
453
|
+
</math>
|
454
|
+
</UnitSymbol>
|
455
|
+
</Unit>
|
456
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd5'>
|
457
|
+
<ThermodynamicTemperature symbol='Theta' powerNumerator='1'/>
|
458
|
+
</Dimension>
|
459
|
+
<Quantity xmlns='http://unitsml.nist.gov/2005' xml:id='NISTq5' dimensionURL='#NISTd5' quantityType='base'>
|
460
|
+
<QuantityName xml:lang='en-US'>thermodynamic temperature</QuantityName>
|
461
|
+
</Quantity>
|
462
|
+
<mo>+</mo>
|
463
|
+
<mn>10</mn>
|
464
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
465
|
+
<mrow xref='U_NISTu5'>
|
466
|
+
<mi mathvariant='normal'>K</mi>
|
467
|
+
</mrow>
|
468
|
+
</math>
|
469
|
+
OUTPUT
|
470
|
+
end
|
471
|
+
|
472
|
+
it "deals with prefixed units" do
|
473
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
474
|
+
9 "unitsml(mbar)"
|
475
|
+
INPUT
|
476
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
477
|
+
<mn>9</mn>
|
478
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
479
|
+
<mrow xref='U_NISTu362'>
|
480
|
+
<mi mathvariant='normal'>mbar</mi>
|
481
|
+
</mrow>
|
482
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu362'>
|
483
|
+
<UnitSystem name='not_SI' type='not_SI' xml:lang='en-US'/>
|
484
|
+
<UnitName xml:lang='en'>millibar</UnitName>
|
485
|
+
<UnitSymbol type='HTML'>mbar</UnitSymbol>
|
486
|
+
<UnitSymbol type='MathML'>
|
487
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
488
|
+
<mrow>
|
489
|
+
<mi mathvariant='normal'>mbar</mi>
|
490
|
+
</mrow>
|
491
|
+
</math>
|
492
|
+
</UnitSymbol>
|
493
|
+
<RootUnits>
|
494
|
+
<EnumeratedRootUnit unit='bar' prefix='m'/>
|
495
|
+
</RootUnits>
|
496
|
+
</Unit>
|
497
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-3' xml:id='NISTp10_-3'>
|
498
|
+
<PrefixName xml:lang='en'>milli</PrefixName>
|
499
|
+
<PrefixSymbol type='ASCII'>m</PrefixSymbol>
|
500
|
+
<PrefixSymbol type='unicode'>m</PrefixSymbol>
|
501
|
+
<PrefixSymbol type='LaTeX'>m</PrefixSymbol>
|
502
|
+
<PrefixSymbol type='HTML'>m</PrefixSymbol>
|
503
|
+
</Prefix>
|
504
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd14'>
|
505
|
+
<Length symbol='L' powerNumerator='-1'/>
|
506
|
+
<Mass symbol='M' powerNumerator='1'/>
|
507
|
+
<Time symbol='T' powerNumerator='-2'/>
|
508
|
+
</Dimension>
|
509
|
+
</math>
|
231
510
|
OUTPUT
|
232
511
|
end
|
233
|
-
|
512
|
+
|
513
|
+
it "deals with standalone prefixes" do
|
514
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
515
|
+
"unitsml(p-)" "unitsml(da-)"
|
516
|
+
INPUT
|
517
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
518
|
+
<mrow xref='NISTp10_-12'>
|
519
|
+
<mi mathvariant='normal'>p</mi>
|
520
|
+
</mrow>
|
521
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-12' xml:id='NISTp10_-12'>
|
522
|
+
<PrefixName xml:lang='en'>pico</PrefixName>
|
523
|
+
<PrefixSymbol type='ASCII'>p</PrefixSymbol>
|
524
|
+
<PrefixSymbol type='unicode'>p</PrefixSymbol>
|
525
|
+
<PrefixSymbol type='LaTeX'>p</PrefixSymbol>
|
526
|
+
<PrefixSymbol type='HTML'>p</PrefixSymbol>
|
527
|
+
</Prefix>
|
528
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
529
|
+
<mrow xref='NISTp10_1'>
|
530
|
+
<mi mathvariant='normal'>da</mi>
|
531
|
+
</mrow>
|
532
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='1' xml:id='NISTp10_1'>
|
533
|
+
<PrefixName xml:lang='en'>deka</PrefixName>
|
534
|
+
<PrefixSymbol type='ASCII'>da</PrefixSymbol>
|
535
|
+
<PrefixSymbol type='unicode'>da</PrefixSymbol>
|
536
|
+
<PrefixSymbol type='LaTeX'>da</PrefixSymbol>
|
537
|
+
<PrefixSymbol type='HTML'>da</PrefixSymbol>
|
538
|
+
</Prefix>
|
539
|
+
</math>
|
540
|
+
OUTPUT
|
541
|
+
end
|
542
|
+
|
543
|
+
it "deals with HTML entities in UnitsDB" do
|
544
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
545
|
+
"unitsml(u-)" + "unitsml(um)"
|
546
|
+
INPUT
|
547
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
548
|
+
<mrow xref='NISTp10_-6'>
|
549
|
+
<mi mathvariant='normal'>µ</mi>
|
550
|
+
</mrow>
|
551
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-6' xml:id='NISTp10_-6'>
|
552
|
+
<PrefixName xml:lang='en'>micro</PrefixName>
|
553
|
+
<PrefixSymbol type='ASCII'>u</PrefixSymbol>
|
554
|
+
<PrefixSymbol type='unicode'>μ</PrefixSymbol>
|
555
|
+
<PrefixSymbol type='LaTeX'>$mu$</PrefixSymbol>
|
556
|
+
<PrefixSymbol type='HTML'>µ</PrefixSymbol>
|
557
|
+
</Prefix>
|
558
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd2'>
|
559
|
+
<Mass symbol='M' powerNumerator='1'/>
|
560
|
+
</Dimension>
|
561
|
+
<Quantity xmlns='http://unitsml.nist.gov/2005' xml:id='NISTq2' dimensionURL='#NISTd2' quantityType='base'>
|
562
|
+
<QuantityName xml:lang='en-US'>mass</QuantityName>
|
563
|
+
</Quantity>
|
564
|
+
<mo>+</mo>
|
565
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
566
|
+
<mrow xref='U_um'>
|
567
|
+
<mi mathvariant='normal'>µm</mi>
|
568
|
+
</mrow>
|
569
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_um' dimensionURL='#NISTd1'>
|
570
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
571
|
+
<UnitName xml:lang='en'>um</UnitName>
|
572
|
+
<UnitSymbol type='HTML'>um</UnitSymbol>
|
573
|
+
<UnitSymbol type='MathML'>
|
574
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
575
|
+
<mrow>
|
576
|
+
<mi mathvariant='normal'>µm</mi>
|
577
|
+
</mrow>
|
578
|
+
</math>
|
579
|
+
</UnitSymbol>
|
580
|
+
<RootUnits>
|
581
|
+
<EnumeratedRootUnit unit='meter' prefix='u'/>
|
582
|
+
</RootUnits>
|
583
|
+
</Unit>
|
584
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd1'>
|
585
|
+
<Length symbol='L' powerNumerator='1'/>
|
586
|
+
</Dimension>
|
587
|
+
</math>
|
588
|
+
OUTPUT
|
589
|
+
end
|
234
590
|
|
235
591
|
it "deals with units division" do
|
236
592
|
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
237
|
-
9 "unitsml(C^3
|
593
|
+
9 "unitsml(A*C^3)" + 13 "unitsml(A/C^-3)"
|
238
594
|
INPUT
|
239
595
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
240
596
|
<mn>9</mn>
|
241
597
|
<mo rspace='thickmathspace'>⁢</mo>
|
242
|
-
<mrow xref='
|
598
|
+
<mrow xref='U_A.C3'>
|
599
|
+
<mi mathvariant='normal'>A</mi>
|
600
|
+
<mo>·</mo>
|
243
601
|
<msup>
|
244
602
|
<mrow>
|
245
603
|
<mi mathvariant='normal'>C</mi>
|
@@ -248,20 +606,19 @@ INPUT
|
|
248
606
|
<mn>3</mn>
|
249
607
|
</mrow>
|
250
608
|
</msup>
|
251
|
-
<mo>·</mo>
|
252
|
-
<mi mathvariant='normal'>A</mi>
|
253
609
|
</mrow>
|
254
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='
|
610
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_A.C3' dimensionURL='#D_M3I4'>
|
255
611
|
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
256
|
-
<UnitName xml:lang='en'>C^3
|
612
|
+
<UnitName xml:lang='en'>A*C^3</UnitName>
|
257
613
|
<UnitSymbol type='HTML'>
|
258
|
-
C
|
614
|
+
A·C
|
259
615
|
<sup>3</sup>
|
260
|
-
·A
|
261
616
|
</UnitSymbol>
|
262
617
|
<UnitSymbol type='MathML'>
|
263
618
|
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
264
619
|
<mrow>
|
620
|
+
<mi mathvariant='normal'>A</mi>
|
621
|
+
<mo>·</mo>
|
265
622
|
<msup>
|
266
623
|
<mrow>
|
267
624
|
<mi mathvariant='normal'>C</mi>
|
@@ -270,18 +627,16 @@ INPUT
|
|
270
627
|
<mn>3</mn>
|
271
628
|
</mrow>
|
272
629
|
</msup>
|
273
|
-
<mo>·</mo>
|
274
|
-
<mi mathvariant='normal'>A</mi>
|
275
630
|
</mrow>
|
276
631
|
</math>
|
277
632
|
</UnitSymbol>
|
278
633
|
<RootUnits>
|
279
|
-
<EnumeratedRootUnit unit='coulomb' powerNumerator='3'/>
|
280
634
|
<EnumeratedRootUnit unit='ampere'/>
|
635
|
+
<EnumeratedRootUnit unit='coulomb' powerNumerator='3'/>
|
281
636
|
</RootUnits>
|
282
637
|
</Unit>
|
283
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='
|
284
|
-
<
|
638
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='D_M3I4'>
|
639
|
+
<Mass symbol='M' powerNumerator='3'/>
|
285
640
|
<ElectricCurrent symbol='I' powerNumerator='4'/>
|
286
641
|
</Dimension>
|
287
642
|
<mo>+</mo>
|
@@ -300,39 +655,6 @@ INPUT
|
|
300
655
|
</mrow>
|
301
656
|
</msup>
|
302
657
|
</mrow>
|
303
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_A/C-3' dimensionURL='#D_T3I4'>
|
304
|
-
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
305
|
-
<UnitName xml:lang='en'>A*C^3</UnitName>
|
306
|
-
<UnitSymbol type='HTML'>
|
307
|
-
A/C
|
308
|
-
<sup>−3</sup>
|
309
|
-
</UnitSymbol>
|
310
|
-
<UnitSymbol type='MathML'>
|
311
|
-
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
312
|
-
<mrow>
|
313
|
-
<mi mathvariant='normal'>A</mi>
|
314
|
-
<mo>/</mo>
|
315
|
-
<msup>
|
316
|
-
<mrow>
|
317
|
-
<mi mathvariant='normal'>C</mi>
|
318
|
-
</mrow>
|
319
|
-
<mrow>
|
320
|
-
<mo>−</mo>
|
321
|
-
<mn>3</mn>
|
322
|
-
</mrow>
|
323
|
-
</msup>
|
324
|
-
</mrow>
|
325
|
-
</math>
|
326
|
-
</UnitSymbol>
|
327
|
-
<RootUnits>
|
328
|
-
<EnumeratedRootUnit unit='ampere'/>
|
329
|
-
<EnumeratedRootUnit unit='coulomb' powerNumerator='3'/>
|
330
|
-
</RootUnits>
|
331
|
-
</Unit>
|
332
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='D_T3I4'>
|
333
|
-
<Time symbol='T' powerNumerator='3'/>
|
334
|
-
<ElectricCurrent symbol='I' powerNumerator='4'/>
|
335
|
-
</Dimension>
|
336
658
|
</math>
|
337
659
|
OUTPUT
|
338
660
|
end
|
@@ -389,10 +711,16 @@ OUTPUT
|
|
389
711
|
</mrow>
|
390
712
|
</math>
|
391
713
|
</UnitSymbol>
|
714
|
+
<RootUnits>
|
715
|
+
<EnumeratedRootUnit unit='gram' prefix='k' powerNumerator='-2'/>
|
716
|
+
</RootUnits>
|
392
717
|
</Unit>
|
393
718
|
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
394
719
|
<PrefixName xml:lang='en'>kilo</PrefixName>
|
395
720
|
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
721
|
+
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
722
|
+
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
723
|
+
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
396
724
|
</Prefix>
|
397
725
|
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='D_M-2'>
|
398
726
|
<Mass symbol='M' powerNumerator='-2'/>
|
@@ -429,7 +757,7 @@ OUTPUT
|
|
429
757
|
</mrow>
|
430
758
|
</msup>
|
431
759
|
</mrow>
|
432
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#
|
760
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#NISTd37'>
|
433
761
|
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
434
762
|
<UnitName xml:lang='en'>kg*s^-2</UnitName>
|
435
763
|
<UnitSymbol type='HTML'>
|
@@ -461,8 +789,11 @@ OUTPUT
|
|
461
789
|
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
462
790
|
<PrefixName xml:lang='en'>kilo</PrefixName>
|
463
791
|
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
792
|
+
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
793
|
+
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
794
|
+
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
464
795
|
</Prefix>
|
465
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='
|
796
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd37'>
|
466
797
|
<Mass symbol='M' powerNumerator='1'/>
|
467
798
|
<Time symbol='T' powerNumerator='-2'/>
|
468
799
|
</Dimension>
|
@@ -487,7 +818,7 @@ OUTPUT
|
|
487
818
|
</mrow>
|
488
819
|
</msup>
|
489
820
|
</mrow>
|
490
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#
|
821
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#NISTd37'>
|
491
822
|
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
492
823
|
<UnitName xml:lang='en'>kg*s^-2</UnitName>
|
493
824
|
<UnitSymbol type='HTML'>
|
@@ -519,8 +850,11 @@ OUTPUT
|
|
519
850
|
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
520
851
|
<PrefixName xml:lang='en'>kilo</PrefixName>
|
521
852
|
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
853
|
+
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
854
|
+
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
855
|
+
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
522
856
|
</Prefix>
|
523
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='
|
857
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd37'>
|
524
858
|
<Mass symbol='M' powerNumerator='1'/>
|
525
859
|
<Time symbol='T' powerNumerator='-2'/>
|
526
860
|
</Dimension>
|
@@ -545,7 +879,7 @@ OUTPUT
|
|
545
879
|
</mrow>
|
546
880
|
</msup>
|
547
881
|
</mrow>
|
548
|
-
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#
|
882
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_kg.s-2' dimensionURL='#NISTd37'>
|
549
883
|
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
550
884
|
<UnitName xml:lang='en'>kg*s^-2</UnitName>
|
551
885
|
<UnitSymbol type='HTML'>
|
@@ -577,12 +911,283 @@ OUTPUT
|
|
577
911
|
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='3' xml:id='NISTp10_3'>
|
578
912
|
<PrefixName xml:lang='en'>kilo</PrefixName>
|
579
913
|
<PrefixSymbol type='ASCII'>k</PrefixSymbol>
|
914
|
+
<PrefixSymbol type='unicode'>k</PrefixSymbol>
|
915
|
+
<PrefixSymbol type='LaTeX'>k</PrefixSymbol>
|
916
|
+
<PrefixSymbol type='HTML'>k</PrefixSymbol>
|
580
917
|
</Prefix>
|
581
|
-
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='
|
918
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd37'>
|
582
919
|
<Mass symbol='M' powerNumerator='1'/>
|
583
920
|
<Time symbol='T' powerNumerator='-2'/>
|
584
921
|
</Dimension>
|
585
922
|
</math>
|
586
923
|
OUTPUT
|
587
924
|
end
|
925
|
+
|
926
|
+
it "deals with dimension decomposition with like units" do
|
927
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
928
|
+
9 "unitsml(mW*cm^(-2))"
|
929
|
+
INPUT
|
930
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
931
|
+
<mn>9</mn>
|
932
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
933
|
+
<mrow xref='U_mW.cm-2'>
|
934
|
+
<mi mathvariant='normal'>mW</mi>
|
935
|
+
<mo>·</mo>
|
936
|
+
<msup>
|
937
|
+
<mrow>
|
938
|
+
<mi mathvariant='normal'>cm</mi>
|
939
|
+
</mrow>
|
940
|
+
<mrow>
|
941
|
+
<mo>−</mo>
|
942
|
+
<mn>2</mn>
|
943
|
+
</mrow>
|
944
|
+
</msup>
|
945
|
+
</mrow>
|
946
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_mW.cm-2'>
|
947
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
948
|
+
<UnitName xml:lang='en'>mW*cm^-2</UnitName>
|
949
|
+
<UnitSymbol type='HTML'>
|
950
|
+
mW·cm
|
951
|
+
<sup>−2</sup>
|
952
|
+
</UnitSymbol>
|
953
|
+
<UnitSymbol type='MathML'>
|
954
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
955
|
+
<mrow>
|
956
|
+
<mi mathvariant='normal'>mW</mi>
|
957
|
+
<mo>·</mo>
|
958
|
+
<msup>
|
959
|
+
<mrow>
|
960
|
+
<mi mathvariant='normal'>cm</mi>
|
961
|
+
</mrow>
|
962
|
+
<mrow>
|
963
|
+
<mo>−</mo>
|
964
|
+
<mn>2</mn>
|
965
|
+
</mrow>
|
966
|
+
</msup>
|
967
|
+
</mrow>
|
968
|
+
</math>
|
969
|
+
</UnitSymbol>
|
970
|
+
<RootUnits>
|
971
|
+
<EnumeratedRootUnit unit='watt' prefix='m'/>
|
972
|
+
<EnumeratedRootUnit unit='meter' prefix='c' powerNumerator='-2'/>
|
973
|
+
</RootUnits>
|
974
|
+
</Unit>
|
975
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-3' xml:id='NISTp10_-3'>
|
976
|
+
<PrefixName xml:lang='en'>milli</PrefixName>
|
977
|
+
<PrefixSymbol type='ASCII'>m</PrefixSymbol>
|
978
|
+
<PrefixSymbol type='unicode'>m</PrefixSymbol>
|
979
|
+
<PrefixSymbol type='LaTeX'>m</PrefixSymbol>
|
980
|
+
<PrefixSymbol type='HTML'>m</PrefixSymbol>
|
981
|
+
</Prefix>
|
982
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-2' xml:id='NISTp10_-2'>
|
983
|
+
<PrefixName xml:lang='en'>centi</PrefixName>
|
984
|
+
<PrefixSymbol type='ASCII'>c</PrefixSymbol>
|
985
|
+
<PrefixSymbol type='unicode'>c</PrefixSymbol>
|
986
|
+
<PrefixSymbol type='LaTeX'>c</PrefixSymbol>
|
987
|
+
<PrefixSymbol type='HTML'>c</PrefixSymbol>
|
988
|
+
</Prefix>
|
989
|
+
</math>
|
990
|
+
OUTPUT
|
991
|
+
end
|
992
|
+
|
993
|
+
it "deals with quantity input" do
|
994
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
995
|
+
9 "unitsml(m, quantity: NISTq103)"
|
996
|
+
INPUT
|
997
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
998
|
+
<mn>9</mn>
|
999
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
1000
|
+
<mrow xref='U_NISTu1'>
|
1001
|
+
<mi mathvariant='normal'>m</mi>
|
1002
|
+
</mrow>
|
1003
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu1' dimensionURL='#NISTd1'>
|
1004
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
1005
|
+
<UnitName xml:lang='en'>meter</UnitName>
|
1006
|
+
<UnitSymbol type='HTML'>m</UnitSymbol>
|
1007
|
+
<UnitSymbol type='MathML'>
|
1008
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1009
|
+
<mrow>
|
1010
|
+
<mi mathvariant='normal'>m</mi>
|
1011
|
+
</mrow>
|
1012
|
+
</math>
|
1013
|
+
</UnitSymbol>
|
1014
|
+
</Unit>
|
1015
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd1'>
|
1016
|
+
<Length symbol='L' powerNumerator='1'/>
|
1017
|
+
</Dimension>
|
1018
|
+
<Quantity xmlns='http://unitsml.nist.gov/2005' xml:id='NISTq103' dimensionURL='#NISTd1' quantityType='base'>
|
1019
|
+
<QuantityName xml:lang='en-US'>position vector</QuantityName>
|
1020
|
+
</Quantity>
|
1021
|
+
</math>
|
1022
|
+
OUTPUT
|
1023
|
+
end
|
1024
|
+
|
1025
|
+
it "deals with name input" do
|
1026
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
1027
|
+
9 "unitsml(cal_th/cm^2, name: langley)"
|
1028
|
+
INPUT
|
1029
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1030
|
+
<mn>9</mn>
|
1031
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
1032
|
+
<mrow xref='U_cal_th/cm2'>
|
1033
|
+
<msub>
|
1034
|
+
<mrow>
|
1035
|
+
<mi mathvariant='normal'>cal</mi>
|
1036
|
+
</mrow>
|
1037
|
+
<mrow>
|
1038
|
+
<mi mathvariant='normal'>th</mi>
|
1039
|
+
</mrow>
|
1040
|
+
</msub>
|
1041
|
+
<mo>/</mo>
|
1042
|
+
<msup>
|
1043
|
+
<mrow>
|
1044
|
+
<mi mathvariant='normal'>cm</mi>
|
1045
|
+
</mrow>
|
1046
|
+
<mrow>
|
1047
|
+
<mn>2</mn>
|
1048
|
+
</mrow>
|
1049
|
+
</msup>
|
1050
|
+
</mrow>
|
1051
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_cal_th.cm-2'>
|
1052
|
+
<UnitSystem name='not_SI' type='not_SI' xml:lang='en-US'/>
|
1053
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
1054
|
+
<UnitName xml:lang='en'>langley</UnitName>
|
1055
|
+
<UnitSymbol type='HTML'>
|
1056
|
+
cal
|
1057
|
+
<sub>th</sub>
|
1058
|
+
·cm
|
1059
|
+
<sup>−2</sup>
|
1060
|
+
</UnitSymbol>
|
1061
|
+
<UnitSymbol type='MathML'>
|
1062
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1063
|
+
<mrow>
|
1064
|
+
<msub>
|
1065
|
+
<mrow>
|
1066
|
+
<mi mathvariant='normal'>cal</mi>
|
1067
|
+
</mrow>
|
1068
|
+
<mrow>
|
1069
|
+
<mi mathvariant='normal'>th</mi>
|
1070
|
+
</mrow>
|
1071
|
+
</msub>
|
1072
|
+
<mo>·</mo>
|
1073
|
+
<msup>
|
1074
|
+
<mrow>
|
1075
|
+
<mi mathvariant='normal'>cm</mi>
|
1076
|
+
</mrow>
|
1077
|
+
<mrow>
|
1078
|
+
<mo>−</mo>
|
1079
|
+
<mn>2</mn>
|
1080
|
+
</mrow>
|
1081
|
+
</msup>
|
1082
|
+
</mrow>
|
1083
|
+
</math>
|
1084
|
+
</UnitSymbol>
|
1085
|
+
<RootUnits>
|
1086
|
+
<EnumeratedRootUnit unit='thermochemical calorie'/>
|
1087
|
+
<EnumeratedRootUnit unit='meter' prefix='c' powerNumerator='-2'/>
|
1088
|
+
</RootUnits>
|
1089
|
+
</Unit>
|
1090
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-2' xml:id='NISTp10_-2'>
|
1091
|
+
<PrefixName xml:lang='en'>centi</PrefixName>
|
1092
|
+
<PrefixSymbol type='ASCII'>c</PrefixSymbol>
|
1093
|
+
<PrefixSymbol type='unicode'>c</PrefixSymbol>
|
1094
|
+
<PrefixSymbol type='LaTeX'>c</PrefixSymbol>
|
1095
|
+
<PrefixSymbol type='HTML'>c</PrefixSymbol>
|
1096
|
+
</Prefix>
|
1097
|
+
</math>
|
1098
|
+
OUTPUT
|
1099
|
+
end
|
1100
|
+
|
1101
|
+
it "deals with symbol input" do
|
1102
|
+
expect(xmlpp(Asciimath2UnitsML::Conv.new().Asciimath2UnitsML(<<~INPUT))).to be_equivalent_to xmlpp(<<~OUTPUT)
|
1103
|
+
9 "unitsml(m, symbol: La)" + 10 "unitsml(cm*s^-2, symbol: cm cdot s^-2)"
|
1104
|
+
INPUT
|
1105
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1106
|
+
<mn>9</mn>
|
1107
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
1108
|
+
<mrow xref='U_NISTu1'>
|
1109
|
+
<math>
|
1110
|
+
<mi mathvariant='normal'>L</mi>
|
1111
|
+
<mi mathvariant='normal'>a</mi>
|
1112
|
+
</math>
|
1113
|
+
</mrow>
|
1114
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_NISTu1' dimensionURL='#NISTd1'>
|
1115
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
1116
|
+
<UnitName xml:lang='en'>meter</UnitName>
|
1117
|
+
<UnitSymbol type='HTML'>m</UnitSymbol>
|
1118
|
+
<UnitSymbol type='MathML'>
|
1119
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1120
|
+
<mrow>
|
1121
|
+
<mi mathvariant='normal'>m</mi>
|
1122
|
+
</mrow>
|
1123
|
+
</math>
|
1124
|
+
</UnitSymbol>
|
1125
|
+
</Unit>
|
1126
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd1'>
|
1127
|
+
<Length symbol='L' powerNumerator='1'/>
|
1128
|
+
</Dimension>
|
1129
|
+
<mo>+</mo>
|
1130
|
+
<mn>10</mn>
|
1131
|
+
<mo rspace='thickmathspace'>⁢</mo>
|
1132
|
+
<mrow xref='U_cm.s-2'>
|
1133
|
+
<math>
|
1134
|
+
<mi mathvariant='normal'>c</mi>
|
1135
|
+
<mi mathvariant='normal'>m</mi>
|
1136
|
+
<mo>⋅</mo>
|
1137
|
+
<msup>
|
1138
|
+
<mrow>
|
1139
|
+
<mi mathvariant='normal'>s</mi>
|
1140
|
+
</mrow>
|
1141
|
+
<mrow>
|
1142
|
+
<mo>−</mo>
|
1143
|
+
</mrow>
|
1144
|
+
</msup>
|
1145
|
+
<mn>2</mn>
|
1146
|
+
</math>
|
1147
|
+
</mrow>
|
1148
|
+
<Unit xmlns='http://unitsml.nist.gov/2005' xml:id='U_cm.s-2' dimensionURL='#NISTd28'>
|
1149
|
+
<UnitSystem name='SI' type='SI_derived' xml:lang='en-US'/>
|
1150
|
+
<UnitName xml:lang='en'>cm*s^-2</UnitName>
|
1151
|
+
<UnitSymbol type='HTML'>
|
1152
|
+
cm·s
|
1153
|
+
<sup>−2</sup>
|
1154
|
+
</UnitSymbol>
|
1155
|
+
<UnitSymbol type='MathML'>
|
1156
|
+
<math xmlns='http://www.w3.org/1998/Math/MathML'>
|
1157
|
+
<mrow>
|
1158
|
+
<mi mathvariant='normal'>cm</mi>
|
1159
|
+
<mo>·</mo>
|
1160
|
+
<msup>
|
1161
|
+
<mrow>
|
1162
|
+
<mi mathvariant='normal'>s</mi>
|
1163
|
+
</mrow>
|
1164
|
+
<mrow>
|
1165
|
+
<mo>−</mo>
|
1166
|
+
<mn>2</mn>
|
1167
|
+
</mrow>
|
1168
|
+
</msup>
|
1169
|
+
</mrow>
|
1170
|
+
</math>
|
1171
|
+
</UnitSymbol>
|
1172
|
+
<RootUnits>
|
1173
|
+
<EnumeratedRootUnit unit='meter' prefix='c'/>
|
1174
|
+
<EnumeratedRootUnit unit='second' powerNumerator='-2'/>
|
1175
|
+
</RootUnits>
|
1176
|
+
</Unit>
|
1177
|
+
<Prefix xmlns='http://unitsml.nist.gov/2005' prefixBase='10' prefixPower='-2' xml:id='NISTp10_-2'>
|
1178
|
+
<PrefixName xml:lang='en'>centi</PrefixName>
|
1179
|
+
<PrefixSymbol type='ASCII'>c</PrefixSymbol>
|
1180
|
+
<PrefixSymbol type='unicode'>c</PrefixSymbol>
|
1181
|
+
<PrefixSymbol type='LaTeX'>c</PrefixSymbol>
|
1182
|
+
<PrefixSymbol type='HTML'>c</PrefixSymbol>
|
1183
|
+
</Prefix>
|
1184
|
+
<Dimension xmlns='http://unitsml.nist.gov/2005' xml:id='NISTd28'>
|
1185
|
+
<Length symbol='L' powerNumerator='1'/>
|
1186
|
+
<Time symbol='T' powerNumerator='-2'/>
|
1187
|
+
</Dimension>
|
1188
|
+
</math>
|
1189
|
+
OUTPUT
|
1190
|
+
end
|
1191
|
+
|
1192
|
+
|
588
1193
|
end
|