@wisemen/quantity 0.3.3 → 0.3.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.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/quantities/mass/index.d.ts +4 -0
- package/dist/quantities/mass/index.js +5 -0
- package/dist/quantities/mass/index.js.map +1 -0
- package/dist/quantities/mass/mass-unit.enum.d.ts +16 -0
- package/dist/quantities/mass/mass-unit.enum.js +25 -0
- package/dist/quantities/mass/mass-unit.enum.js.map +1 -0
- package/dist/quantities/mass/mass.column.d.ts +3 -0
- package/dist/quantities/mass/mass.column.js +6 -0
- package/dist/quantities/mass/mass.column.js.map +1 -0
- package/dist/quantities/mass/mass.d.ts +9 -0
- package/dist/quantities/mass/mass.dto.d.ts +21 -0
- package/dist/quantities/mass/mass.dto.js +60 -0
- package/dist/quantities/mass/mass.dto.js.map +1 -0
- package/dist/quantities/mass/mass.js +32 -0
- package/dist/quantities/mass/mass.js.map +1 -0
- package/dist/quantities/mass/tests/mass.unit.test.d.ts +1 -0
- package/dist/quantities/mass/tests/mass.unit.test.js +74 -0
- package/dist/quantities/mass/tests/mass.unit.test.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './quantities/current/index.js';
|
|
2
2
|
export * from './quantities/distance/index.js';
|
|
3
3
|
export * from './quantities/duration/index.js';
|
|
4
|
+
export * from './quantities/mass/index.js';
|
|
4
5
|
export * from './quantities/temperature/index.js';
|
|
5
6
|
export * from './quantities/energy/index.js';
|
|
6
7
|
export * from './quantities/power/index.js';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './quantities/current/index.js';
|
|
2
2
|
export * from './quantities/distance/index.js';
|
|
3
3
|
export * from './quantities/duration/index.js';
|
|
4
|
+
export * from './quantities/mass/index.js';
|
|
4
5
|
export * from './quantities/temperature/index.js';
|
|
5
6
|
export * from './quantities/energy/index.js';
|
|
6
7
|
export * from './quantities/power/index.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAA;AAC7C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,gCAAgC,CAAA;AAC9C,cAAc,4BAA4B,CAAA;AAC1C,cAAc,mCAAmC,CAAA;AACjD,cAAc,8BAA8B,CAAA;AAC5C,cAAc,6BAA6B,CAAA;AAC3C,cAAc,6BAA6B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/quantities/mass/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ApiPropertyOptions } from '@nestjs/swagger';
|
|
2
|
+
export declare enum MassUnit {
|
|
3
|
+
KILOGRAM = "kg",
|
|
4
|
+
GRAM = "g",
|
|
5
|
+
DECIGRAM = "dg",
|
|
6
|
+
CENTIGRAM = "cg",
|
|
7
|
+
MILLIGRAM = "mg",
|
|
8
|
+
MICROGRAM = "\u03BCg",
|
|
9
|
+
NANOGRAM = "ng",
|
|
10
|
+
DECAGRAM = "dag",
|
|
11
|
+
HECTOGRAM = "hg",
|
|
12
|
+
TONNE = "t",
|
|
13
|
+
POUND = "lb",
|
|
14
|
+
OUNCE = "oz"
|
|
15
|
+
}
|
|
16
|
+
export declare function MassUnitApiProperty(options?: ApiPropertyOptions): PropertyDecorator;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
2
|
+
export var MassUnit;
|
|
3
|
+
(function (MassUnit) {
|
|
4
|
+
MassUnit["KILOGRAM"] = "kg";
|
|
5
|
+
MassUnit["GRAM"] = "g";
|
|
6
|
+
MassUnit["DECIGRAM"] = "dg";
|
|
7
|
+
MassUnit["CENTIGRAM"] = "cg";
|
|
8
|
+
MassUnit["MILLIGRAM"] = "mg";
|
|
9
|
+
MassUnit["MICROGRAM"] = "\u03BCg";
|
|
10
|
+
MassUnit["NANOGRAM"] = "ng";
|
|
11
|
+
MassUnit["DECAGRAM"] = "dag";
|
|
12
|
+
MassUnit["HECTOGRAM"] = "hg";
|
|
13
|
+
MassUnit["TONNE"] = "t";
|
|
14
|
+
MassUnit["POUND"] = "lb";
|
|
15
|
+
MassUnit["OUNCE"] = "oz";
|
|
16
|
+
})(MassUnit || (MassUnit = {}));
|
|
17
|
+
export function MassUnitApiProperty(options) {
|
|
18
|
+
return ApiProperty({
|
|
19
|
+
...options,
|
|
20
|
+
enum: MassUnit,
|
|
21
|
+
enumName: 'MassUnit',
|
|
22
|
+
example: MassUnit.KILOGRAM
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=mass-unit.enum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mass-unit.enum.js","sourceRoot":"","sources":["../../../lib/quantities/mass/mass-unit.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAsB,MAAM,iBAAiB,CAAA;AAEjE,MAAM,CAAN,IAAY,QAiBX;AAjBD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IAEf,sBAAU,CAAA;IACV,2BAAe,CAAA;IACf,4BAAgB,CAAA;IAChB,4BAAgB,CAAA;IAChB,iCAAgB,CAAA;IAChB,2BAAe,CAAA;IAEf,4BAAgB,CAAA;IAChB,4BAAgB,CAAA;IAEhB,uBAAW,CAAA;IAEX,wBAAY,CAAA;IACZ,wBAAY,CAAA;AACd,CAAC,EAjBW,QAAQ,KAAR,QAAQ,QAiBnB;AAED,MAAM,UAAU,mBAAmB,CAAE,OAA4B;IAC/D,OAAO,WAAW,CAAC;QACjB,GAAG,OAAO;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,QAAQ,CAAC,QAAQ;KAC3B,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mass.column.js","sourceRoot":"","sources":["../../../lib/quantities/mass/mass.column.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAEzD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEhC,MAAM,UAAU,UAAU,CACxB,WAAqB,EACrB,OAAqD;IAErD,OAAO,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAA;AACnD,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Quantity } from '../../quantity.js';
|
|
2
|
+
import { MassUnit } from './mass-unit.enum.js';
|
|
3
|
+
export declare class Mass extends Quantity<MassUnit, Mass> {
|
|
4
|
+
protected baseUnit: MassUnit;
|
|
5
|
+
protected convertValueToBaseUnit(value: number, fromUnit: MassUnit): number;
|
|
6
|
+
protected convertBaseUnitValueTo(value: number, toUnit: MassUnit): number;
|
|
7
|
+
get kilograms(): number;
|
|
8
|
+
get grams(): number;
|
|
9
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Mass } from './mass.js';
|
|
2
|
+
import { MassUnit } from './mass-unit.enum.js';
|
|
3
|
+
export declare class MassDto {
|
|
4
|
+
value: number;
|
|
5
|
+
unit: MassUnit;
|
|
6
|
+
static from(mass: undefined): undefined;
|
|
7
|
+
static from(mass: null): null;
|
|
8
|
+
static from(mass: Mass): MassDto;
|
|
9
|
+
static from(mass: undefined | null): undefined | null;
|
|
10
|
+
static from(mass: Mass | null): MassDto | null;
|
|
11
|
+
static from(mass: Mass | undefined): MassDto | undefined;
|
|
12
|
+
static from(mass: Mass | null | undefined): MassDto | null | undefined;
|
|
13
|
+
parse(): Mass;
|
|
14
|
+
}
|
|
15
|
+
export declare class MassDtoBuilder {
|
|
16
|
+
private readonly dto;
|
|
17
|
+
constructor();
|
|
18
|
+
withValue(value: number): this;
|
|
19
|
+
withUnit(unit: MassUnit): this;
|
|
20
|
+
build(): MassDto;
|
|
21
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { ApiProperty } from '@nestjs/swagger';
|
|
11
|
+
import { IsEnum, IsNumber } from 'class-validator';
|
|
12
|
+
import { Mass } from './mass.js';
|
|
13
|
+
import { MassUnit, MassUnitApiProperty } from './mass-unit.enum.js';
|
|
14
|
+
export class MassDto {
|
|
15
|
+
value;
|
|
16
|
+
unit;
|
|
17
|
+
static from(mass) {
|
|
18
|
+
if (mass === null)
|
|
19
|
+
return null;
|
|
20
|
+
if (mass === undefined)
|
|
21
|
+
return undefined;
|
|
22
|
+
return new MassDtoBuilder()
|
|
23
|
+
.withValue(mass.value)
|
|
24
|
+
.withUnit(mass.unit)
|
|
25
|
+
.build();
|
|
26
|
+
}
|
|
27
|
+
parse() {
|
|
28
|
+
return new Mass(this.value, this.unit);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
__decorate([
|
|
32
|
+
ApiProperty({ type: Number }),
|
|
33
|
+
IsNumber(),
|
|
34
|
+
__metadata("design:type", Number)
|
|
35
|
+
], MassDto.prototype, "value", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
MassUnitApiProperty(),
|
|
38
|
+
IsEnum(MassUnit),
|
|
39
|
+
__metadata("design:type", String)
|
|
40
|
+
], MassDto.prototype, "unit", void 0);
|
|
41
|
+
export class MassDtoBuilder {
|
|
42
|
+
dto;
|
|
43
|
+
constructor() {
|
|
44
|
+
this.dto = new MassDto();
|
|
45
|
+
this.dto.value = 0;
|
|
46
|
+
this.dto.unit = MassUnit.KILOGRAM;
|
|
47
|
+
}
|
|
48
|
+
withValue(value) {
|
|
49
|
+
this.dto.value = value;
|
|
50
|
+
return this;
|
|
51
|
+
}
|
|
52
|
+
withUnit(unit) {
|
|
53
|
+
this.dto.unit = unit;
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
build() {
|
|
57
|
+
return this.dto;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=mass.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mass.dto.js","sourceRoot":"","sources":["../../../lib/quantities/mass/mass.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAEnE,MAAM,OAAO,OAAO;IAGlB,KAAK,CAAQ;IAIb,IAAI,CAAU;IASd,MAAM,CAAC,IAAI,CAAE,IAA6B;QACxC,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,IAAI,CAAA;QAC9B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QAExC,OAAO,IAAI,cAAc,EAAE;aACxB,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC;aACrB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;aACnB,KAAK,EAAE,CAAA;IACZ,CAAC;IAED,KAAK;QACH,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;CACF;AA1BC;IAFC,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC7B,QAAQ,EAAE;;sCACE;AAIb;IAFC,mBAAmB,EAAE;IACrB,MAAM,CAAC,QAAQ,CAAC;;qCACH;AAwBhB,MAAM,OAAO,cAAc;IACR,GAAG,CAAS;IAE7B;QACE,IAAI,CAAC,GAAG,GAAG,IAAI,OAAO,EAAE,CAAA;QACxB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAA;QAClB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAA;IACnC,CAAC;IAED,SAAS,CAAE,KAAa;QACtB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;QAEtB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,QAAQ,CAAE,IAAc;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAA;QAEpB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;CACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Quantity } from '../../quantity.js';
|
|
2
|
+
import { MassUnit } from './mass-unit.enum.js';
|
|
3
|
+
const MASS_MULTIPLIERS = {
|
|
4
|
+
[MassUnit.KILOGRAM]: 1,
|
|
5
|
+
[MassUnit.GRAM]: 1e-3,
|
|
6
|
+
[MassUnit.DECIGRAM]: 1e-4,
|
|
7
|
+
[MassUnit.CENTIGRAM]: 1e-5,
|
|
8
|
+
[MassUnit.MILLIGRAM]: 1e-6,
|
|
9
|
+
[MassUnit.MICROGRAM]: 1e-9,
|
|
10
|
+
[MassUnit.NANOGRAM]: 1e-12,
|
|
11
|
+
[MassUnit.DECAGRAM]: 1e-2,
|
|
12
|
+
[MassUnit.HECTOGRAM]: 1e-1,
|
|
13
|
+
[MassUnit.TONNE]: 1e3,
|
|
14
|
+
[MassUnit.POUND]: 0.45359237,
|
|
15
|
+
[MassUnit.OUNCE]: 0.028349523125
|
|
16
|
+
};
|
|
17
|
+
export class Mass extends Quantity {
|
|
18
|
+
baseUnit = MassUnit.KILOGRAM;
|
|
19
|
+
convertValueToBaseUnit(value, fromUnit) {
|
|
20
|
+
return value * MASS_MULTIPLIERS[fromUnit];
|
|
21
|
+
}
|
|
22
|
+
convertBaseUnitValueTo(value, toUnit) {
|
|
23
|
+
return value / MASS_MULTIPLIERS[toUnit];
|
|
24
|
+
}
|
|
25
|
+
get kilograms() {
|
|
26
|
+
return this.asNumber(MassUnit.KILOGRAM);
|
|
27
|
+
}
|
|
28
|
+
get grams() {
|
|
29
|
+
return this.asNumber(MassUnit.GRAM);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=mass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mass.js","sourceRoot":"","sources":["../../../lib/quantities/mass/mass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,MAAM,gBAAgB,GAA6B;IACjD,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAEtB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI;IACrB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI;IACzB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI;IAC1B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI;IAC1B,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI;IAC1B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK;IAE1B,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,IAAI;IACzB,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI;IAE1B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,GAAG;IAErB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,UAAU;IAC5B,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,cAAc;CACjC,CAAA;AAED,MAAM,OAAO,IAAK,SAAQ,QAAwB;IACtC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAA;IAE5B,sBAAsB,CAAE,KAAa,EAAE,QAAkB;QACjE,OAAO,KAAK,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,MAAgB;QAC/D,OAAO,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACzC,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { describe, it } from 'node:test';
|
|
2
|
+
import { expect } from 'expect';
|
|
3
|
+
import { Mass } from '../mass.js';
|
|
4
|
+
import { MassUnit } from '../mass-unit.enum.js';
|
|
5
|
+
void describe('Mass class', () => {
|
|
6
|
+
void describe('Mass calculations', () => {
|
|
7
|
+
void it('adds masses', () => {
|
|
8
|
+
const m1 = new Mass(1, MassUnit.KILOGRAM);
|
|
9
|
+
const m2 = new Mass(500, MassUnit.GRAM);
|
|
10
|
+
const r = m1.add(m2);
|
|
11
|
+
expect(r.isEqualTo(1.5, MassUnit.KILOGRAM)).toBe(true);
|
|
12
|
+
});
|
|
13
|
+
void it('subtracts masses', () => {
|
|
14
|
+
const m1 = new Mass(1, MassUnit.KILOGRAM);
|
|
15
|
+
const m2 = new Mass(250, MassUnit.GRAM);
|
|
16
|
+
const r = m1.subtract(m2);
|
|
17
|
+
expect(r.isEqualTo(750, MassUnit.GRAM)).toBe(true);
|
|
18
|
+
});
|
|
19
|
+
void it('divides masses', () => {
|
|
20
|
+
const m1 = new Mass(1, MassUnit.KILOGRAM);
|
|
21
|
+
const m2 = new Mass(250, MassUnit.GRAM);
|
|
22
|
+
const r1 = m1.divide(2);
|
|
23
|
+
const r2 = m1.divide(m2);
|
|
24
|
+
const r3 = m1.divide(0.5, MassUnit.KILOGRAM);
|
|
25
|
+
expect(r1.isEqualTo(500, MassUnit.GRAM)).toBe(true);
|
|
26
|
+
expect(r2).toBe(4);
|
|
27
|
+
expect(r3).toBe(2);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
void describe('Mass conversions', () => {
|
|
31
|
+
void it('converts kg to g', () => {
|
|
32
|
+
const mass = new Mass(1, MassUnit.KILOGRAM);
|
|
33
|
+
expect(mass.isEqualTo(1000, MassUnit.GRAM)).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
void it('converts kg to mg', () => {
|
|
36
|
+
const mass = new Mass(1, MassUnit.KILOGRAM);
|
|
37
|
+
expect(mass.isEqualTo(1_000_000, MassUnit.MILLIGRAM)).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
void it('converts kg to tonnes', () => {
|
|
40
|
+
const mass = new Mass(1, MassUnit.KILOGRAM);
|
|
41
|
+
expect(mass.to(MassUnit.TONNE).value).toBeCloseTo(0.001, 6);
|
|
42
|
+
});
|
|
43
|
+
void it('converts kg to pounds', () => {
|
|
44
|
+
const mass = new Mass(1, MassUnit.KILOGRAM);
|
|
45
|
+
expect(mass.to(MassUnit.POUND).value).toBeCloseTo(2.2046226, 6);
|
|
46
|
+
});
|
|
47
|
+
void it('converts kg to ounces', () => {
|
|
48
|
+
const mass = new Mass(1, MassUnit.KILOGRAM);
|
|
49
|
+
expect(mass.to(MassUnit.OUNCE).value).toBeCloseTo(35.27396, 5);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
void describe('Mass getters', () => {
|
|
53
|
+
void it('returns kilograms and grams', () => {
|
|
54
|
+
const mass = new Mass(1, MassUnit.KILOGRAM);
|
|
55
|
+
expect(mass.kilograms).toBe(1);
|
|
56
|
+
expect(mass.grams).toBe(1000);
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
void describe('Mass formatting', () => {
|
|
60
|
+
void it('converts to string', () => {
|
|
61
|
+
const mass = new Mass(10, MassUnit.KILOGRAM);
|
|
62
|
+
expect(mass.toString()).toBe('10kg');
|
|
63
|
+
});
|
|
64
|
+
void it('converts to JSON', () => {
|
|
65
|
+
const mass = new Mass(10, MassUnit.KILOGRAM);
|
|
66
|
+
const json = mass.toJSON();
|
|
67
|
+
expect(json).toEqual({
|
|
68
|
+
value: 10,
|
|
69
|
+
unit: MassUnit.KILOGRAM
|
|
70
|
+
});
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=mass.unit.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mass.unit.test.js","sourceRoot":"","sources":["../../../../lib/quantities/mass/tests/mass.unit.test.ts"],"names":[],"mappings":"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"}
|