mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-06 01:18:23 +08:00
fix ident file
This commit is contained in:
@ -4,22 +4,22 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
const checkWordOccurrence = (str, isCaseSensitive = false) => {
|
const checkWordOccurrence = (str, isCaseSensitive = false) => {
|
||||||
if (typeof str != 'string') {
|
if (typeof str != 'string') {
|
||||||
throw new TypeError('The first param should be a string');
|
throw new TypeError('The first param should be a string');
|
||||||
}
|
}
|
||||||
if (typeof isCaseSensitive != 'boolean') {
|
if (typeof isCaseSensitive != 'boolean') {
|
||||||
throw new TypeError('The second param should be a boolean')
|
throw new TypeError('The second param should be a boolean')
|
||||||
}
|
}
|
||||||
|
|
||||||
let result = {}
|
let result = {}
|
||||||
if (str.length > 0) {
|
if (str.length > 0) {
|
||||||
for (let i = 0; i < str.length; i++) {
|
for (let i = 0; i < str.length; i++) {
|
||||||
const word = isCaseSensitive ? str[i] : str[i].toUpperCase()
|
const word = isCaseSensitive ? str[i] : str[i].toUpperCase()
|
||||||
if(/\s/.test(word)) continue;
|
if (/\s/.test(word)) continue;
|
||||||
result[word] = (!result[word]) ? 1 : result[word] + 1
|
result[word] = (!result[word]) ? 1 : result[word] + 1
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
export { checkWordOccurrence }
|
export { checkWordOccurrence }
|
@ -1,34 +1,34 @@
|
|||||||
import {checkWordOccurrence} from './CheckWordOccurrence';
|
import { checkWordOccurrence } from './CheckWordOccurrence';
|
||||||
describe('checkWordOccurrence', () => {
|
describe('checkWordOccurrence', () => {
|
||||||
it('expects throw on insert wrong string', () => {
|
it('expects throw on insert wrong string', () => {
|
||||||
const value = 123;
|
const value = 123;
|
||||||
expect(() => checkWordOccurrence(value)).toThrow();
|
expect(() => checkWordOccurrence(value)).toThrow();
|
||||||
|
});
|
||||||
|
it('expect throw on insert wrong param for case sensitive', () => {
|
||||||
|
const value = 'hello';
|
||||||
|
expect(() => checkWordOccurrence(value, value)).toThrow();
|
||||||
|
});
|
||||||
|
it('check occurrence with case sensitive', () => {
|
||||||
|
const stringToTest = "A Mad World";
|
||||||
|
const charsOccurrences = checkWordOccurrence(stringToTest, true);
|
||||||
|
const expectResult = { A: 1, M: 1, a: 1, d: 2, W: 1, l: 1, o: 1, r: 1 };
|
||||||
|
const occurrencesObjectKeys = Object.keys(charsOccurrences);
|
||||||
|
const expectObjectKeys = Object.keys(expectResult);
|
||||||
|
expect(occurrencesObjectKeys.length).toBe(expectObjectKeys.length);
|
||||||
|
expectObjectKeys.forEach(key => {
|
||||||
|
expect(expectResult[key]).toBe(charsOccurrences[key]);
|
||||||
});
|
});
|
||||||
it('expect throw on insert wrong param for case sensitive', () => {
|
});
|
||||||
const value = 'hello';
|
it('check occurrence with case insensitive', () => {
|
||||||
expect(() => checkWordOccurrence(value, value)).toThrow();
|
const stringToTest = "A Mad World";
|
||||||
|
const charsOccurrences = checkWordOccurrence(stringToTest, false);
|
||||||
|
const expectResult = { A: 2, D: 2, L: 1, M: 1, O: 1, R: 1, W: 1 };
|
||||||
|
const occurrencesObjectKeys = Object.keys(charsOccurrences);
|
||||||
|
const expectObjectKeys = Object.keys(expectResult);
|
||||||
|
expect(occurrencesObjectKeys.length).toBe(expectObjectKeys.length);
|
||||||
|
expectObjectKeys.forEach(key => {
|
||||||
|
expect(expectResult[key]).toBe(charsOccurrences[key]);
|
||||||
});
|
});
|
||||||
it('check occurrence with case sensitive', () => {
|
|
||||||
const stringToTest = "A Mad World";
|
|
||||||
const charsOccurrences = checkWordOccurrence(stringToTest, true);
|
|
||||||
const expectResult = {A: 1, M: 1, a: 1, d: 2, W: 1, l: 1, o: 1, r: 1};
|
|
||||||
const occurrencesObjectKeys = Object.keys(charsOccurrences);
|
|
||||||
const expectObjectKeys = Object.keys(expectResult);
|
|
||||||
expect(occurrencesObjectKeys.length).toBe(expectObjectKeys.length);
|
|
||||||
expectObjectKeys.forEach(key => {
|
|
||||||
expect(expectResult[key]).toBe(charsOccurrences[key]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
it('check occurrence with case insensitive', () => {
|
|
||||||
const stringToTest = "A Mad World";
|
|
||||||
const charsOccurrences = checkWordOccurrence(stringToTest, false);
|
|
||||||
const expectResult = {A: 2, D: 2, L: 1, M: 1, O: 1, R: 1, W: 1};
|
|
||||||
const occurrencesObjectKeys = Object.keys(charsOccurrences);
|
|
||||||
const expectObjectKeys = Object.keys(expectResult);
|
|
||||||
expect(occurrencesObjectKeys.length).toBe(expectObjectKeys.length);
|
|
||||||
expectObjectKeys.forEach(key => {
|
|
||||||
expect(expectResult[key]).toBe(charsOccurrences[key]);
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
Reference in New Issue
Block a user