@openhps/core
Version:
Open Hybrid Positioning System - Core component
69 lines (62 loc) • 2.37 kB
text/typescript
/**
* @category Unit
*/
export class UnitPrefix {
static readonly DECA = new UnitPrefix('deca', 'da', 1e1);
static readonly HECTO = new UnitPrefix('hecto', 'h', 1e2);
static readonly KILO = new UnitPrefix('kilo', 'k', 1e3);
static readonly MEGA = new UnitPrefix('mega', 'M', 1e6);
static readonly GIGA = new UnitPrefix('giga', 'G', 1e9);
static readonly TERA = new UnitPrefix('tera', 'T', 1e12);
static readonly PETA = new UnitPrefix('peta', 'P', 1e15);
static readonly EXA = new UnitPrefix('exa', 'E', 1e18);
static readonly ZETTA = new UnitPrefix('zetta', 'Z', 1e21);
static readonly YOTTA = new UnitPrefix('yotta', 'Y', 1e24);
static readonly DECI = new UnitPrefix('deci', 'd', 1e-1);
static readonly CENTI = new UnitPrefix('centi', 'c', 1e-2);
static readonly MILLI = new UnitPrefix('milli', 'm', 1e-3);
static readonly MICRO = new UnitPrefix('micro', 'u', 1e-6);
static readonly NANO = new UnitPrefix('nano', 'n', 1e-9);
static readonly PICO = new UnitPrefix('pico', 'p', 1e-12);
static readonly FEMTO = new UnitPrefix('femto', 'f', 1e-15);
static readonly ATTO = new UnitPrefix('atto', 'a', 1e-18);
static readonly ZEPTO = new UnitPrefix('zepto', 'z', 1e-21);
static readonly YOCTO = new UnitPrefix('yocto', 'y', 1e-24);
static readonly DECIMAL: UnitPrefix[] = [
UnitPrefix.DECA,
UnitPrefix.HECTO,
UnitPrefix.KILO,
UnitPrefix.MEGA,
UnitPrefix.GIGA,
UnitPrefix.TERA,
UnitPrefix.PETA,
UnitPrefix.EXA,
UnitPrefix.ZETTA,
UnitPrefix.YOTTA,
UnitPrefix.DECI,
UnitPrefix.CENTI,
UnitPrefix.MILLI,
UnitPrefix.MICRO,
UnitPrefix.NANO,
UnitPrefix.PICO,
UnitPrefix.FEMTO,
UnitPrefix.ATTO,
UnitPrefix.ZEPTO,
UnitPrefix.YOCTO,
];
name: string;
abbrevation: string;
magnitude: number;
private constructor(name: string, abbrevation: string, magnitude: number) {
this.name = name;
this.abbrevation = abbrevation;
this.magnitude = magnitude;
}
get namePattern(): RegExp {
return new RegExp(`/^${this.name}/g`);
}
get abbrevationPattern(): RegExp {
return new RegExp(`/^${this.abbrevation}/g`);
}
}
export type UnitPrefixType = 'decimal' | 'none';