forked from WildCodeSchool/js-katas
-
Notifications
You must be signed in to change notification settings - Fork 0
/
binary-to-decimal.js
53 lines (43 loc) · 1.08 KB
/
binary-to-decimal.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/*
Create a function `convert` which, given a binary string representation of a number, returns its decimal value.
Here's the numbers 0 to 9 represented as base 2 (binary):
"0" 0
"1" 1
"10" 2
"11" 3
"100" 4
"101" 5
"110" 6
"111" 7
"1000" 8
"1001" 9
You can't use the function parseInt.
Add you own tests.
Bonus:
* if the argument isn't a string, throw a TypeError with the message "Illegal argument"
* if the argument is an empty string, or if a digit isn't 1 or 0, throw an Error with the message "Illegal binary string"
*/
// TODO add your code here
// Begin of tests
const assert = require("assert");
assert.strictEqual(typeof convert, "function");
assert.strictEqual(convert.length, 1);
assert.strictEqual(
convert.toString().includes("parseInt"),
false,
"don't use parseInt()"
);
// TODO add your tests:
// Bonus: exceptions
/*
assert.throws(() => {
convert(1);
}, /^TypeError: Illegal argument$/);
assert.throws(() => {
convert("");
}, /^Error: Illegal binary string$/);
assert.throws(() => {
convert("01A1");
}, /^Error: Illegal binary string$/);
*/
// End of tests