mani-calc 2.1.0 โ 2.1.1
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/package.json +1 -1
- package/ARCHITECTURE.md +0 -249
- package/CHANGELOG.md +0 -69
- package/COMPLETION_SUMMARY.md +0 -304
- package/CONTRIBUTING.md +0 -110
- package/EXAMPLES.md +0 -220
- package/OVERLAY_MODE.md +0 -364
- package/PUBLISHING_GUIDE.md +0 -291
- package/QUICK_PUBLISH.md +0 -108
- package/RELEASE_NOTES_v1.1.0.md +0 -262
- package/test/test.js +0 -133
package/test/test.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
const MathEngine = require('../src/core/math-engine');
|
|
2
|
-
const NLPParser = require('../src/core/nlp-parser');
|
|
3
|
-
const UnitConverter = require('../src/core/unit-converter');
|
|
4
|
-
const chalk = require('chalk');
|
|
5
|
-
|
|
6
|
-
console.log(chalk.cyan.bold('\n๐งช Running Mani-Calc Tests...\n'));
|
|
7
|
-
|
|
8
|
-
let passed = 0;
|
|
9
|
-
let failed = 0;
|
|
10
|
-
|
|
11
|
-
function test(name, fn) {
|
|
12
|
-
try {
|
|
13
|
-
fn();
|
|
14
|
-
console.log(chalk.green(`โ ${name}`));
|
|
15
|
-
passed++;
|
|
16
|
-
} catch (error) {
|
|
17
|
-
console.log(chalk.red(`โ ${name}`));
|
|
18
|
-
console.log(chalk.gray(` ${error.message}`));
|
|
19
|
-
failed++;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function assertEqual(actual, expected, message = '') {
|
|
24
|
-
if (actual !== expected) {
|
|
25
|
-
throw new Error(`Expected ${expected}, got ${actual}. ${message}`);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
// Math Engine Tests
|
|
30
|
-
console.log(chalk.yellow('\n๐ Math Engine Tests:'));
|
|
31
|
-
|
|
32
|
-
const mathEngine = new MathEngine();
|
|
33
|
-
|
|
34
|
-
test('Basic addition', () => {
|
|
35
|
-
assertEqual(mathEngine.evaluate('2 + 3'), 5);
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
test('Order of operations', () => {
|
|
39
|
-
assertEqual(mathEngine.evaluate('2 + 3 * 5'), 17);
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
test('Parentheses', () => {
|
|
43
|
-
assertEqual(mathEngine.evaluate('(10 + 20) / 5'), 6);
|
|
44
|
-
});
|
|
45
|
-
|
|
46
|
-
test('Square root', () => {
|
|
47
|
-
assertEqual(mathEngine.evaluate('sqrt(49)'), 7);
|
|
48
|
-
});
|
|
49
|
-
|
|
50
|
-
test('Power', () => {
|
|
51
|
-
assertEqual(mathEngine.evaluate('2^8'), 256);
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
test('Decimal operations', () => {
|
|
55
|
-
assertEqual(mathEngine.evaluate('10.5 + 5.5'), 16);
|
|
56
|
-
});
|
|
57
|
-
|
|
58
|
-
// NLP Parser Tests
|
|
59
|
-
console.log(chalk.yellow('\n๐ฌ NLP Parser Tests:'));
|
|
60
|
-
|
|
61
|
-
const nlpParser = new NLPParser();
|
|
62
|
-
|
|
63
|
-
test('Percentage parsing', () => {
|
|
64
|
-
const result = nlpParser.parse('what is 25 percent of 200');
|
|
65
|
-
assertEqual(result.type, 'natural_language');
|
|
66
|
-
assertEqual(result.expression, '(25 / 100) * 200');
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
test('Fraction parsing', () => {
|
|
70
|
-
const result = nlpParser.parse('half of 80');
|
|
71
|
-
assertEqual(result.type, 'natural_language');
|
|
72
|
-
assertEqual(result.expression, '80 / 2');
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
test('Square root parsing', () => {
|
|
76
|
-
const result = nlpParser.parse('square root of 64');
|
|
77
|
-
assertEqual(result.type, 'natural_language');
|
|
78
|
-
assertEqual(result.expression, 'sqrt(64)');
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
test('Conversion parsing', () => {
|
|
82
|
-
const result = nlpParser.parse('10 km to miles');
|
|
83
|
-
assertEqual(result.type, 'conversion');
|
|
84
|
-
assertEqual(result.value, 10);
|
|
85
|
-
assertEqual(result.fromUnit, 'km');
|
|
86
|
-
assertEqual(result.toUnit, 'miles');
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
// Unit Converter Tests
|
|
90
|
-
console.log(chalk.yellow('\n๐ Unit Converter Tests:'));
|
|
91
|
-
|
|
92
|
-
const unitConverter = new UnitConverter();
|
|
93
|
-
|
|
94
|
-
test('Kilometers to miles', () => {
|
|
95
|
-
const result = unitConverter.convert(10, 'km', 'miles');
|
|
96
|
-
assertEqual(Math.round(result * 100), 621); // 6.21 miles
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
test('Kilograms to pounds', () => {
|
|
100
|
-
const result = unitConverter.convert(5, 'kg', 'pounds');
|
|
101
|
-
assertEqual(Math.round(result * 100), 1102); // 11.02 pounds
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
test('Celsius to Fahrenheit', () => {
|
|
105
|
-
const result = unitConverter.convert(100, 'celsius', 'fahrenheit');
|
|
106
|
-
assertEqual(result, 212);
|
|
107
|
-
});
|
|
108
|
-
|
|
109
|
-
test('Celsius to Fahrenheit (0ยฐC)', () => {
|
|
110
|
-
const result = unitConverter.convert(0, 'celsius', 'fahrenheit');
|
|
111
|
-
assertEqual(result, 32);
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
test('Hours to seconds', () => {
|
|
115
|
-
const result = unitConverter.convert(2, 'hours', 'seconds');
|
|
116
|
-
assertEqual(result, 7200);
|
|
117
|
-
});
|
|
118
|
-
|
|
119
|
-
test('Meters to feet', () => {
|
|
120
|
-
const result = unitConverter.convert(10, 'meters', 'feet');
|
|
121
|
-
assertEqual(Math.round(result * 100), 3281); // 32.81 feet
|
|
122
|
-
});
|
|
123
|
-
|
|
124
|
-
// Summary
|
|
125
|
-
console.log(chalk.cyan.bold('\n๐ Test Summary:'));
|
|
126
|
-
console.log(chalk.green(`โ Passed: ${passed}`));
|
|
127
|
-
if (failed > 0) {
|
|
128
|
-
console.log(chalk.red(`โ Failed: ${failed}`));
|
|
129
|
-
process.exit(1);
|
|
130
|
-
} else {
|
|
131
|
-
console.log(chalk.green('\n๐ All tests passed!\n'));
|
|
132
|
-
process.exit(0);
|
|
133
|
-
}
|