<commit_before>describe("About Generators", function () {

  describe("Basic usage", function () {

    it("should understand syntax", function () {

      // `*` immediately after `function` denotes a generator
      function* createGenerator() {
        //`yield` keyword exits function execution
        yield 1;
      }

      // invoking a generator function returns a generator interface
      // `.next()` is used to `start` a generator
      // Also used to resume function execution to the next `yield`
      var generator = createGenerator();

      expect(generator.next().value).toEqual(FILL_ME_IN);

      var completedGenerator = generator.next()

      expect(completedGenerator.value).toEqual(FILL_ME_IN);
      expect(completedGenerator.done).toEqual(FILL_ME_IN);

      debugger;
    });
  });
});
<commit_msg>feat: Add extra generator koan<commit_after>describe("About Generators", function () {

  describe("Basic usage", function () {

    it("should understand syntax", function () {

      // `*` immediately after `function` denotes a generator
      function* createGenerator() {
        //`yield` keyword exits function execution
        yield 1;
      }

      // invoking a generator function returns a generator interface
      // `.next()` is used to `start` a generator
      // Also used to resume function execution to the next `yield`
      var generator = createGenerator();

      expect(generator.next().value).toEqual(FILL_ME_IN);

      var completedGenerator = generator.next()

      //Values of a finished generator
      expect(completedGenerator.done).toEqual(FILL_ME_IN);
      expect(completedGenerator.value).toEqual(FILL_ME_IN);
    });

    it('should understand use of `yield`', function() {
      function* multiplyNumber(number) {
        yield number*1;
        yield number*2;
        yield number*3;
        yield number*4;
        yield number*5;
      }

      var generator = multiplyNumber(10);

      //first
      expect(generator.next().value).toEqual(FILL_ME_IN);
      //second
      expect(generator.next().value).toEqual(FILL_ME_IN);
      //third
      expect(generator.next().value).toEqual(FILL_ME_IN);
      //fourth
      expect(generator.next().value).toEqual(FILL_ME_IN);
      //fifth
      expect(generator.next().value).toEqual(FILL_ME_IN);
    })
  });
});

{'fraction_non_alphanumeric': 0.12339331619537275, 'fraction_numerical': 0.0038560411311053984, 'mean_word_length': 2.8278688524590163, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2325774', 'n_tokens_mistral': 655, 'n_tokens_neox': 624, 'n_words': 159}