Skip to content

Commit a9b5486

Browse files
Merge pull request #7 from it-shark-pro/issue-incorrect-test-error-message
Fixed issue #5 (Incorrect test error message when test failed.)
2 parents 17ec560 + 17b1ffe commit a9b5486

File tree

5 files changed

+184
-170
lines changed

5 files changed

+184
-170
lines changed

test/01-strings-tests.js

Lines changed: 47 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -21,107 +21,109 @@ it.optional = require('../extensions/it-optional');
2121

2222
describe('01-strings-tasks', () => {
2323
it.optional('concatenateStrings should return concatenation of two strings', () => {
24-
assert.equal('aabb', concatenateStrings('aa', 'bb'));
25-
assert.equal('aa', concatenateStrings('aa', ''));
26-
assert.equal('bb', concatenateStrings('', 'bb'));
24+
assert.equal(concatenateStrings('aa', 'bb'), 'aabb');
25+
assert.equal(concatenateStrings('aa', ''), 'aa');
26+
assert.equal(concatenateStrings('', 'bb'), 'bb');
2727
});
2828

2929
it.optional('getStringLength should return the length of string', () => {
30-
assert.equal(5, getStringLength('aaaaa'), "'aaaaa' length should be 5");
31-
assert.equal(0, getStringLength(''), "'' length should be 0");
30+
assert.equal(getStringLength('aaaaa'), 5, "'aaaaa' length should be 5");
31+
assert.equal(getStringLength(''), 0, "'' length should be 0");
3232
});
3333

3434
it.optional('getStringFromTemplate should create a string from template using given parameters', () => {
35-
assert.equal('Hello, John Doe!', getStringFromTemplate('John', 'Doe'));
36-
assert.equal('Hello, Chuck Norris!', getStringFromTemplate('Chuck', 'Norris'));
35+
assert.equal(getStringFromTemplate('John', 'Doe'), 'Hello, John Doe!');
36+
assert.equal(getStringFromTemplate('Chuck', 'Norris'), 'Hello, Chuck Norris!');
3737
});
3838

3939
it.optional('getFirstChar should return the first char from given string', () => {
40-
assert.equal('J', getFirstChar('John Doe'));
41-
assert.equal('c', getFirstChar('cat'));
40+
assert.equal(getFirstChar('John Doe'), 'J');
41+
assert.equal(getFirstChar('cat'), 'c');
4242
});
4343

4444
it.optional('extractNameFromTemplate should parse the name from given string', () => {
45-
assert.equal('John Doe', extractNameFromTemplate('Hello, John Doe!'));
46-
assert.equal('Chuck Norris', extractNameFromTemplate('Hello, Chuck Norris!'));
45+
assert.equal(extractNameFromTemplate('Hello, John Doe!'), 'John Doe');
46+
assert.equal(extractNameFromTemplate('Hello, Chuck Norris!'), 'Chuck Norris');
4747
});
4848

4949
it.optional('removeLeadingAndTrailingWhitespaces should remove leading and trailing whitespaces from the string', () => {
50-
assert.equal('Abracadabra', removeLeadingAndTrailingWhitespaces(' Abracadabra'));
51-
assert.equal('cat', removeLeadingAndTrailingWhitespaces('cat'));
52-
assert.equal('Hello, World!', removeLeadingAndTrailingWhitespaces('\tHello, World! '));
50+
assert.equal(removeLeadingAndTrailingWhitespaces(' Abracadabra'), 'Abracadabra');
51+
assert.equal(removeLeadingAndTrailingWhitespaces('cat'), 'cat');
52+
assert.equal(removeLeadingAndTrailingWhitespaces('\tHello, World! '), 'Hello, World!');
5353
});
5454

5555
it.optional('repeatString should repeat string specified number of times', () => {
56-
assert.equal('AAAAA', repeatString('A', 5));
57-
assert.equal('catcatcat', repeatString('cat', 3));
56+
assert.equal(repeatString('A', 5), 'AAAAA');
57+
assert.equal(repeatString('cat', 3), 'catcatcat');
5858
});
5959

6060
it.optional('removeFirstOccurrences should remove all specified values from a string', () => {
61-
assert.equal('To be or to be', removeFirstOccurrences('To be or not to be', ' not'));
62-
assert.equal('I like legs', removeFirstOccurrences('I like legends', 'end'));
63-
assert.equal('ABAB', removeFirstOccurrences('ABABAB', 'BA'));
61+
assert.equal(removeFirstOccurrences('To be or not to be', ' not'), 'To be or to be');
62+
assert.equal(removeFirstOccurrences('I like legends', 'end'), 'I like legs');
63+
assert.equal(removeFirstOccurrences('ABABAB', 'BA'), 'ABAB');
6464
});
6565

6666
it.optional('unbracketTag should remove first and last angle brackets from tag string', () => {
67-
assert.equal('div', unbracketTag('<div>'));
68-
assert.equal('span', unbracketTag('<span>'));
69-
assert.equal('a', unbracketTag('<a>'));
67+
assert.equal(unbracketTag('<div>'), 'div');
68+
assert.equal(unbracketTag('<span>'), 'span');
69+
assert.equal(unbracketTag('<a>'), 'a');
7070
});
7171

7272
it.optional('convertToUpperCase should convert all chars from specified string into upper case', () => {
73-
assert.equal('THUNDERSTRUCK', convertToUpperCase('Thunderstruck'));
74-
assert.equal('ABCDEFGHIJKLMNOPQRSTUVWXYZ', convertToUpperCase('abcdefghijklmnopqrstuvwxyz'));
73+
assert.equal(convertToUpperCase('Thunderstruck'), 'THUNDERSTRUCK');
74+
assert.equal(convertToUpperCase('abcdefghijklmnopqrstuvwxyz'), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ');
7575
});
7676

7777
it.optional('extractEmails should extract emails from string list delimeted by semicolons', () => {
7878
assert.deepEqual(
79-
80-
79+
80+
8181
);
8282
assert.deepEqual(
83-
84-
extractEmails('[email protected]')
83+
extractEmails('[email protected]'),
84+
8585
);
8686
});
8787

8888
it.optional('getRectangleString should return the string reprentation of rectangle with specified size', () => {
8989
assert.equal(
90+
getRectangleString(6, 4),
9091
'┌────┐\n' +
9192
'│ │\n' +
9293
'│ │\n' +
93-
'└────┘\n',
94-
getRectangleString(6, 4)
94+
'└────┘\n'
9595
);
9696
assert.deepEqual(
97+
getRectangleString(2, 2),
9798
'┌┐\n' +
98-
'└┘\n',
99-
getRectangleString(2, 2)
99+
'└┘\n'
100100
);
101101
assert.deepEqual(
102+
getRectangleString(12, 3),
102103
'┌──────────┐\n' +
103104
'│ │\n' +
104-
'└──────────┘\n',
105-
getRectangleString(12, 3)
105+
'└──────────┘\n'
106106
);
107107
});
108108

109109
it.optional('encodeToRot13 should encode-decode string using ROT13 algorithm', () => {
110-
assert.equal('uryyb', encodeToRot13('hello'));
111-
assert.equal('Jul qvq gur puvpxra pebff gur ebnq?', encodeToRot13('Why did the chicken cross the road?'));
112-
assert.equal('To get to the other side!', encodeToRot13('Gb trg gb gur bgure fvqr!'));
110+
assert.equal(encodeToRot13('hello'), 'uryyb');
113111
assert.equal(
114-
'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm',
115-
encodeToRot13('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz')
112+
encodeToRot13('Why did the chicken cross the road?'),
113+
'Jul qvq gur puvpxra pebff gur ebnq?');
114+
assert.equal(encodeToRot13('Gb trg gb gur bgure fvqr!'), 'To get to the other side!');
115+
assert.equal(
116+
encodeToRot13('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'),
117+
'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm'
116118
);
117119
});
118120

119121
it.optional('isString should return true if argument ia a string', () => {
120-
assert.equal(false, isString(), 'undefined');
121-
assert.equal(false, isString(null), 'null');
122-
assert.equal(false, isString([]), '[]');
123-
assert.equal(true, isString('test'), 'test');
124-
assert.equal(true, isString(new String('test')), "new String('test')");
122+
assert.equal(isString(), false, 'undefined');
123+
assert.equal(isString(null), false, 'null');
124+
assert.equal(isString([]), false, '[]');
125+
assert.equal(isString('test'), true, 'test');
126+
assert.equal(isString(new String('test')), true, "new String('test')");
125127
});
126128

127129
it.optional('getCardId should return the index of card in the initial deck', () => {
@@ -132,8 +134,8 @@ describe('01-strings-tasks', () => {
132134
'A♠', '2♠', '3♠', '4♠', '5♠', '6♠', '7♠', '8♠', '9♠', '10♠', 'J♠', 'Q♠', 'K♠'
133135
].forEach((val, index) => {
134136
assert.equal(
135-
index,
136137
getCardId(val),
138+
index,
137139
`Invalid id for card '${val}':`
138140
);
139141
});

test/02-numbers-tests.js

Lines changed: 61 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -18,97 +18,100 @@ it.optional = require('../extensions/it-optional');
1818

1919
describe('02-numbers-tasks', () => {
2020
it.optional('getRectangleArea should return a square of rectangle', () => {
21-
assert.equal(50, getRectangleArea(5, 10));
22-
assert.equal(25, getRectangleArea(5, 5));
21+
assert.equal(getRectangleArea(5, 10), 50);
22+
assert.equal(getRectangleArea(5, 5), 25);
2323
});
2424

2525
it.optional('getCicleCircumference should return a circumference of cicle', () => {
26-
assert.equal(31.41592653589793, getCicleCircumference(5));
27-
assert.equal(19.729201864543903, getCicleCircumference(3.14));
28-
assert.equal(0, getCicleCircumference(0));
26+
assert.equal(getCicleCircumference(5), 31.41592653589793);
27+
assert.equal(getCicleCircumference(3.14), 19.729201864543903);
28+
assert.equal(getCicleCircumference(0), 0);
2929
});
3030

3131
it.optional('getAverage should return an average of two numbers', () => {
32-
assert.equal(5, getAverage(5, 5));
33-
assert.equal(5, getAverage(10, 0));
34-
assert.equal(0, getAverage(-3, 3));
35-
assert.equal(Number.MAX_VALUE - 1, getAverage(Number.MAX_VALUE - 2, Number.MAX_VALUE));
36-
assert.equal(Number.MAX_VALUE / 4, getAverage(Number.MAX_VALUE, -Number.MAX_VALUE / 2));
32+
assert.equal(getAverage(5, 5), 5);
33+
assert.equal(getAverage(10, 0), 5);
34+
assert.equal(getAverage(-3, 3), 0);
35+
assert.equal(getAverage(Number.MAX_VALUE - 2, Number.MAX_VALUE), Number.MAX_VALUE - 1);
36+
assert.equal(getAverage(Number.MAX_VALUE, -Number.MAX_VALUE / 2), Number.MAX_VALUE / 4);
3737
});
3838

3939
it.optional('getDistanceBetweenPoints should return a distance between points', () => {
40-
assert.equal(1, getDistanceBetweenPoints(0, 0, 0, 1));
41-
assert.equal(1, getDistanceBetweenPoints(0, 0, 1, 0));
42-
assert.equal(18.027756377319946, getDistanceBetweenPoints(-5, 0, 10, -10));
40+
assert.equal(getDistanceBetweenPoints(0, 0, 0, 1), 1);
41+
assert.equal(getDistanceBetweenPoints(0, 0, 1, 0), 1);
42+
assert.equal(getDistanceBetweenPoints(-5, 0, 10, -10), 18.027756377319946);
4343
});
4444

4545
it.optional('getLinearEquationRoot should return a root of linear equation', () => {
46-
assert.equal(2, getLinearEquationRoot(5, -10));
47-
assert.equal(-8, getLinearEquationRoot(1, 8));
48-
assert.equal(0, getLinearEquationRoot(5, 0));
46+
assert.equal(getLinearEquationRoot(5, -10), 2);
47+
assert.equal(getLinearEquationRoot(1, 8), -8);
48+
assert.equal(getLinearEquationRoot(5, 0), 0);
4949
});
5050

5151
it.optional('getAngleBetweenVectors should return a angle (in radians) between two linear vectors', () => {
52-
assert.equal(Math.PI / 2, getAngleBetweenVectors(1, 0, 0, 1));
53-
assert.equal(Math.PI, getAngleBetweenVectors(0, 1, 0, -1));
54-
assert.equal(Math.PI / 2, getAngleBetweenVectors(0, -1, 1, 0));
55-
assert.equal(0, getAngleBetweenVectors(0, 1, 0, 1));
52+
assert.equal(getAngleBetweenVectors(1, 0, 0, 1), Math.PI / 2);
53+
assert.equal(getAngleBetweenVectors(0, 1, 0, -1), Math.PI);
54+
assert.equal(getAngleBetweenVectors(0, -1, 1, 0), Math.PI / 2);
55+
assert.equal(getAngleBetweenVectors(0, 1, 0, 1), 0);
5656
});
5757

5858
it.optional('getLastDigit should return a last digit of the number', () => {
59-
assert.equal(0, getLastDigit(100));
60-
assert.equal(7, getLastDigit(37));
61-
assert.equal(5, getLastDigit(5));
62-
assert.equal(0, getLastDigit(0));
59+
assert.equal(getLastDigit(100), 0);
60+
assert.equal(getLastDigit(37), 7);
61+
assert.equal(getLastDigit(5), 5);
62+
assert.equal(getLastDigit(0), 0);
6363
});
6464

6565
it.optional('parseNumberFromString should return a number from the given string representation', () => {
66-
assert.equal(100, parseNumberFromString('100'));
67-
assert.equal(37, parseNumberFromString('37'));
68-
assert.equal(-525.5, parseNumberFromString('-525.5'));
66+
assert.equal(parseNumberFromString('100'), 100);
67+
assert.equal(parseNumberFromString('37'), 37);
68+
assert.equal(parseNumberFromString('-525.5'), -525.5);
6969
});
7070

7171
it.optional('getParallelipidedDiagonal should return a diagonal length of the rectagular parallepiped', () => {
72-
assert.equal(Math.sqrt(3), getParallelipidedDiagonal(1, 1, 1));
73-
assert.equal(Math.sqrt(27), getParallelipidedDiagonal(3, 3, 3));
74-
// assert.equal(Math.sqrt(14), getParallelipidedDiagonal(1,2,3));
72+
assert.equal(getParallelipidedDiagonal(1, 1, 1), Math.sqrt(3));
73+
assert.equal(getParallelipidedDiagonal(3, 3, 3), Math.sqrt(27));
74+
assert.equal(
75+
Math.round(getParallelipidedDiagonal(1, 2, 3), 15),
76+
Math.round(Math.sqrt(14), 15)
77+
);
7578
});
7679

7780
it.optional('roundToPowerOfTen should return an number rounded to specified power of 10', () => {
78-
assert.equal(1234, roundToPowerOfTen(1234, 0));
79-
assert.equal(1230, roundToPowerOfTen(1234, 1));
80-
assert.equal(1200, roundToPowerOfTen(1234, 2));
81-
assert.equal(1000, roundToPowerOfTen(1234, 3));
81+
assert.equal(roundToPowerOfTen(1234, 0), 1234);
82+
assert.equal(roundToPowerOfTen(1234, 1), 1230);
83+
assert.equal(roundToPowerOfTen(1234, 2), 1200);
84+
assert.equal(roundToPowerOfTen(1234, 3), 1000);
8285

83-
assert.equal(9678, roundToPowerOfTen(9678, 0));
84-
assert.equal(9680, roundToPowerOfTen(9678, 1));
85-
assert.equal(9700, roundToPowerOfTen(9678, 2));
86-
assert.equal(10000, roundToPowerOfTen(9678, 3));
86+
assert.equal(roundToPowerOfTen(9678, 0), 9678);
87+
assert.equal(roundToPowerOfTen(9678, 1), 9680);
88+
assert.equal(roundToPowerOfTen(9678, 2), 9700);
89+
assert.equal(roundToPowerOfTen(9678, 3), 10000);
8790
});
8891

8992
it.optional('isPrime should return true if specified number is prime', () => {
90-
assert.equal(true, isPrime(2), '2');
91-
assert.equal(true, isPrime(3), '3');
92-
assert.equal(false, isPrime(4), '4');
93-
assert.equal(true, isPrime(5), '5');
94-
assert.equal(false, isPrime(6), '6');
95-
assert.equal(true, isPrime(7), '7');
96-
assert.equal(false, isPrime(8), '8');
97-
assert.equal(false, isPrime(9), '9');
98-
assert.equal(false, isPrime(10), '10');
99-
assert.equal(true, isPrime(11), '11');
100-
assert.equal(false, isPrime(12), '12');
101-
assert.equal(true, isPrime(13), '13');
102-
assert.equal(true, isPrime(113), '113');
103-
assert.equal(false, isPrime(119), '119');
93+
assert.equal(isPrime(2), true, '2');
94+
assert.equal(isPrime(3), true, '3');
95+
assert.equal(isPrime(4), false, '4');
96+
assert.equal(isPrime(5), true, '5');
97+
assert.equal(isPrime(6), false, '6');
98+
assert.equal(isPrime(7), true, '7');
99+
assert.equal(isPrime(8), false, '8');
100+
assert.equal(isPrime(9), false, '9');
101+
assert.equal(isPrime(10), false, '10');
102+
assert.equal(isPrime(11), true, '11');
103+
assert.equal(isPrime(12), false, '12');
104+
assert.equal(isPrime(13), true, '13');
105+
assert.equal(isPrime(113), true, '113');
106+
assert.equal(isPrime(119), false, '119');
104107
});
105108

106109
it.optional('toNumber should convert any value to number or return the default', () => {
107-
assert.equal(0, toNumber(null, 0));
108-
assert.equal(0, toNumber('test', 0));
109-
assert.equal(1, toNumber('1', 0));
110-
assert.equal(42, toNumber(42, 0));
111-
assert.equal(42, toNumber(new Number(42), 0));
112-
assert.equal(-1, toNumber(undefined, -1));
110+
assert.equal(toNumber(null, 0), 0);
111+
assert.equal(toNumber('test', 0), 0);
112+
assert.equal(toNumber('1', 0), 1);
113+
assert.equal(toNumber(42, 0), 42);
114+
assert.equal(toNumber(new Number(42), 0), 42);
115+
assert.equal(toNumber(undefined, -1), -1);
113116
});
114117
});

test/03-date-tests.js

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,31 @@ it.optional = require('../extensions/it-optional');
1212
describe('03-date-tasks', () => {
1313
it.optional('parseDataFromRfc2822 should parse rfc2822 string into a date value', () => {
1414
assert.equal(
15-
new Date(1995, 11, 17, 3, 24, 0).valueOf(),
16-
parseDataFromRfc2822('December 17, 1995 03:24:00').valueOf()
15+
parseDataFromRfc2822('December 17, 1995 03:24:00').valueOf(),
16+
new Date(1995, 11, 17, 3, 24, 0).valueOf()
1717
);
1818

1919
assert.equal(
20-
1453816082000,
21-
parseDataFromRfc2822('Tue, 26 Jan 2016 13:48:02 GMT').valueOf()
20+
parseDataFromRfc2822('Tue, 26 Jan 2016 13:48:02 GMT').valueOf(),
21+
1453816082000
2222
);
2323

2424
assert.equal(
25-
895370400000,
26-
parseDataFromRfc2822('Sun, 17 May 1998 03:00:00 GMT+0100').valueOf()
25+
parseDataFromRfc2822('Sun, 17 May 1998 03:00:00 GMT+0100').valueOf(),
26+
895370400000
2727
);
2828
});
2929

3030

3131
it.optional('parseDataFromIso8601 should parse ISO 8601 string into a date value', () => {
3232
assert.equal(
33-
1453219657000,
34-
parseDataFromIso8601('2016-01-19T16:07:37+00:00').valueOf()
33+
parseDataFromIso8601('2016-01-19T16:07:37+00:00').valueOf(),
34+
1453219657000
3535
);
3636

3737
assert.equal(
38-
1453190857000,
39-
parseDataFromIso8601('2016-01-19T08:07:37Z').valueOf()
38+
parseDataFromIso8601('2016-01-19T08:07:37Z').valueOf(),
39+
1453190857000
4040
);
4141
});
4242

@@ -89,8 +89,8 @@ describe('03-date-tasks', () => {
8989
}
9090
].forEach(data => {
9191
assert.equal(
92-
data.expected,
93-
timeSpanToString(data.startDate, data.endDate)
92+
timeSpanToString(data.startDate, data.endDate),
93+
data.expected
9494
);
9595
});
9696
});

0 commit comments

Comments
 (0)