occurrences QUnit
Unit test
by Victor
HTML
<script src="https://code.jquery.com/qunit/qunit-1.12.0.js"></script>
<link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-1.12.0.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>
<script src="https://rawgit.com/victornpb/7736865/raw/a49ce04c7104651118c07a6542710908a4e1591a/occurrences.js"></script>
<a href="http://stackoverflow.com/questions/4009756/how-to-count-string-occurrence-in-string/7924240#7924240">stackoverflow question</a>
<br>
<a href="https://gist.github.com/victornpb/7736865">gist.github.com/victornpb/7736865</a>
<hr>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
JavaScript
/*
https://gist.github.com/victornpb/7736865
http://stackoverflow.com/questions/4009756/how-to-count-string-occurrence-in-string/7924240#7924240
*/
test("empty substring", function() {
equal(occurrences("", ""), 1);
equal(occurrences("abc", ""), 4);
});
test("single occurences", function() {
equal(occurrences("foo", "foo"), 1);
equal(occurrences("blahfooblah", "foo"), 1);
equal(occurrences("foo", "f"), 1);
});
test("multiple occurrences", function() {
equal(occurrences("foofoofoofoo", "foo"), 4);
equal(occurrences("foofoofoofoo", "foofoo"), 2);
equal(occurrences("blafooblahfooblah", "foo"), 2);
equal(occurrences("foofoofooooofo", "foo"), 3);
});
test("no occurrences", function() {
equal(occurrences("", "foo"), 0);
equal(occurrences("abc", "foo"), 0);
equal(occurrences("boo", "foo"), 0);
});
test("overlap", function() {
equal(occurrences("", "", true), 1);
equal(occurrences("abc", "", true), 4);
equal(occurrences("foofoofoofoo", "foofoo", true), 3);
equal(occurrences("blafooblahfooblah", "foo", true), 2);
equal(occurrences("foofoofooooofo", "foo", true), 3);
});
test("overlap no occurrences", function() {
equal(occurrences("", "foo", true), 0);
equal(occurrences("abc", "foo", true), 0);
equal(occurrences("boo", "foo", true), 0);
equal(occurrences("fooofooofooofoo", "foofoo", true), 0);
equal(occurrences("blafobooblahfoboblah", "foo", true), 0);
equal(occurrences("fofofofaooooofo", "foo", true), 0);
});