mirror of
https://github.com/josdejong/mathjs.git
synced 2026-01-18 14:59:29 +00:00
commit
0dfd667d0d
20
bin/cli.js
20
bin/cli.js
@ -22,6 +22,7 @@
|
||||
*
|
||||
* Example usage:
|
||||
* mathjs Open a command prompt
|
||||
* mathjs 1+2 Evaluate expression
|
||||
* mathjs script.txt Run a script file
|
||||
* mathjs script1.txt script2.txt Run two script files
|
||||
* mathjs script.txt > results.txt Run a script file, output to file
|
||||
@ -336,7 +337,7 @@ function outputHelp() {
|
||||
console.log('functions, and a flexible expression parser.');
|
||||
console.log();
|
||||
console.log('Usage:');
|
||||
console.log(' mathjs [scriptfile(s)] {OPTIONS}');
|
||||
console.log(' mathjs [scriptfile(s)|expression] {OPTIONS}');
|
||||
console.log();
|
||||
console.log('Options:');
|
||||
console.log(' --version, -v Show application version');
|
||||
@ -348,6 +349,7 @@ function outputHelp() {
|
||||
console.log();
|
||||
console.log('Example usage:');
|
||||
console.log(' mathjs Open a command prompt');
|
||||
console.log(' mathjs 1+2 Evaluate expression');
|
||||
console.log(' mathjs script.txt Run a script file');
|
||||
console.log(' mathjs script.txt script2.txt Run two script files');
|
||||
console.log(' mathjs script.txt > results.txt Run a script file, output to file');
|
||||
@ -420,9 +422,15 @@ else if (scripts.length === 0) {
|
||||
runStream(process.stdin, process.stdout, mode, parenthesis);
|
||||
}
|
||||
else {
|
||||
//work through the queue of scripts
|
||||
scripts.forEach(function (arg) {
|
||||
// run a script file
|
||||
runStream(fs.createReadStream(arg), process.stdout, mode, parenthesis);
|
||||
});
|
||||
fs.stat(scripts[0], function(e, f) {
|
||||
if (e) {
|
||||
console.log(getMath().eval(scripts.join(' ')).toString())
|
||||
} else {
|
||||
//work through the queue of scripts
|
||||
scripts.forEach(function (arg) {
|
||||
// run a script file
|
||||
runStream(fs.createReadStream(arg), process.stdout, mode, parenthesis);
|
||||
});
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
40
test/cli/cli.js
Normal file
40
test/cli/cli.js
Normal file
@ -0,0 +1,40 @@
|
||||
var assert = require('assert')
|
||||
var cp = require('child_process')
|
||||
|
||||
function run(args, done) {
|
||||
cp.exec('bin/cli.js "' + args +'"', function(e,r) {
|
||||
done(e, r.replace(/\n$/g, ''))
|
||||
})
|
||||
}
|
||||
describe('evaluate expression', function() {
|
||||
it('should sum numbers', function(done) {
|
||||
run('1+1', function(e, result) {
|
||||
assert.equal(result, 2)
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
it('should multiply matrices', function(done) {
|
||||
run('[1,2] * [3,4]', function(e, result) {
|
||||
assert.equal(result, 11)
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
it('should thow error', function(done) {
|
||||
run('y=x', function(e, result) {
|
||||
assert.equal(/^Error/g.test(e.toString()),true)
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
it('should interpret scripts', function(done) {
|
||||
run('test/cli/script1" "test/cli/script2', function(e, result){
|
||||
result = result.split('\n')
|
||||
assert.equal(result[0], 2)
|
||||
assert.equal(result[1], 8)
|
||||
done()
|
||||
})
|
||||
})
|
||||
|
||||
})
|
||||
1
test/cli/script1
Normal file
1
test/cli/script1
Normal file
@ -0,0 +1 @@
|
||||
1+1
|
||||
1
test/cli/script2
Normal file
1
test/cli/script2
Normal file
@ -0,0 +1 @@
|
||||
2*4
|
||||
Loading…
x
Reference in New Issue
Block a user