devtoolz-library 1.0.0
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/baseFactory.d.ts +12 -0
- package/dist/baseFactory.js +33 -0
- package/dist/constants/regexPatterns.d.ts +2 -0
- package/dist/constants/regexPatterns.js +9 -0
- package/dist/converters/numeric-systems/interfaces/INumericSystem.converter.d.ts +4 -0
- package/dist/converters/numeric-systems/interfaces/INumericSystem.converter.factory.d.ts +4 -0
- package/dist/converters/numeric-systems/interfaces/INumericSystem.converter.factory.js +2 -0
- package/dist/converters/numeric-systems/interfaces/INumericSystem.converter.js +2 -0
- package/dist/converters/numeric-systems/numericSystem.converter.d.ts +5 -0
- package/dist/converters/numeric-systems/numericSystem.converter.factory.d.ts +8 -0
- package/dist/converters/numeric-systems/numericSystem.converter.factory.js +17 -0
- package/dist/converters/numeric-systems/numericSystem.converter.js +17 -0
- package/dist/converters/numeric-systems/provider.d.ts +2 -0
- package/dist/converters/numeric-systems/provider.js +11 -0
- package/dist/converters/numeric-systems/services/binary/binary.converter.d.ts +5 -0
- package/dist/converters/numeric-systems/services/binary/binary.converter.js +16 -0
- package/dist/converters/numeric-systems/services/binary/binary.converter.test.d.ts +1 -0
- package/dist/converters/numeric-systems/services/binary/binary.converter.test.js +252 -0
- package/dist/converters/numeric-systems/services/decimal/decimal.converter.d.ts +5 -0
- package/dist/converters/numeric-systems/services/decimal/decimal.converter.js +16 -0
- package/dist/converters/numeric-systems/services/decimal/decimal.converter.test.d.ts +1 -0
- package/dist/converters/numeric-systems/services/decimal/decimal.converter.test.js +199 -0
- package/dist/converters/numeric-systems/services/hexadecimal/hexadecimal.converter.d.ts +5 -0
- package/dist/converters/numeric-systems/services/hexadecimal/hexadecimal.converter.js +18 -0
- package/dist/converters/numeric-systems/services/hexadecimal/hexadecimal.converter.test.d.ts +1 -0
- package/dist/converters/numeric-systems/services/hexadecimal/hexadecimal.converter.test.js +130 -0
- package/dist/converters/numeric-systems/services/octadecimal/octadecimal.converter.d.ts +5 -0
- package/dist/converters/numeric-systems/services/octadecimal/octadecimal.converter.js +15 -0
- package/dist/converters/numeric-systems/services/octadecimal/octadecimal.converter.test.d.ts +1 -0
- package/dist/converters/numeric-systems/services/octadecimal/octadecimal.converter.test.js +151 -0
- package/dist/converters/numeric-systems/services/roman/roman.converter.d.ts +7 -0
- package/dist/converters/numeric-systems/services/roman/roman.converter.js +77 -0
- package/dist/converters/numeric-systems/services/roman/roman.converter.test.d.ts +1 -0
- package/dist/converters/numeric-systems/services/roman/roman.converter.test.js +105 -0
- package/dist/converters/serialization/interfaces/ISerialization.converter.d.ts +5 -0
- package/dist/converters/serialization/interfaces/ISerialization.converter.factory.d.ts +4 -0
- package/dist/converters/serialization/interfaces/ISerialization.converter.factory.js +2 -0
- package/dist/converters/serialization/interfaces/ISerialization.converter.js +2 -0
- package/dist/converters/serialization/interfaces/ISerializationOptions.d.ts +4 -0
- package/dist/converters/serialization/interfaces/ISerializationOptions.js +2 -0
- package/dist/converters/serialization/provider.d.ts +2 -0
- package/dist/converters/serialization/provider.js +7 -0
- package/dist/converters/serialization/serialization.converter.d.ts +6 -0
- package/dist/converters/serialization/serialization.converter.factory.d.ts +9 -0
- package/dist/converters/serialization/serialization.converter.factory.js +20 -0
- package/dist/converters/serialization/serialization.converter.js +17 -0
- package/dist/converters/serialization/services/csv/csv.converter.d.ts +6 -0
- package/dist/converters/serialization/services/csv/csv.converter.js +68 -0
- package/dist/converters/serialization/services/csv/csv.converter.test.d.ts +1 -0
- package/dist/converters/serialization/services/csv/csv.converter.test.js +295 -0
- package/dist/converters/serialization/services/json/json.converter.d.ts +5 -0
- package/dist/converters/serialization/services/json/json.converter.js +12 -0
- package/dist/converters/text-format/inteface/ITextFormatConverter.converter.d.ts +4 -0
- package/dist/converters/text-format/inteface/ITextFormatConverter.converter.factory.d.ts +4 -0
- package/dist/converters/text-format/inteface/ITextFormatConverter.converter.factory.js +2 -0
- package/dist/converters/text-format/inteface/ITextFormatConverter.converter.js +2 -0
- package/dist/converters/text-format/provider.d.ts +2 -0
- package/dist/converters/text-format/provider.js +8 -0
- package/dist/converters/text-format/services/binary/binary-format.converter.d.ts +5 -0
- package/dist/converters/text-format/services/binary/binary-format.converter.js +40 -0
- package/dist/converters/text-format/services/binary/binary-format.converter.test.d.ts +1 -0
- package/dist/converters/text-format/services/binary/binary-format.converter.test.js +174 -0
- package/dist/converters/text-format/services/morse/morse-format.converter.d.ts +6 -0
- package/dist/converters/text-format/services/morse/morse-format.converter.js +85 -0
- package/dist/converters/text-format/services/morse/morse-format.converter.test.d.ts +1 -0
- package/dist/converters/text-format/services/morse/morse-format.converter.test.js +518 -0
- package/dist/converters/text-format/services/text/text-format.converter.d.ts +5 -0
- package/dist/converters/text-format/services/text/text-format.converter.js +12 -0
- package/dist/converters/text-format/textFormatConverter.converter.d.ts +5 -0
- package/dist/converters/text-format/textFormatConverter.converter.factory.d.ts +8 -0
- package/dist/converters/text-format/textFormatConverter.converter.factory.js +17 -0
- package/dist/converters/text-format/textFormatConverter.converter.js +17 -0
- package/dist/converters/unit-converter/converter-base.d.ts +19 -0
- package/dist/converters/unit-converter/converter-base.js +56 -0
- package/dist/converters/unit-converter/interfaces/IUnitConverter.d.ts +9 -0
- package/dist/converters/unit-converter/interfaces/IUnitConverter.js +2 -0
- package/dist/converters/unit-converter/interfaces/IUnitConverterFactory.d.ts +4 -0
- package/dist/converters/unit-converter/interfaces/IUnitConverterFactory.js +2 -0
- package/dist/converters/unit-converter/models/unit.d.ts +7 -0
- package/dist/converters/unit-converter/models/unit.js +2 -0
- package/dist/converters/unit-converter/provider.d.ts +2 -0
- package/dist/converters/unit-converter/provider.js +16 -0
- package/dist/converters/unit-converter/services/angle/angle.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/angle/angle.converter.js +15 -0
- package/dist/converters/unit-converter/services/angle/angle.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/angle/angle.converter.test.js +112 -0
- package/dist/converters/unit-converter/services/area/area.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/area/area.converter.js +24 -0
- package/dist/converters/unit-converter/services/area/area.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/area/area.converter.test.js +439 -0
- package/dist/converters/unit-converter/services/data/data.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/data/data.converter.js +30 -0
- package/dist/converters/unit-converter/services/data/data.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/data/data.converter.test.js +209 -0
- package/dist/converters/unit-converter/services/energy/energy.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/energy/energy.converter.js +20 -0
- package/dist/converters/unit-converter/services/energy/energy.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/energy/energy.converter.test.js +154 -0
- package/dist/converters/unit-converter/services/length/length.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/length/length.converter.js +31 -0
- package/dist/converters/unit-converter/services/length/length.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/length/length.converter.test.js +186 -0
- package/dist/converters/unit-converter/services/power/power.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/power/power.converter.js +17 -0
- package/dist/converters/unit-converter/services/power/power.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/power/power.converter.test.js +223 -0
- package/dist/converters/unit-converter/services/pressure/pressure.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/pressure/pressure.converter.js +18 -0
- package/dist/converters/unit-converter/services/pressure/pressure.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/pressure/pressure.converter.test.js +107 -0
- package/dist/converters/unit-converter/services/speed/speed.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/speed/speed.converter.js +22 -0
- package/dist/converters/unit-converter/services/speed/speed.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/speed/speed.converter.test.js +257 -0
- package/dist/converters/unit-converter/services/temperature/temperature.converter.d.ts +7 -0
- package/dist/converters/unit-converter/services/temperature/temperature.converter.js +46 -0
- package/dist/converters/unit-converter/services/temperature/temperature.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/temperature/temperature.converter.test.js +279 -0
- package/dist/converters/unit-converter/services/time/time.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/time/time.converter.js +26 -0
- package/dist/converters/unit-converter/services/volume/volume.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/volume/volume.converter.js +39 -0
- package/dist/converters/unit-converter/services/volume/volume.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/volume/volume.converter.test.js +295 -0
- package/dist/converters/unit-converter/services/weight-mass/weight-mass.converter.d.ts +4 -0
- package/dist/converters/unit-converter/services/weight-mass/weight-mass.converter.js +29 -0
- package/dist/converters/unit-converter/services/weight-mass/weight-mass.converter.test.d.ts +1 -0
- package/dist/converters/unit-converter/services/weight-mass/weight-mass.converter.test.js +218 -0
- package/dist/converters/unit-converter/unit.converter.factory.d.ts +9 -0
- package/dist/converters/unit-converter/unit.converter.factory.js +20 -0
- package/dist/crypt.d.ts +0 -0
- package/dist/crypt.js +77 -0
- package/dist/documents/cnpj/cnpj.d.ts +14 -0
- package/dist/documents/cnpj/cnpj.formatter.d.ts +5 -0
- package/dist/documents/cnpj/cnpj.formatter.js +12 -0
- package/dist/documents/cnpj/cnpj.generator.d.ts +9 -0
- package/dist/documents/cnpj/cnpj.generator.js +43 -0
- package/dist/documents/cnpj/cnpj.js +47 -0
- package/dist/documents/cnpj/cnpj.validator.d.ts +11 -0
- package/dist/documents/cnpj/cnpj.validator.js +49 -0
- package/dist/documents/cnpj/tests/cnpj.formatter.test.d.ts +1 -0
- package/dist/documents/cnpj/tests/cnpj.formatter.test.js +62 -0
- package/dist/documents/cnpj/tests/cnpj.generator.test.d.ts +1 -0
- package/dist/documents/cnpj/tests/cnpj.generator.test.js +51 -0
- package/dist/documents/cnpj/tests/cnpj.test.d.ts +1 -0
- package/dist/documents/cnpj/tests/cnpj.test.js +162 -0
- package/dist/documents/cnpj/tests/cnpj.validator.test.d.ts +1 -0
- package/dist/documents/cnpj/tests/cnpj.validator.test.js +104 -0
- package/dist/documents/cpf/cpf.d.ts +14 -0
- package/dist/documents/cpf/cpf.formatter.d.ts +5 -0
- package/dist/documents/cpf/cpf.formatter.js +12 -0
- package/dist/documents/cpf/cpf.generator.d.ts +9 -0
- package/dist/documents/cpf/cpf.generator.js +40 -0
- package/dist/documents/cpf/cpf.js +50 -0
- package/dist/documents/cpf/cpf.validator.d.ts +11 -0
- package/dist/documents/cpf/cpf.validator.js +46 -0
- package/dist/documents/cpf/tests/cpf.formatter.test.d.ts +1 -0
- package/dist/documents/cpf/tests/cpf.formatter.test.js +71 -0
- package/dist/documents/cpf/tests/cpf.generator.test.d.ts +1 -0
- package/dist/documents/cpf/tests/cpf.generator.test.js +71 -0
- package/dist/documents/cpf/tests/cpf.test.d.ts +1 -0
- package/dist/documents/cpf/tests/cpf.test.js +151 -0
- package/dist/documents/cpf/tests/cpf.validator.test.d.ts +1 -0
- package/dist/documents/cpf/tests/cpf.validator.test.js +113 -0
- package/dist/documents/interfaces/formatter.interface.d.ts +4 -0
- package/dist/documents/interfaces/formatter.interface.js +2 -0
- package/dist/documents/interfaces/generator.interface.d.ts +3 -0
- package/dist/documents/interfaces/generator.interface.js +2 -0
- package/dist/documents/interfaces/validator.interface.d.ts +4 -0
- package/dist/documents/interfaces/validator.interface.js +2 -0
- package/dist/documents/models/validation-result.model.d.ts +4 -0
- package/dist/documents/models/validation-result.model.js +2 -0
- package/dist/enums/cryptProvider.d.ts +6 -0
- package/dist/enums/cryptProvider.js +10 -0
- package/dist/extensions/array.extensions.d.ts +6 -0
- package/dist/extensions/array.extensions.js +7 -0
- package/dist/extensions/boolean.extensions.d.ts +6 -0
- package/dist/extensions/boolean.extensions.js +5 -0
- package/dist/extensions/number.extensions.d.ts +11 -0
- package/dist/extensions/number.extensions.js +24 -0
- package/dist/extensions/string.extensions.d.ts +13 -0
- package/dist/extensions/string.extensions.js +28 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.js +39 -0
- package/dist/interfaces/IFactory.d.ts +3 -0
- package/dist/interfaces/IFactory.js +2 -0
- package/dist/interfaces/IServiceCategory.d.ts +3 -0
- package/dist/interfaces/IServiceCategory.js +2 -0
- package/dist/interfaces/validator.d.ts +5 -0
- package/dist/interfaces/validator.js +2 -0
- package/dist/interfaces/value.d.ts +3 -0
- package/dist/interfaces/value.js +2 -0
- package/dist/interfaces/valueGenerator.d.ts +4 -0
- package/dist/interfaces/valueGenerator.js +2 -0
- package/dist/random.d.ts +12 -0
- package/dist/random.js +29 -0
- package/package.json +25 -0
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const unit_converter_factory_1 = require("../../unit.converter.factory");
|
|
4
|
+
const factory = new unit_converter_factory_1.UnitConverterFactory();
|
|
5
|
+
const converter = factory.createService('power');
|
|
6
|
+
describe('Conversão completa entre unidades de potência', () => {
|
|
7
|
+
// Testes de conversão para a mesma unidade
|
|
8
|
+
describe('Conversões para a mesma unidade', () => {
|
|
9
|
+
test('1 watt → watt ≈ 1.0', () => {
|
|
10
|
+
expect(converter.convert(1, 'watt', 'watt')).toBeCloseTo(1.0, 10);
|
|
11
|
+
});
|
|
12
|
+
test('1 quilowatt → quilowatt ≈ 1.0', () => {
|
|
13
|
+
expect(converter.convert(1, 'quilowatt', 'quilowatt')).toBeCloseTo(1.0, 10);
|
|
14
|
+
});
|
|
15
|
+
test('1 cavalo-vapor-eua → cavalo-vapor-eua ≈ 1.0', () => {
|
|
16
|
+
expect(converter.convert(1, 'cavalo-vapor-eua', 'cavalo-vapor-eua')).toBeCloseTo(1.0, 10);
|
|
17
|
+
});
|
|
18
|
+
test('1 libra-pe-por-minuto → libra-pe-por-minuto ≈ 1.0', () => {
|
|
19
|
+
expect(converter.convert(1, 'libra-pe-por-minuto', 'libra-pe-por-minuto')).toBeCloseTo(1.0, 10);
|
|
20
|
+
});
|
|
21
|
+
test('1 btu-por-minuto → btu-por-minuto ≈ 1.0', () => {
|
|
22
|
+
expect(converter.convert(1, 'btu-por-minuto', 'btu-por-minuto')).toBeCloseTo(1.0, 10);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
// Conversões básicas - unidade base: watt
|
|
26
|
+
describe('Conversões para unidade base (watt)', () => {
|
|
27
|
+
test('1 quilowatt → watt = 1000', () => {
|
|
28
|
+
expect(converter.convert(1, 'quilowatt', 'watt')).toBeCloseTo(1000, 10);
|
|
29
|
+
});
|
|
30
|
+
test('1 cavalo-vapor-eua → watt ≈ 745.69987158227022', () => {
|
|
31
|
+
expect(converter.convert(1, 'cavalo-vapor-eua', 'watt')).toBeCloseTo(745.69987158227022, 8);
|
|
32
|
+
});
|
|
33
|
+
test('1 libra-pe-por-minuto → watt ≈ 0.0225969658', () => {
|
|
34
|
+
expect(converter.convert(1, 'libra-pe-por-minuto', 'watt')).toBeCloseTo(0.0225969658, 10);
|
|
35
|
+
});
|
|
36
|
+
test('1 btu-por-minuto → watt ≈ 17.5842666667', () => {
|
|
37
|
+
expect(converter.convert(1, 'btu-por-minuto', 'watt')).toBeCloseTo(17.5842666667, 8);
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
// Conversões inversas da unidade base
|
|
41
|
+
describe('Conversões da unidade base (watt)', () => {
|
|
42
|
+
test('1000 watts → quilowatt = 1', () => {
|
|
43
|
+
expect(converter.convert(1000, 'watt', 'quilowatt')).toBeCloseTo(1, 10);
|
|
44
|
+
});
|
|
45
|
+
test('745.69987158227022 watts → cavalo-vapor-eua = 1', () => {
|
|
46
|
+
expect(converter.convert(745.69987158227022, 'watt', 'cavalo-vapor-eua')).toBeCloseTo(1, 8);
|
|
47
|
+
});
|
|
48
|
+
test('0.0225969658 watts → libra-pe-por-minuto = 1', () => {
|
|
49
|
+
expect(converter.convert(0.0225969658, 'watt', 'libra-pe-por-minuto')).toBeCloseTo(1, 8);
|
|
50
|
+
});
|
|
51
|
+
test('17.5842666667 watts → btu-por-minuto = 1', () => {
|
|
52
|
+
expect(converter.convert(17.5842666667, 'watt', 'btu-por-minuto')).toBeCloseTo(1, 8);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
// Conversões entre quilowatt e outras unidades
|
|
56
|
+
describe('Conversões envolvendo quilowatt', () => {
|
|
57
|
+
test('1 quilowatt → cavalo-vapor-eua ≈ 1.34102209', () => {
|
|
58
|
+
expect(converter.convert(1, 'quilowatt', 'cavalo-vapor-eua')).toBeCloseTo(1.34102209, 6);
|
|
59
|
+
});
|
|
60
|
+
test('1 cavalo-vapor-eua → quilowatt ≈ 0.74569987', () => {
|
|
61
|
+
expect(converter.convert(1, 'cavalo-vapor-eua', 'quilowatt')).toBeCloseTo(0.74569987, 6);
|
|
62
|
+
});
|
|
63
|
+
test('1 quilowatt → btu-por-minuto ≈ 56.8690272', () => {
|
|
64
|
+
expect(converter.convert(1, 'quilowatt', 'btu-por-minuto')).toBeCloseTo(56.869019274698466, 6);
|
|
65
|
+
});
|
|
66
|
+
test('1 quilowatt → libra-pe-por-minuto ≈ 44253.728967452786', () => {
|
|
67
|
+
expect(converter.convert(1, 'quilowatt', 'libra-pe-por-minuto')).toBeCloseTo(44253.728967452786, 4);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
// Conversões entre unidades imperiais/americanas
|
|
71
|
+
describe('Conversões entre unidades imperiais/americanas', () => {
|
|
72
|
+
test('1 cavalo-vapor-eua → btu-por-minuto ≈ 42.407220370152295', () => {
|
|
73
|
+
expect(converter.convert(1, 'cavalo-vapor-eua', 'btu-por-minuto')).toBeCloseTo(42.407220370152295, 6);
|
|
74
|
+
});
|
|
75
|
+
test('1 btu-por-minuto → cavalo-vapor-eua ≈ 0.02358089002937423', () => {
|
|
76
|
+
expect(converter.convert(1, 'btu-por-minuto', 'cavalo-vapor-eua')).toBeCloseTo(0.02358089002937423, 7);
|
|
77
|
+
});
|
|
78
|
+
test('1 cavalo-vapor-eua → libra-pe-por-minuto ≈ 33000', () => {
|
|
79
|
+
expect(converter.convert(1, 'cavalo-vapor-eua', 'libra-pe-por-minuto')).toBeCloseTo(33000, 2);
|
|
80
|
+
});
|
|
81
|
+
test('1 libra-pe-por-minuto → btu-por-minuto ≈ 0.001285067', () => {
|
|
82
|
+
expect(converter.convert(1, 'libra-pe-por-minuto', 'btu-por-minuto')).toBeCloseTo(0.001285067, 8);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
// Conversões comuns do cotidiano
|
|
86
|
+
describe('Conversões comuns do cotidiano', () => {
|
|
87
|
+
test('2000 watts → quilowatt = 2', () => {
|
|
88
|
+
expect(converter.convert(2000, 'watt', 'quilowatt')).toBeCloseTo(2, 10);
|
|
89
|
+
});
|
|
90
|
+
test('5 quilowatts → watts = 5000', () => {
|
|
91
|
+
expect(converter.convert(5, 'quilowatt', 'watt')).toBeCloseTo(5000, 10);
|
|
92
|
+
});
|
|
93
|
+
test('10 cavalos-vapor → quilowatt ≈ 7.4569987', () => {
|
|
94
|
+
expect(converter.convert(10, 'cavalo-vapor-eua', 'quilowatt')).toBeCloseTo(7.4569987, 6);
|
|
95
|
+
});
|
|
96
|
+
test('100 cavalos-vapor → watts ≈ 74569.987', () => {
|
|
97
|
+
expect(converter.convert(100, 'cavalo-vapor-eua', 'watt')).toBeCloseTo(74569.987, 3);
|
|
98
|
+
});
|
|
99
|
+
test('60 BTU/min → watts ≈ 1055.056', () => {
|
|
100
|
+
expect(converter.convert(60, 'btu-por-minuto', 'watt')).toBeCloseTo(1055.056, 3);
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
// Testes com valores decimais
|
|
104
|
+
describe('Conversões com valores decimais', () => {
|
|
105
|
+
test('0.5 quilowatt → watt = 500', () => {
|
|
106
|
+
expect(converter.convert(0.5, 'quilowatt', 'watt')).toBeCloseTo(500, 10);
|
|
107
|
+
});
|
|
108
|
+
test('1.5 cavalos-vapor → watts ≈ 1118.5498', () => {
|
|
109
|
+
expect(converter.convert(1.5, 'cavalo-vapor-eua', 'watt')).toBeCloseTo(1118.5498, 4);
|
|
110
|
+
});
|
|
111
|
+
test('2.25 quilowatts → cavalos-vapor ≈ 3.01730', () => {
|
|
112
|
+
expect(converter.convert(2.25, 'quilowatt', 'cavalo-vapor-eua')).toBeCloseTo(3.01730, 5);
|
|
113
|
+
});
|
|
114
|
+
test('0.75 BTU/min → watts ≈ 13.1882', () => {
|
|
115
|
+
expect(converter.convert(0.75, 'btu-por-minuto', 'watt')).toBeCloseTo(13.1882, 4);
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
// Testes com valores grandes
|
|
119
|
+
describe('Conversões com valores grandes', () => {
|
|
120
|
+
test('1000 quilowatts → watts = 1000000', () => {
|
|
121
|
+
expect(converter.convert(1000, 'quilowatt', 'watt')).toBeCloseTo(1000000, 10);
|
|
122
|
+
});
|
|
123
|
+
test('5000 cavalos-vapor → quilowatts ≈ 3728.4994', () => {
|
|
124
|
+
expect(converter.convert(5000, 'cavalo-vapor-eua', 'quilowatt')).toBeCloseTo(3728.4994, 4);
|
|
125
|
+
});
|
|
126
|
+
test('10000 BTU/min → quilowatts ≈ 175.8427', () => {
|
|
127
|
+
expect(converter.convert(10000, 'btu-por-minuto', 'quilowatt')).toBeCloseTo(175.8427, 4);
|
|
128
|
+
});
|
|
129
|
+
test('1000000 libra-pé/min → quilowatts ≈ 22.5970', () => {
|
|
130
|
+
expect(converter.convert(1000000, 'libra-pe-por-minuto', 'quilowatt')).toBeCloseTo(22.5970, 4);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
// Testes com valores pequenos
|
|
134
|
+
describe('Conversões com valores pequenos', () => {
|
|
135
|
+
test('1 watt → quilowatt = 0.001', () => {
|
|
136
|
+
expect(converter.convert(1, 'watt', 'quilowatt')).toBeCloseTo(0.001, 10);
|
|
137
|
+
});
|
|
138
|
+
test('0.001 cavalo-vapor → watts ≈ 0.7457', () => {
|
|
139
|
+
expect(converter.convert(0.001, 'cavalo-vapor-eua', 'watt')).toBeCloseTo(0.7457, 4);
|
|
140
|
+
});
|
|
141
|
+
test('0.1 BTU/min → watts ≈ 1.7584', () => {
|
|
142
|
+
expect(converter.convert(0.1, 'btu-por-minuto', 'watt')).toBeCloseTo(1.7584, 4);
|
|
143
|
+
});
|
|
144
|
+
test('10 libra-pé/min → watts ≈ 0.2259697', () => {
|
|
145
|
+
expect(converter.convert(10, 'libra-pe-por-minuto', 'watt')).toBeCloseTo(0.2259697, 7);
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
// Testes de casos extremos
|
|
149
|
+
describe('Casos extremos', () => {
|
|
150
|
+
test('0 watts → quilowatt = 0', () => {
|
|
151
|
+
expect(converter.convert(0, 'watt', 'quilowatt')).toBe(0);
|
|
152
|
+
});
|
|
153
|
+
test('0 cavalos-vapor → watts = 0', () => {
|
|
154
|
+
expect(converter.convert(0, 'cavalo-vapor-eua', 'watt')).toBe(0);
|
|
155
|
+
});
|
|
156
|
+
test('Número muito grande: 999999 watts → quilowatt = 999.999', () => {
|
|
157
|
+
expect(converter.convert(999999, 'watt', 'quilowatt')).toBeCloseTo(999.999, 3);
|
|
158
|
+
});
|
|
159
|
+
test('Número muito pequeno: 0.000001 quilowatt → watt = 0.001', () => {
|
|
160
|
+
expect(converter.convert(0.000001, 'quilowatt', 'watt')).toBeCloseTo(0.001, 10);
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
// Testes de precisão
|
|
164
|
+
describe('Testes de precisão', () => {
|
|
165
|
+
test('Conversão ida e volta: watt → quilowatt → watt', () => {
|
|
166
|
+
const original = 1500;
|
|
167
|
+
const converted = converter.convert(original, 'watt', 'quilowatt');
|
|
168
|
+
const backConverted = converter.convert(converted, 'quilowatt', 'watt');
|
|
169
|
+
expect(backConverted).toBeCloseTo(original, 8);
|
|
170
|
+
});
|
|
171
|
+
test('Conversão ida e volta: cavalo-vapor → watt → cavalo-vapor', () => {
|
|
172
|
+
const original = 2.5;
|
|
173
|
+
const converted = converter.convert(original, 'cavalo-vapor-eua', 'watt');
|
|
174
|
+
const backConverted = converter.convert(converted, 'watt', 'cavalo-vapor-eua');
|
|
175
|
+
expect(backConverted).toBeCloseTo(original, 8);
|
|
176
|
+
});
|
|
177
|
+
test('Conversão ida e volta: BTU/min → quilowatt → BTU/min', () => {
|
|
178
|
+
const original = 100;
|
|
179
|
+
const converted = converter.convert(original, 'btu-por-minuto', 'quilowatt');
|
|
180
|
+
const backConverted = converter.convert(converted, 'quilowatt', 'btu-por-minuto');
|
|
181
|
+
expect(backConverted).toBeCloseTo(original, 8);
|
|
182
|
+
});
|
|
183
|
+
test('Conversão ida e volta: libra-pé/min → watt → libra-pé/min', () => {
|
|
184
|
+
const original = 50000;
|
|
185
|
+
const converted = converter.convert(original, 'libra-pe-por-minuto', 'watt');
|
|
186
|
+
const backConverted = converter.convert(converted, 'watt', 'libra-pe-por-minuto');
|
|
187
|
+
expect(backConverted).toBeCloseTo(original, 6);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
// Testes de equivalências conhecidas
|
|
191
|
+
describe('Equivalências conhecidas', () => {
|
|
192
|
+
test('1 quilowatt = 1000 watts', () => {
|
|
193
|
+
expect(converter.convert(1, 'quilowatt', 'watt')).toBeCloseTo(1000, 10);
|
|
194
|
+
});
|
|
195
|
+
test('1 cavalo-vapor ≈ 746 watts (aproximadamente)', () => {
|
|
196
|
+
expect(converter.convert(1, 'cavalo-vapor-eua', 'watt')).toBeCloseTo(746, 0);
|
|
197
|
+
});
|
|
198
|
+
test('1 quilowatt ≈ 1.34 cavalos-vapor (aproximadamente)', () => {
|
|
199
|
+
expect(converter.convert(1, 'quilowatt', 'cavalo-vapor-eua')).toBeCloseTo(1.34, 2);
|
|
200
|
+
});
|
|
201
|
+
test('1 cavalo-vapor ≈ 33000 libra-pé/min (definição clássica)', () => {
|
|
202
|
+
expect(converter.convert(1, 'cavalo-vapor-eua', 'libra-pe-por-minuto')).toBeCloseTo(33000, 1);
|
|
203
|
+
});
|
|
204
|
+
test('1 BTU/min ≈ 17.58 watts (aproximadamente)', () => {
|
|
205
|
+
expect(converter.convert(1, 'btu-por-minuto', 'watt')).toBeCloseTo(17.58, 2);
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
// Testes específicos de engenharia
|
|
209
|
+
describe('Aplicações de engenharia', () => {
|
|
210
|
+
test('Motor de 5 HP → quilowatts ≈ 3.728', () => {
|
|
211
|
+
expect(converter.convert(5, 'cavalo-vapor-eua', 'quilowatt')).toBeCloseTo(3.728, 3);
|
|
212
|
+
});
|
|
213
|
+
test('Aquecedor de 3000 watts → BTU/min ≈ 170.6070578240954', () => {
|
|
214
|
+
expect(converter.convert(3000, 'watt', 'btu-por-minuto')).toBeCloseTo(170.6070578240954, 2);
|
|
215
|
+
});
|
|
216
|
+
test('Sistema de 50 kW → cavalos-vapor ≈ 67.05', () => {
|
|
217
|
+
expect(converter.convert(50, 'quilowatt', 'cavalo-vapor-eua')).toBeCloseTo(67.05, 2);
|
|
218
|
+
});
|
|
219
|
+
test('Bomba de 200 HP → quilowatts ≈ 149.14', () => {
|
|
220
|
+
expect(converter.convert(200, 'cavalo-vapor-eua', 'quilowatt')).toBeCloseTo(149.14, 2);
|
|
221
|
+
});
|
|
222
|
+
});
|
|
223
|
+
});
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Pressure = void 0;
|
|
4
|
+
const converter_base_1 = require("../../converter-base");
|
|
5
|
+
class Pressure extends converter_base_1.ConverterBaseService {
|
|
6
|
+
constructor() {
|
|
7
|
+
super([
|
|
8
|
+
// Base: Pascal
|
|
9
|
+
{ id: 'pascal', name: 'Pascal', symbol: 'Pa', conversionFactor: 1, isBaseUnit: true },
|
|
10
|
+
{ id: 'quilopascal', name: 'Quilopascal', symbol: 'kPa', conversionFactor: 1000, isBaseUnit: false },
|
|
11
|
+
{ id: 'bar', name: 'Bar', symbol: 'bar', conversionFactor: 100000, isBaseUnit: false },
|
|
12
|
+
{ id: 'atmosfera', name: 'Atmosfera padrão', symbol: 'atm', conversionFactor: 101325, isBaseUnit: false },
|
|
13
|
+
{ id: 'milimetro-de-mercurio', name: 'Milímetro de mercúrio', symbol: 'mmHg', conversionFactor: 133.322387415, isBaseUnit: false },
|
|
14
|
+
{ id: 'psi', name: 'Libra por polegada quadrada', symbol: 'psi', conversionFactor: 6894.76, isBaseUnit: false },
|
|
15
|
+
]);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.Pressure = Pressure;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const unit_converter_factory_1 = require("../../unit.converter.factory");
|
|
4
|
+
const factory = new unit_converter_factory_1.UnitConverterFactory();
|
|
5
|
+
const converter = factory.createService('pressure');
|
|
6
|
+
describe('Conversão entre unidades de pressão', () => {
|
|
7
|
+
// Testes de conversão para a mesma unidade
|
|
8
|
+
describe('Conversões para a mesma unidade', () => {
|
|
9
|
+
test('1 pascal → pascal ≈ 1.0', () => {
|
|
10
|
+
expect(converter.convert(1, 'pascal', 'pascal')).toBeCloseTo(1.0, 10);
|
|
11
|
+
});
|
|
12
|
+
test('1 bar → bar ≈ 1.0', () => {
|
|
13
|
+
expect(converter.convert(1, 'bar', 'bar')).toBeCloseTo(1.0, 10);
|
|
14
|
+
});
|
|
15
|
+
test('1 psi → psi ≈ 1.0', () => {
|
|
16
|
+
expect(converter.convert(1, 'psi', 'psi')).toBeCloseTo(1.0, 10);
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
// Conversões para a unidade base (Pascal)
|
|
20
|
+
describe('Conversões para Pascal', () => {
|
|
21
|
+
test('1 quilopascal → pascal = 1000', () => {
|
|
22
|
+
expect(converter.convert(1, 'quilopascal', 'pascal')).toBeCloseTo(1000, 10);
|
|
23
|
+
});
|
|
24
|
+
test('1 bar → pascal = 100000', () => {
|
|
25
|
+
expect(converter.convert(1, 'bar', 'pascal')).toBeCloseTo(100000, 10);
|
|
26
|
+
});
|
|
27
|
+
test('1 atmosfera → pascal = 101325', () => {
|
|
28
|
+
expect(converter.convert(1, 'atmosfera', 'pascal')).toBeCloseTo(101325, 10);
|
|
29
|
+
});
|
|
30
|
+
test('1 mmHg → pascal ≈ 133.322387415', () => {
|
|
31
|
+
expect(converter.convert(1, 'milimetro-de-mercurio', 'pascal')).toBeCloseTo(133.322387415, 9);
|
|
32
|
+
});
|
|
33
|
+
test('1 psi → pascal ≈ 6894.76', () => {
|
|
34
|
+
expect(converter.convert(1, 'psi', 'pascal')).toBeCloseTo(6894.76, 2);
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
// Conversões da unidade base para outras
|
|
38
|
+
describe('Conversões a partir do Pascal', () => {
|
|
39
|
+
test('1000 pascal → quilopascal = 1', () => {
|
|
40
|
+
expect(converter.convert(1000, 'pascal', 'quilopascal')).toBeCloseTo(1, 10);
|
|
41
|
+
});
|
|
42
|
+
test('100000 pascal → bar = 1', () => {
|
|
43
|
+
expect(converter.convert(100000, 'pascal', 'bar')).toBeCloseTo(1, 10);
|
|
44
|
+
});
|
|
45
|
+
test('101325 pascal → atmosfera = 1', () => {
|
|
46
|
+
expect(converter.convert(101325, 'pascal', 'atmosfera')).toBeCloseTo(1, 10);
|
|
47
|
+
});
|
|
48
|
+
test('133.322387415 pascal → mmHg = 1', () => {
|
|
49
|
+
expect(converter.convert(133.322387415, 'pascal', 'milimetro-de-mercurio')).toBeCloseTo(1, 9);
|
|
50
|
+
});
|
|
51
|
+
test('6894.76 pascal → psi = 1', () => {
|
|
52
|
+
expect(converter.convert(6894.76, 'pascal', 'psi')).toBeCloseTo(1, 2);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
// Casos típicos e valores variados
|
|
56
|
+
describe('Cenários típicos e diversos', () => {
|
|
57
|
+
test('2 bar → atmosfera ≈ 1.9738465334320257', () => {
|
|
58
|
+
expect(converter.convert(2, 'bar', 'atmosfera')).toBeCloseTo(1.9738465334320257, 6);
|
|
59
|
+
});
|
|
60
|
+
test('760 mmHg → atmosfera = 1', () => {
|
|
61
|
+
expect(converter.convert(760, 'milimetro-de-mercurio', 'atmosfera')).toBeCloseTo(1, 4);
|
|
62
|
+
});
|
|
63
|
+
test('14.7 psi → atmosfera ≈ 1', () => {
|
|
64
|
+
expect(converter.convert(14.7, 'psi', 'atmosfera')).toBeCloseTo(1, 1);
|
|
65
|
+
});
|
|
66
|
+
test('500000 pascal → bar = 5', () => {
|
|
67
|
+
expect(converter.convert(500000, 'pascal', 'bar')).toBeCloseTo(5, 10);
|
|
68
|
+
});
|
|
69
|
+
test('0.5 bar → quilopascal = 50', () => {
|
|
70
|
+
expect(converter.convert(0.5, 'bar', 'quilopascal')).toBeCloseTo(50, 10);
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
// Testes de precisão e round-trip
|
|
74
|
+
describe('Conversões de ida e volta', () => {
|
|
75
|
+
test('psi → pascal → psi', () => {
|
|
76
|
+
const original = 25;
|
|
77
|
+
const converted = converter.convert(original, 'psi', 'pascal');
|
|
78
|
+
const back = converter.convert(converted, 'pascal', 'psi');
|
|
79
|
+
expect(back).toBeCloseTo(original, 6);
|
|
80
|
+
});
|
|
81
|
+
test('bar → pascal → bar', () => {
|
|
82
|
+
const original = 3.2;
|
|
83
|
+
const converted = converter.convert(original, 'bar', 'pascal');
|
|
84
|
+
const back = converter.convert(converted, 'pascal', 'bar');
|
|
85
|
+
expect(back).toBeCloseTo(original, 8);
|
|
86
|
+
});
|
|
87
|
+
test('milimetro-de-mercurio → pascal → milimetro-de-mercurio', () => {
|
|
88
|
+
const original = 120;
|
|
89
|
+
const converted = converter.convert(original, 'milimetro-de-mercurio', 'pascal');
|
|
90
|
+
const back = converter.convert(converted, 'pascal', 'milimetro-de-mercurio');
|
|
91
|
+
expect(back).toBeCloseTo(original, 8);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
// Casos extremos
|
|
95
|
+
describe('Testes extremos e limites operacionais', () => {
|
|
96
|
+
test('0 pascal → qualquer unidade = 0', () => {
|
|
97
|
+
expect(converter.convert(0, 'pascal', 'psi')).toBe(0);
|
|
98
|
+
expect(converter.convert(0, 'pascal', 'bar')).toBe(0);
|
|
99
|
+
});
|
|
100
|
+
test('Valor muito grande → psi', () => {
|
|
101
|
+
expect(converter.convert(10000000, 'pascal', 'psi')).toBeCloseTo(1450.377, 2);
|
|
102
|
+
});
|
|
103
|
+
test('Valor muito pequeno → atmosfera', () => {
|
|
104
|
+
expect(converter.convert(0.001, 'pascal', 'atmosfera')).toBeCloseTo(9.8692e-9, 10);
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpeedConverter = void 0;
|
|
4
|
+
const converter_base_1 = require("../../converter-base");
|
|
5
|
+
class SpeedConverter extends converter_base_1.ConverterBaseService {
|
|
6
|
+
constructor() {
|
|
7
|
+
super([
|
|
8
|
+
// Base: m/s (metro por segundo)
|
|
9
|
+
{ id: 'centimetro-por-segundo', name: 'Centímetro por segundo', symbol: 'cm/s', conversionFactor: 0.01, isBaseUnit: false },
|
|
10
|
+
{ id: 'metro-por-segundo', name: 'Metro por segundo', symbol: 'm/s', conversionFactor: 1, isBaseUnit: true },
|
|
11
|
+
{ id: 'quilometro-por-hora', name: 'Quilômetro por hora', symbol: 'km/h', conversionFactor: 0.2777777778, isBaseUnit: false },
|
|
12
|
+
{ id: 'pes-por-segundo', name: 'Pés por segundo', symbol: 'ft/s', conversionFactor: 0.3048, isBaseUnit: false },
|
|
13
|
+
{ id: 'milha-por-hora', name: 'Milha por hora', symbol: 'mph', conversionFactor: 0.44704, isBaseUnit: false },
|
|
14
|
+
{ id: 'nos', name: 'Nó náutico', symbol: 'kn', conversionFactor: 0.514444, isBaseUnit: false },
|
|
15
|
+
{ id: 'mach', name: 'Mach (nível do mar)', symbol: 'Mach', conversionFactor: 340.29, isBaseUnit: false },
|
|
16
|
+
{ id: 'velocidade-da-luz', name: 'Velocidade da luz no vácuo', symbol: 'c', conversionFactor: 299792458, isBaseUnit: false },
|
|
17
|
+
{ id: 'quilometro-por-segundo', name: 'Quilômetro por segundo', symbol: 'km/s', conversionFactor: 1000, isBaseUnit: false },
|
|
18
|
+
{ id: 'polegada-por-segundo', name: 'Polegada por segundo', symbol: 'in/s', conversionFactor: 0.0254, isBaseUnit: false },
|
|
19
|
+
]);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
exports.SpeedConverter = SpeedConverter;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const unit_converter_factory_1 = require("../../unit.converter.factory");
|
|
4
|
+
const factory = new unit_converter_factory_1.UnitConverterFactory();
|
|
5
|
+
const converter = factory.createService('speed');
|
|
6
|
+
describe('Conversão completa entre unidades de velocidade', () => {
|
|
7
|
+
// Testes de conversão para a mesma unidade
|
|
8
|
+
describe('Conversões para a mesma unidade', () => {
|
|
9
|
+
test('1 metro-por-segundo → metro-por-segundo ≈ 1.0', () => {
|
|
10
|
+
expect(converter.convert(1, 'metro-por-segundo', 'metro-por-segundo')).toBeCloseTo(1.0, 10);
|
|
11
|
+
});
|
|
12
|
+
test('1 quilometro-por-hora → quilometro-por-hora ≈ 1.0', () => {
|
|
13
|
+
expect(converter.convert(1, 'quilometro-por-hora', 'quilometro-por-hora')).toBeCloseTo(1.0, 10);
|
|
14
|
+
});
|
|
15
|
+
test('1 milha-por-hora → milha-por-hora ≈ 1.0', () => {
|
|
16
|
+
expect(converter.convert(1, 'milha-por-hora', 'milha-por-hora')).toBeCloseTo(1.0, 10);
|
|
17
|
+
});
|
|
18
|
+
test('1 nos → nos ≈ 1.0', () => {
|
|
19
|
+
expect(converter.convert(1, 'nos', 'nos')).toBeCloseTo(1.0, 10);
|
|
20
|
+
});
|
|
21
|
+
test('1 mach → mach ≈ 1.0', () => {
|
|
22
|
+
expect(converter.convert(1, 'mach', 'mach')).toBeCloseTo(1.0, 10);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
// Conversões básicas - unidade base: metro por segundo
|
|
26
|
+
describe('Conversões para unidade base (metro por segundo)', () => {
|
|
27
|
+
test('1 centimetro-por-segundo → metro-por-segundo = 0.01', () => {
|
|
28
|
+
expect(converter.convert(1, 'centimetro-por-segundo', 'metro-por-segundo')).toBeCloseTo(0.01, 10);
|
|
29
|
+
});
|
|
30
|
+
test('1 quilometro-por-hora → metro-por-segundo ≈ 0.2777777778', () => {
|
|
31
|
+
expect(converter.convert(1, 'quilometro-por-hora', 'metro-por-segundo')).toBeCloseTo(0.2777777778, 10);
|
|
32
|
+
});
|
|
33
|
+
test('1 pes-por-segundo → metro-por-segundo ≈ 0.3048', () => {
|
|
34
|
+
expect(converter.convert(1, 'pes-por-segundo', 'metro-por-segundo')).toBeCloseTo(0.3048, 10);
|
|
35
|
+
});
|
|
36
|
+
test('1 milha-por-hora → metro-por-segundo ≈ 0.44704', () => {
|
|
37
|
+
expect(converter.convert(1, 'milha-por-hora', 'metro-por-segundo')).toBeCloseTo(0.44704, 10);
|
|
38
|
+
});
|
|
39
|
+
test('1 nos → metro-por-segundo ≈ 0.514444', () => {
|
|
40
|
+
expect(converter.convert(1, 'nos', 'metro-por-segundo')).toBeCloseTo(0.514444, 10);
|
|
41
|
+
});
|
|
42
|
+
test('1 mach → metro-por-segundo ≈ 340.29', () => {
|
|
43
|
+
expect(converter.convert(1, 'mach', 'metro-por-segundo')).toBeCloseTo(340.29, 10);
|
|
44
|
+
});
|
|
45
|
+
test('1 quilometro-por-segundo → metro-por-segundo = 1000', () => {
|
|
46
|
+
expect(converter.convert(1, 'quilometro-por-segundo', 'metro-por-segundo')).toBeCloseTo(1000, 10);
|
|
47
|
+
});
|
|
48
|
+
test('1 polegada-por-segundo → metro-por-segundo ≈ 0.0254', () => {
|
|
49
|
+
expect(converter.convert(1, 'polegada-por-segundo', 'metro-por-segundo')).toBeCloseTo(0.0254, 10);
|
|
50
|
+
});
|
|
51
|
+
test('1 velocidade-da-luz → metro-por-segundo = 299792458', () => {
|
|
52
|
+
expect(converter.convert(1, 'velocidade-da-luz', 'metro-por-segundo')).toBeCloseTo(299792458, 10);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
// Conversões inversas da unidade base
|
|
56
|
+
describe('Conversões da unidade base (metro por segundo)', () => {
|
|
57
|
+
test('0.01 metro-por-segundo → centimetro-por-segundo = 1', () => {
|
|
58
|
+
expect(converter.convert(0.01, 'metro-por-segundo', 'centimetro-por-segundo')).toBeCloseTo(1, 10);
|
|
59
|
+
});
|
|
60
|
+
test('0.2777777778 metro-por-segundo → quilometro-por-hora = 1', () => {
|
|
61
|
+
expect(converter.convert(0.2777777778, 'metro-por-segundo', 'quilometro-por-hora')).toBeCloseTo(1, 8);
|
|
62
|
+
});
|
|
63
|
+
test('0.3048 metro-por-segundo → pes-por-segundo = 1', () => {
|
|
64
|
+
expect(converter.convert(0.3048, 'metro-por-segundo', 'pes-por-segundo')).toBeCloseTo(1, 10);
|
|
65
|
+
});
|
|
66
|
+
test('0.44704 metro-por-segundo → milha-por-hora = 1', () => {
|
|
67
|
+
expect(converter.convert(0.44704, 'metro-por-segundo', 'milha-por-hora')).toBeCloseTo(1, 10);
|
|
68
|
+
});
|
|
69
|
+
test('340.29 metro-por-segundo → mach = 1', () => {
|
|
70
|
+
expect(converter.convert(340.29, 'metro-por-segundo', 'mach')).toBeCloseTo(1, 10);
|
|
71
|
+
});
|
|
72
|
+
test('1000 metro-por-segundo → quilometro-por-segundo = 1', () => {
|
|
73
|
+
expect(converter.convert(1000, 'metro-por-segundo', 'quilometro-por-segundo')).toBeCloseTo(1, 10);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
// Conversões comuns do cotidiano
|
|
77
|
+
describe('Conversões comuns do cotidiano', () => {
|
|
78
|
+
test('100 km/h → m/s ≈ 27.78', () => {
|
|
79
|
+
expect(converter.convert(100, 'quilometro-por-hora', 'metro-por-segundo')).toBeCloseTo(27.78, 2);
|
|
80
|
+
});
|
|
81
|
+
test('60 milhas/h → km/h ≈ 96.56', () => {
|
|
82
|
+
expect(converter.convert(60, 'milha-por-hora', 'quilometro-por-hora')).toBeCloseTo(96.56, 2);
|
|
83
|
+
});
|
|
84
|
+
test('50 m/s → km/h = 179.9999999856', () => {
|
|
85
|
+
expect(converter.convert(50, 'metro-por-segundo', 'quilometro-por-hora')).toBeCloseTo(179.9999999856, 10);
|
|
86
|
+
});
|
|
87
|
+
test('30 nós → km/h ≈ 55.56', () => {
|
|
88
|
+
expect(converter.convert(30, 'nos', 'quilometro-por-hora')).toBeCloseTo(55.56, 2);
|
|
89
|
+
});
|
|
90
|
+
test('10 pés/s → m/s ≈ 3.048', () => {
|
|
91
|
+
expect(converter.convert(10, 'pes-por-segundo', 'metro-por-segundo')).toBeCloseTo(3.048, 10);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
// Conversões entre unidades imperiais/americanas
|
|
95
|
+
describe('Conversões entre unidades imperiais/americanas', () => {
|
|
96
|
+
test('60 mph → pés/s = 88', () => {
|
|
97
|
+
expect(converter.convert(60, 'milha-por-hora', 'pes-por-segundo')).toBeCloseTo(88, 2);
|
|
98
|
+
});
|
|
99
|
+
test('100 pés/s → mph ≈ 68.18', () => {
|
|
100
|
+
expect(converter.convert(100, 'pes-por-segundo', 'milha-por-hora')).toBeCloseTo(68.18, 2);
|
|
101
|
+
});
|
|
102
|
+
test('12 polegadas/s → pés/s = 1', () => {
|
|
103
|
+
expect(converter.convert(12, 'polegada-por-segundo', 'pes-por-segundo')).toBeCloseTo(1, 10);
|
|
104
|
+
});
|
|
105
|
+
test('1 pé/s → polegadas/s = 12', () => {
|
|
106
|
+
expect(converter.convert(1, 'pes-por-segundo', 'polegada-por-segundo')).toBeCloseTo(12, 10);
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
// Conversões náuticas e aeronáuticas
|
|
110
|
+
describe('Conversões náuticas e aeronáuticas', () => {
|
|
111
|
+
test('1 nó → km/h ≈ 1.852', () => {
|
|
112
|
+
expect(converter.convert(1, 'nos', 'quilometro-por-hora')).toBeCloseTo(1.852, 3);
|
|
113
|
+
});
|
|
114
|
+
test('100 nós → mph ≈ 115.08', () => {
|
|
115
|
+
expect(converter.convert(100, 'nos', 'milha-por-hora')).toBeCloseTo(115.08, 2);
|
|
116
|
+
});
|
|
117
|
+
test('Mach 1 → km/h ≈ 1225.04', () => {
|
|
118
|
+
expect(converter.convert(1, 'mach', 'quilometro-por-hora')).toBeCloseTo(1225.04, 2);
|
|
119
|
+
});
|
|
120
|
+
test('Mach 2 → m/s ≈ 680.58', () => {
|
|
121
|
+
expect(converter.convert(2, 'mach', 'metro-por-segundo')).toBeCloseTo(680.58, 2);
|
|
122
|
+
});
|
|
123
|
+
test('500 mph → Mach ≈ 0.6568515090070234', () => {
|
|
124
|
+
expect(converter.convert(500, 'milha-por-hora', 'mach')).toBeCloseTo(0.6568515090070234, 3);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
// Testes com valores decimais
|
|
128
|
+
describe('Conversões com valores decimais', () => {
|
|
129
|
+
test('0.5 m/s → cm/s = 50', () => {
|
|
130
|
+
expect(converter.convert(0.5, 'metro-por-segundo', 'centimetro-por-segundo')).toBeCloseTo(50, 10);
|
|
131
|
+
});
|
|
132
|
+
test('2.5 km/h → m/s ≈ 0.694', () => {
|
|
133
|
+
expect(converter.convert(2.5, 'quilometro-por-hora', 'metro-por-segundo')).toBeCloseTo(0.694, 3);
|
|
134
|
+
});
|
|
135
|
+
test('1.5 Mach → km/h ≈ 1837.57', () => {
|
|
136
|
+
expect(converter.convert(1.5, 'mach', 'quilometro-por-hora')).toBeCloseTo(1837.57, 2);
|
|
137
|
+
});
|
|
138
|
+
test('0.25 nós → m/s ≈ 0.1286', () => {
|
|
139
|
+
expect(converter.convert(0.25, 'nos', 'metro-por-segundo')).toBeCloseTo(0.1286, 4);
|
|
140
|
+
});
|
|
141
|
+
});
|
|
142
|
+
// Testes com velocidades altas
|
|
143
|
+
describe('Conversões com velocidades altas', () => {
|
|
144
|
+
test('1000 km/h → m/s ≈ 277.78', () => {
|
|
145
|
+
expect(converter.convert(1000, 'quilometro-por-hora', 'metro-por-segundo')).toBeCloseTo(277.78, 2);
|
|
146
|
+
});
|
|
147
|
+
test('Mach 5 → km/h ≈ 6125.22', () => {
|
|
148
|
+
expect(converter.convert(5, 'mach', 'quilometro-por-hora')).toBeCloseTo(6125.22, 2);
|
|
149
|
+
});
|
|
150
|
+
test('10 km/s → m/s = 10000', () => {
|
|
151
|
+
expect(converter.convert(10, 'quilometro-por-segundo', 'metro-por-segundo')).toBeCloseTo(10000, 10);
|
|
152
|
+
});
|
|
153
|
+
test('0.1c (10% velocidade da luz) → km/s ≈ 29979.2458', () => {
|
|
154
|
+
expect(converter.convert(0.1, 'velocidade-da-luz', 'quilometro-por-segundo')).toBeCloseTo(29979.2458, 1);
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
// Testes com velocidades baixas
|
|
158
|
+
describe('Conversões com velocidades baixas', () => {
|
|
159
|
+
test('1 cm/s → mm/s = 10', () => {
|
|
160
|
+
// Assumindo que mm/s teria fator 0.001
|
|
161
|
+
expect(converter.convert(1, 'centimetro-por-segundo', 'metro-por-segundo')).toBeCloseTo(0.01, 10);
|
|
162
|
+
});
|
|
163
|
+
test('0.1 m/s → km/h = 0.36', () => {
|
|
164
|
+
expect(converter.convert(0.1, 'metro-por-segundo', 'quilometro-por-hora')).toBeCloseTo(0.36, 10);
|
|
165
|
+
});
|
|
166
|
+
test('1 polegada/s → cm/s ≈ 2.54', () => {
|
|
167
|
+
expect(converter.convert(1, 'polegada-por-segundo', 'centimetro-por-segundo')).toBeCloseTo(2.54, 10);
|
|
168
|
+
});
|
|
169
|
+
test('5 cm/s → mph ≈ 0.1118', () => {
|
|
170
|
+
expect(converter.convert(5, 'centimetro-por-segundo', 'milha-por-hora')).toBeCloseTo(0.1118, 4);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
// Testes de casos extremos
|
|
174
|
+
describe('Casos extremos', () => {
|
|
175
|
+
test('0 m/s → km/h = 0', () => {
|
|
176
|
+
expect(converter.convert(0, 'metro-por-segundo', 'quilometro-por-hora')).toBe(0);
|
|
177
|
+
});
|
|
178
|
+
test('0 mph → nós = 0', () => {
|
|
179
|
+
expect(converter.convert(0, 'milha-por-hora', 'nos')).toBe(0);
|
|
180
|
+
});
|
|
181
|
+
test('Velocidade muito alta: 999999 m/s → km/s ≈ 999.999', () => {
|
|
182
|
+
expect(converter.convert(999999, 'metro-por-segundo', 'quilometro-por-segundo')).toBeCloseTo(999.999, 3);
|
|
183
|
+
});
|
|
184
|
+
test('Velocidade muito baixa: 0.000001 m/s → cm/s = 0.0001', () => {
|
|
185
|
+
expect(converter.convert(0.000001, 'metro-por-segundo', 'centimetro-por-segundo')).toBeCloseTo(0.0001, 10);
|
|
186
|
+
});
|
|
187
|
+
});
|
|
188
|
+
// Testes de precisão
|
|
189
|
+
describe('Testes de precisão', () => {
|
|
190
|
+
test('Conversão ida e volta: m/s → km/h → m/s', () => {
|
|
191
|
+
const original = 25;
|
|
192
|
+
const converted = converter.convert(original, 'metro-por-segundo', 'quilometro-por-hora');
|
|
193
|
+
const backConverted = converter.convert(converted, 'quilometro-por-hora', 'metro-por-segundo');
|
|
194
|
+
expect(backConverted).toBeCloseTo(original, 8);
|
|
195
|
+
});
|
|
196
|
+
test('Conversão ida e volta: mph → nós → mph', () => {
|
|
197
|
+
const original = 65;
|
|
198
|
+
const converted = converter.convert(original, 'milha-por-hora', 'nos');
|
|
199
|
+
const backConverted = converter.convert(converted, 'nos', 'milha-por-hora');
|
|
200
|
+
expect(backConverted).toBeCloseTo(original, 8);
|
|
201
|
+
});
|
|
202
|
+
test('Conversão ida e volta: Mach → m/s → Mach', () => {
|
|
203
|
+
const original = 2.5;
|
|
204
|
+
const converted = converter.convert(original, 'mach', 'metro-por-segundo');
|
|
205
|
+
const backConverted = converter.convert(converted, 'metro-por-segundo', 'mach');
|
|
206
|
+
expect(backConverted).toBeCloseTo(original, 8);
|
|
207
|
+
});
|
|
208
|
+
test('Conversão ida e volta: km/s → c → km/s', () => {
|
|
209
|
+
const original = 150000; // 50% da velocidade da luz
|
|
210
|
+
const converted = converter.convert(original, 'quilometro-por-segundo', 'velocidade-da-luz');
|
|
211
|
+
const backConverted = converter.convert(converted, 'velocidade-da-luz', 'quilometro-por-segundo');
|
|
212
|
+
expect(backConverted).toBeCloseTo(original, 6);
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
// Testes de equivalências conhecidas
|
|
216
|
+
describe('Equivalências conhecidas', () => {
|
|
217
|
+
test('1 m/s = 3.599999999712 km/h', () => {
|
|
218
|
+
expect(converter.convert(1, 'metro-por-segundo', 'quilometro-por-hora')).toBeCloseTo(3.599999999712, 10);
|
|
219
|
+
});
|
|
220
|
+
test('1 mph ≈ 1.609 km/h', () => {
|
|
221
|
+
expect(converter.convert(1, 'milha-por-hora', 'quilometro-por-hora')).toBeCloseTo(1.609, 3);
|
|
222
|
+
});
|
|
223
|
+
test('1 nó ≈ 1.852 km/h (milha náutica)', () => {
|
|
224
|
+
expect(converter.convert(1, 'nos', 'quilometro-por-hora')).toBeCloseTo(1.852, 3);
|
|
225
|
+
});
|
|
226
|
+
test('Mach 1 ≈ 1225 km/h (ao nível do mar)', () => {
|
|
227
|
+
expect(converter.convert(1, 'mach', 'quilometro-por-hora')).toBeCloseTo(1225, 1);
|
|
228
|
+
});
|
|
229
|
+
test('1 pé/s ≈ 0.682 mph', () => {
|
|
230
|
+
expect(converter.convert(1, 'pes-por-segundo', 'milha-por-hora')).toBeCloseTo(0.682, 3);
|
|
231
|
+
});
|
|
232
|
+
test('Velocidade da luz ≈ 1079252848.7136598 bilhão km/h', () => {
|
|
233
|
+
expect(converter.convert(1, 'velocidade-da-luz', 'quilometro-por-hora')).toBeCloseTo(1079252848.7136598, 1);
|
|
234
|
+
});
|
|
235
|
+
});
|
|
236
|
+
// Testes específicos de aplicações
|
|
237
|
+
describe('Aplicações específicas', () => {
|
|
238
|
+
test('Limite urbano: 50 km/h → mph ≈ 31.07', () => {
|
|
239
|
+
expect(converter.convert(50, 'quilometro-por-hora', 'milha-por-hora')).toBeCloseTo(31.07, 2);
|
|
240
|
+
});
|
|
241
|
+
test('Velocidade de cruzeiro Boeing 747: 900 km/h → Mach ≈ 0.735', () => {
|
|
242
|
+
expect(converter.convert(900, 'quilometro-por-hora', 'mach')).toBeCloseTo(0.735, 3);
|
|
243
|
+
});
|
|
244
|
+
test('Velocidade típica de vento: 20 nós → m/s ≈ 10.29', () => {
|
|
245
|
+
expect(converter.convert(20, 'nos', 'metro-por-segundo')).toBeCloseTo(10.29, 2);
|
|
246
|
+
});
|
|
247
|
+
test('Velocidade de escape da Terra: 11.2 km/s → mph ≈ 25053.686471009307', () => {
|
|
248
|
+
expect(converter.convert(11.2, 'quilometro-por-segundo', 'milha-por-hora')).toBeCloseTo(25053.686471009307, 0);
|
|
249
|
+
});
|
|
250
|
+
test('Corrida de 100m: 10 m/s → km/h = 35.99999999712', () => {
|
|
251
|
+
expect(converter.convert(10, 'metro-por-segundo', 'quilometro-por-hora')).toBeCloseTo(35.99999999712, 10);
|
|
252
|
+
});
|
|
253
|
+
test('Trem-bala japonês: 320 km/h → m/s ≈ 88.89', () => {
|
|
254
|
+
expect(converter.convert(320, 'quilometro-por-hora', 'metro-por-segundo')).toBeCloseTo(88.89, 2);
|
|
255
|
+
});
|
|
256
|
+
});
|
|
257
|
+
});
|