solveQuadratic()
Решить квадратное уравнение a*x^2 + b*x + c = 0. Вернуть любой из корней; в случае если корней нет, вернуть NaN.
by l_gordienkova
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.4.5/mocha.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/3.5.0/chai.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/2.4.5/mocha.min.css">
<div id="mocha">
</div>
<script>
mocha.setup('bdd');
var assert = chai.assert;
var expect = chai.expect;
</script>
<script>
describe("solveQuadratic", function() {
before(function () {
chai.config.includeStack = false;
});
it("два разных корня", function() {
var x = solveQuadratic(1, -5, 6);
assert.ok(x == 2 || x == 3);
});
it("один кратный корень", function() {
assert.equal(-3, solveQuadratic(1, 6, 9));
});
it("нет корней", function() {
assert.isNaN(solveQuadratic(1, 2, 4));
});
});
mocha.run();
</script>
JavaScript
function solveQuadratic(a, b, c){
var d=b*b-4*a*c;
x1=(-b+Math.sqrt(d))/(2*a);
x2=(-b-Math.sqrt(d))/(2*a);
if (d<0) return NaN;
else return x1;
}