### GENERATED from testcases.csv by '../buildtools/build/stripat -f fits'
### DO NOT EDIT
Hz,			, 0 0/Hertz/1
m,			, 0 0/Meter/1
1, no dimensionless symbol
,	empty string should fail to parse
n,			, u0 0/n/1
Pa,		, !0 0/Pascal/1
Ga,	, !0 9/JulianYear/1, fits:Ga, ogip:Gyr, cds:Gyr, vounits:Gyr
Pyr,	, !0 15/JulianYear/1
da,		, 0 -1/JulianYear/1
cd,		, !0 0/Candela/1
dazzle,		, 0 1/zzle/1
wiggle/week,		, u0 0/wiggle/1 0/week/-1, ogip:wiggle /week
Marcsec,		, s0 6/ArcSecond/1
mas,	, !0 0/MilliArcSecond/1
mmas,	, s0 -3/MilliArcSecond/1
pixel/s,	, 0 0/Pixel/1 0/SecondTime/-1,	fits:pixel s-1, ogip:pixel /s, cds:pix/s, vounits:pixel.s**-1
pixe,                           , u0 -12/ixe/1
pix/s,		, !0 0/Pixel/1 0/SecondTime/-1,	fits:pixel s-1, ogip:pixel /s, cds:pix/s, vounits:pixel.s**-1
erg/s,		, ?0 0/Erg/1 0/SecondTime/-1,	fits:erg s-1, ogip:erg /s
cy,		, !0 0/JulianCentury/1
Ba,		, ?0 0/BesselianYear/1
ta,		, ?0 0/YearTropical/1
Qm,			, 0 30/Meter/1,	fits:Qm, latex:\si{\quetta m}
Rm,			, 0 27/Meter/1,	fits:Rm, latex:\si{\ronna m}
Ym,			, 0 24/Meter/1,	fits:Ym, latex:\si{\yotta m}
Zm,			, 0 21/Meter/1,	fits:Zm, latex:\si{\zetta m}
Em,			, 0 18/Meter/1,	fits:Em, latex:\si{\exa m}
Pm,			, 0 15/Meter/1,	fits:Pm, latex:\si{\peta m}
Tm,			, 0 12/Meter/1,	fits:Tm, latex:\si{\tera m}
Gm,			, 0 9/Meter/1,	fits:Gm, latex:\si{\giga m}
Mm,			, 0 6/Meter/1,	fits:Mm, latex:\si{\mega m}
km,			, 0 3/Meter/1,	fits:km, latex:\si{\kilo m}
hm,			, 0 2/Meter/1,	fits:hm, latex:\si{\hecto m}
dam,	                , 0 1/Meter/1,	fits:dam, latex:\si{\deca m}
dm,			, 0 -1/Meter/1,	fits:dm, latex:\si{\deci m}
cs,			, 0 -2/SecondTime/1,	fits:cs, latex:\si{\centi s}
ms,			, 0 -3/SecondTime/1,	fits:ms, latex:\si{\milli s}
us,			, 0 -6/SecondTime/1,	fits:us, latex:\si{\micro s}
ns,			, 0 -9/SecondTime/1,	fits:ns, latex:\si{\nano s}
ps,			, 0 -12/SecondTime/1,	fits:ps, latex:\si{\pico s}
fs,			, 0 -15/SecondTime/1,	fits:fs, latex:\si{\femto s}
as,			, 0 -18/SecondTime/1,	fits:as, latex:\si{\atto s}
zs,			, 0 -21/SecondTime/1,	fits:zs, latex:\si{\zepto s}
ys,			, 0 -24/SecondTime/1,	fits:ys, latex:\si{\yocto s}
rs,			, 0 -27/SecondTime/1,	fits:rs, latex:\si{\ronto s}
qs,			, 0 -30/SecondTime/1,	fits:qs, latex:\si{\quecto s}
KW,			, u0 0/KW/1
dam dB2,		, u0 1/Meter/1 -1/B/2
dam.dB**2,, u0 1/Meter/1 -1/B/2
mdB,			, u0 -3/dB/1
m kg,			, 0 3/Gram/1 0/Meter/1,	fits:m kg, ogip:m kg, latex:\si{m.\kilo g}
m*kg,			, 0 3/Gram/1 0/Meter/1,	fits:m kg, ogip:m kg
(m*kg)*s,		, 0 3/Gram/1 0/Meter/1 0/SecondTime/1,	fits:m kg s, ogip:m kg s
m.kg,		, 0 3/Gram/1 0/Meter/1
m *kg,		invalid product
m* kg,		invalid product
m. kg,		invalid product
m   . kg,	invalid product
mHz^2 Gs**-3.mmag*mm^3, , 0 -3/StellarMagnitude/1 -3/Hertz/2 -3/Meter/3 9/SecondTime/-3,	fits:mHz2 Gs-3 mmag mm3,ogip:mHz**(2) /Gs**(3) mmag mm**(3), cds:mHz2/Gs3.mmag.mm3, latex:\si{\milli Hz^{2}\per \giga s^{3}.\milli mag.\milli m^{3}}
m**(2),			, 0 0/Meter/2
m**2,			, 0 0/Meter/2
m**+2,			, 0 0/Meter/2
m**(-3),		, 0 0/Meter/-3
m+2,			, 0 0/Meter/2
m2,			, 0 0/Meter/2
m^2,			, 0 0/Meter/2
m^(+2),			, 0 0/Meter/2
m-3,			, 0 0/Meter/-3
m^(-3),         	, 0 0/Meter/-3
mm**(2),		, 0 -3/Meter/2
mm**(-2),		, 0 -3/Meter/-2
mm^-2,		, 0 -3/Meter/-2
/m3,		, 0 0/Meter/-3
/m**3,		, 0 0/Meter/-3
/m,		, 0 0/Meter/-1
/(m s),	, 0 0/Meter/-1 0/SecondTime/-1
/m/s,	multiple slashes
m ^2,	       spaces in power
m^ 2,	       spaces in power
m** 2,			spaces in power
m **2,			spaces in power
m(1.5),		, 0 0/Meter/1.5
m^(1.5),	        , 0 0/Meter/1.5
m**(1.5),		, 0 0/Meter/1.5
m^1.5,		non-integer powers must be surrounded by parentheses
m(3/2),			, 0 0/Meter/1.5,	fits:m(1.5), ogip:m**(1.5)
m^(-3/2),		, 0 0/Meter/-1.5,	fits:m(-1.5), ogip:/m**(1.5), latex:\si{\per m^{1.5}}
m**(3/2),			, 0 0/Meter/1.5
m^3/2,			non-integer powers must be surrounded by parentheses
m1.5,			non-integer powers must be surrounded by parentheses
10^3Hz,			, 3 0/Hertz/1
10+3Hz,			, 3 0/Hertz/1
10-3Hz,			, -3 0/Hertz/1
10**3Hz,		, 3 0/Hertz/1,	fits:10^3 Hz, ogip:10**(3) Hz, cds:10+3Hz, latex:\si{1000Hz}
10**(3)Hz,		, 3 0/Hertz/1
10**(-3)Hz,		, -3 0/Hertz/1,	fits:10^-3 Hz, ogip:10**(-3) Hz, cds:10-3Hz
-10**3Hz,	negative factor
10**3 Hz,	, 3 0/Hertz/1
0.1nm,    malformed prefix
3*10**2Hz,	non-round factor
3x10+2Hz,	non-round factor
10Hz,	factor without power
10**3m/s,		, 3 0/Meter/1 0/SecondTime/-1
km/s,			, 0 3/Meter/1 0/SecondTime/-1
kg m/s**2,	, 0 3/Gram/1 0/Meter/1 0/SecondTime/-2
m**3/kg s^2,		ambiguous divisor
m**3/kg/s^2,		multiple divisors
kg/(mm*s),		, 0 3/Gram/1 -3/Meter/-1 0/SecondTime/-1
m)s,            bad syntax
m***3, 		bad power string (though valid tokens)
m=s,            invalid character in input
10+1%,                  invalid character
KiB,			, u0 0/KiB/1, fits:KiB
Kibyte,			, u0 0/Kibyte/1, fits:Kibyte
kbyte,			, !0 3/Byte/1, fits:kbyte
log(Hz),		, 0 log(0/Hertz/1), fits:log(Hz), ogip:log(Hz), vounits:log(Hz), cds:[Hz], latex:\si{\text{\ensuremath{\log(\si{Hz})}}}
log(MHz),		, 0 log(6/Hertz/1), fits:log(MHz), cds:[MHz]
log(Hz ),		spurious space
log( Hz),		spurious space
sqrt(Hz),		, 0 sqrt(0/Hertz/1), fits:sqrt(Hz)
log(Hz.m),		, 0 log(0/Hertz/1 0/Meter/1)
log(V^2/Hz),            , 0 log(0/Volt/2 0/Hertz/-1)
sqrt(V^2/(mm^3.log(Hz.m)/Pa)),	, 0 sqrt(0/Pascal/1 0/Volt/2 -3/Meter/-3 log(0/Hertz/1 0/Meter/1)^-1)
mm log(MHz us) foo(MOhm)/kV,	, 0 -3/Meter/1 3/Volt/-1 log(6/Hertz/1 -6/SecondTime/1) foo(6/Ohm/1), fits:mm log(MHz us) foo(MOhm) kV-1, latex:\si{\milli m.\text{\ensuremath{\log(\si{\mega Hz.\micro s})}}.\text{\ensuremath{\mathop{\mathrm{foo}}(\si{\mega \ohm})}}\per \kilo V}
log(Hz m),		, 0 log(0/Hertz/1 0/Meter/1)
log(V**2/Hz),		, 0 log(0/Volt/2 0/Hertz/-1)
