@wisemen/quantity 0.3.5 → 0.3.6
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/quantities/distance/distance.d.ts +6 -0
- package/dist/quantities/distance/distance.js +15 -0
- package/dist/quantities/distance/distance.js.map +1 -1
- package/dist/quantities/distance/tests/distance.unit.test.js +9 -0
- package/dist/quantities/distance/tests/distance.unit.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { Quantity } from '../../quantity.js';
|
|
2
|
+
import { Duration } from '../duration/duration.js';
|
|
3
|
+
import { Speed } from '../speed/speed.js';
|
|
2
4
|
import { DistanceUnit } from './distance-unit.enum.js';
|
|
3
5
|
export declare class Distance extends Quantity<DistanceUnit, Distance> {
|
|
4
6
|
protected baseUnit: DistanceUnit;
|
|
5
7
|
protected convertValueToBaseUnit(value: number, fromUnit: DistanceUnit): number;
|
|
6
8
|
protected convertBaseUnitValueTo(value: number, toUnit: DistanceUnit): number;
|
|
9
|
+
divide(divisor: number): Distance;
|
|
10
|
+
divide(value: number, unit: DistanceUnit): number;
|
|
11
|
+
divide(distance: Distance): number;
|
|
12
|
+
divide(duration: Duration): Speed;
|
|
7
13
|
get meters(): number;
|
|
8
14
|
get kilometers(): number;
|
|
9
15
|
}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { Quantity } from '../../quantity.js';
|
|
2
|
+
import { Duration } from '../duration/duration.js';
|
|
3
|
+
import { Speed } from '../speed/speed.js';
|
|
4
|
+
import { SpeedUnit } from '../speed/speed-unit.enum.js';
|
|
2
5
|
import { DistanceUnit } from './distance-unit.enum.js';
|
|
3
6
|
const DISTANCE_MULTIPLIERS = {
|
|
4
7
|
[DistanceUnit.METER]: 1,
|
|
@@ -23,6 +26,18 @@ export class Distance extends Quantity {
|
|
|
23
26
|
convertBaseUnitValueTo(value, toUnit) {
|
|
24
27
|
return value / DISTANCE_MULTIPLIERS[toUnit];
|
|
25
28
|
}
|
|
29
|
+
divide(divisor, unit) {
|
|
30
|
+
if (divisor instanceof Duration) {
|
|
31
|
+
return new Speed(this.valueOf() / divisor.valueOf(), SpeedUnit.METER_PER_SECOND);
|
|
32
|
+
}
|
|
33
|
+
if (divisor instanceof Distance) {
|
|
34
|
+
return super.divide(divisor);
|
|
35
|
+
}
|
|
36
|
+
if (unit !== undefined) {
|
|
37
|
+
return super.divide(divisor, unit);
|
|
38
|
+
}
|
|
39
|
+
return super.divide(divisor);
|
|
40
|
+
}
|
|
26
41
|
get meters() {
|
|
27
42
|
return this.asNumber(DistanceUnit.METER);
|
|
28
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distance.js","sourceRoot":"","sources":["../../../lib/quantities/distance/distance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,oBAAoB,GAAiC;IACzD,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAEvB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI;IAC9B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI;IAE9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG;IAC7B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG;IAC9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG;IAE7B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO;CAC9B,CAAA;AAED,MAAM,OAAO,QAAS,SAAQ,QAAgC;IAClD,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAA;IAE7B,sBAAsB,CAAE,KAAa,EAAE,QAAsB;QACrE,OAAO,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,MAAoB;QACnE,OAAO,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"distance.js","sourceRoot":"","sources":["../../../lib/quantities/distance/distance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD,MAAM,oBAAoB,GAAiC;IACzD,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IAEvB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI;IAC9B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,IAAI;IAC/B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI;IAE9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG;IAC7B,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,GAAG;IAC9B,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG;IAE7B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM;IAC3B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,OAAO;CAC9B,CAAA;AAED,MAAM,OAAO,QAAS,SAAQ,QAAgC;IAClD,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAA;IAE7B,sBAAsB,CAAE,KAAa,EAAE,QAAsB;QACrE,OAAO,KAAK,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAES,sBAAsB,CAAE,KAAa,EAAE,MAAoB;QACnE,OAAO,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC;IAMD,MAAM,CAAE,OAAqC,EAAE,IAAmB;QAChE,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;YAChC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,gBAAgB,CAAC,CAAA;QAClF,CAAC;QACD,IAAI,OAAO,YAAY,QAAQ,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAC9B,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACpC,CAAC;QAED,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC9B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;IAC9C,CAAC;CACF"}
|
|
@@ -2,6 +2,9 @@ import { describe, it } from 'node:test';
|
|
|
2
2
|
import { expect } from 'expect';
|
|
3
3
|
import { Distance } from '../distance.js';
|
|
4
4
|
import { DistanceUnit } from '../distance-unit.enum.js';
|
|
5
|
+
import { Duration } from '../../duration/duration.js';
|
|
6
|
+
import { DurationUnit } from '../../duration/duration-unit.enum.js';
|
|
7
|
+
import { SpeedUnit } from '../../speed/speed-unit.enum.js';
|
|
5
8
|
void describe('Distance class', () => {
|
|
6
9
|
void describe('Distance calculations', () => {
|
|
7
10
|
void it('adds distances', () => {
|
|
@@ -26,6 +29,12 @@ void describe('Distance class', () => {
|
|
|
26
29
|
expect(r2).toBe(4);
|
|
27
30
|
expect(r3).toBe(2);
|
|
28
31
|
});
|
|
32
|
+
void it('returns speed when divided by Duration', () => {
|
|
33
|
+
const d = new Distance(220, DistanceUnit.KILOMETER);
|
|
34
|
+
const t = new Duration(2, DurationUnit.HOURS);
|
|
35
|
+
const v = d.divide(t);
|
|
36
|
+
expect(v.isEqualTo(110, SpeedUnit.KILOMETER_PER_HOUR)).toBe(true);
|
|
37
|
+
});
|
|
29
38
|
});
|
|
30
39
|
});
|
|
31
40
|
//# sourceMappingURL=distance.unit.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distance.unit.test.js","sourceRoot":"","sources":["../../../../lib/quantities/distance/tests/distance.unit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"distance.unit.test.js","sourceRoot":"","sources":["../../../../lib/quantities/distance/tests/distance.unit.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAA;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAA;AAG1D,KAAK,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACnC,KAAK,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC1C,KAAK,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC7B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,CAAC,GAAa,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;YAE9B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC1D,CAAC,CAAC,CAAA;QAEF,KAAK,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAClC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;YACpD,MAAM,CAAC,GAAa,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;YAEnC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9D,CAAC,CAAC,CAAA;QAEF,KAAK,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAChC,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;YAEpD,MAAM,EAAE,GAAa,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACjC,MAAM,EAAE,GAAW,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;YAChC,MAAM,EAAE,GAAW,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAErD,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC5D,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;YAClB,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpB,CAAC,CAAC,CAAA;QAEF,KAAK,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YACrD,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,CAAA;YACnD,MAAM,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAA;YAE7C,MAAM,CAAC,GAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAE5B,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|