countUniques

Для массива строк собрать статистику, сколько раз каждая строка появляется в нем. Результат вернуть в виде объекта с полями, равными уникальным строкам.

by Anastasia Sharko

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("countUniques", function() {
    before(function() {
      chai.config.includeStack = false;
    });
    describe("формат", function() {
      it("объявлена", function() {
        assert.isFunction(countUniques);
      });
      it("принимает один аргумент", function() {
        assert.equal(countUniques.length, 1);
      });
    });

    describe("основные тесты", function() {
      it("пустой массив", function() {
        assert.deepEqual(countUniques([]), {});
      });
      it("один элемент", function() {
        assert.deepEqual(countUniques(["test"]), {test: 1});
      });
      it("все одинаковые", function() {
        assert.deepEqual(countUniques(["x","x","x","x"]), {x: 4});
      });
      it("все разные", function() {
        assert.deepEqual(countUniques(["a","b","c","d"]), {a: 1,b: 1,c: 1,d: 1});
      });
      it("ассорти", function() {
        assert.deepEqual(countUniques([
          "a","d","d","a","e","a","b","d","a","c",
          "a","e","d","c","c","e","d","c","a","a",
          "e","a","a","e","e","d","a","d","d","d"
        ]), {a: 10,b: 1,c: 4,d: 9,e: 6});
      });
    });
  });
  mocha.run();

</script>

JavaScript

function countUniques(a) {
  return {};
}