<commit_before>describe('VglDirectionalLight:', function suite() {
  const { VglDirectionalLight } = VueGL;
  const { expect } = chai;
  it('without properties', function test(done) {
    const vm = new Vue(VglDirectionalLight);
    vm.$nextTick(() => {
      try {
        const actual = vm.inst.clone();
        actual.updateMatrixWorld();
        const expected = new THREE.DirectionalLight();
        expected.updateMatrixWorld();
        expected.uuid = actual.uuid;
        expected.shadow.camera.uuid = actual.shadow.camera.uuid;
        expect(actual.toJSON()).to.deep.equal(expected.toJSON());
        done();
      } catch (e) {
        done(e);
      }
    });
  });
  it('with properties', function test(done) {
    const vm = new (Vue.extend(VglDirectionalLight))({
      propsData: { position: '1 2 -1', intensity: '0.792', color: '#081f0e', castShadow: true },
    });
    vm.$nextTick(() => {
      try {
        const actual = vm.inst.clone();
        actual.updateMatrixWorld();
        const expected = new THREE.DirectionalLight(0x081f0e, 0.792);
        expected.position.set(1, 2, -1);
        expected.castShadow = true;
        expected.updateMatrixWorld();
        expected.uuid = actual.uuid;
        expected.shadow.camera.uuid = actual.shadow.camera.uuid;
        expect(actual.toJSON()).to.deep.equal(expected.toJSON());
        done();
      } catch (e) {
        done(e);
      }
    });
  });
  it('after properties are changed', function test(done) {
    const vm = new (Vue.extend(VglDirectionalLight))({
      propsData: { position: '1 2 -1', intensity: '0.792', color: '#081f0e', castShadow: true },
    });
    vm.$nextTick(() => {
      vm.position = '0 3 1';
      vm.intensity = 0.898;
      vm.color = '#8899fd';
      vm.castShadow = false;
      vm.$nextTick(() => {
        try {
          const actual = vm.inst.clone();
          actual.updateMatrixWorld();
          const expected = new THREE.DirectionalLight(0x8899fd, 0.898);
          expected.position.set(0, 3, 1);
          expected.castShadow = false;
          expected.updateMatrixWorld();
          expected.uuid = actual.uuid;
          expected.shadow.camera.uuid = actual.shadow.camera.uuid;
          expect(actual.toJSON()).to.deep.equal(expected.toJSON());
          done();
        } catch (e) {
          done(e);
        }
      });
    });
  });
});<commit_msg>test: Check if castShadow property is set.<commit_after>describe('VglDirectionalLight:', function suite() {
  const { VglDirectionalLight } = VueGL;
  const { expect } = chai;
  it('without properties', function test(done) {
    const vm = new Vue(VglDirectionalLight);
    vm.$nextTick(() => {
      try {
        const actual = vm.inst.clone();
        actual.updateMatrixWorld();
        const expected = new THREE.DirectionalLight();
        expected.updateMatrixWorld();
        expected.uuid = actual.uuid;
        expected.shadow.camera.uuid = actual.shadow.camera.uuid;
        expect(actual.toJSON()).to.deep.equal(expected.toJSON());
        expect(actual).to.have.property('castShadow', expected.castShadow);
        done();
      } catch (e) {
        done(e);
      }
    });
  });
  it('with properties', function test(done) {
    const vm = new (Vue.extend(VglDirectionalLight))({
      propsData: { position: '1 2 -1', intensity: '0.792', color: '#081f0e', castShadow: true },
    });
    vm.$nextTick(() => {
      try {
        const actual = vm.inst.clone();
        actual.updateMatrixWorld();
        const expected = new THREE.DirectionalLight(0x081f0e, 0.792);
        expected.position.set(1, 2, -1);
        expected.castShadow = true;
        expected.updateMatrixWorld();
        expected.uuid = actual.uuid;
        expected.shadow.camera.uuid = actual.shadow.camera.uuid;
        expect(actual.toJSON()).to.deep.equal(expected.toJSON());
        expect(actual).to.have.property('castShadow', expected.castShadow);
        done();
      } catch (e) {
        done(e);
      }
    });
  });
  it('after properties are changed', function test(done) {
    const vm = new (Vue.extend(VglDirectionalLight))({
      propsData: { position: '1 2 -1', intensity: '0.792', color: '#081f0e', castShadow: true },
    });
    vm.$nextTick(() => {
      vm.position = '0 3 1';
      vm.intensity = 0.898;
      vm.color = '#8899fd';
      vm.castShadow = false;
      vm.$nextTick(() => {
        try {
          const actual = vm.inst.clone();
          actual.updateMatrixWorld();
          const expected = new THREE.DirectionalLight(0x8899fd, 0.898);
          expected.position.set(0, 3, 1);
          expected.castShadow = false;
          expected.updateMatrixWorld();
          expected.uuid = actual.uuid;
          expected.shadow.camera.uuid = actual.shadow.camera.uuid;
          expect(actual.toJSON()).to.deep.equal(expected.toJSON());
          expect(actual).to.have.property('castShadow', expected.castShadow);
          done();
        } catch (e) {
          done(e);
        }
      });
    });
  });
});
{'fraction_non_alphanumeric': 0.15746462029101058, 'fraction_numerical': 0.022722742674905323, 'mean_word_length': 2.363270777479893, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 11, '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': '4493762', 'n_tokens_mistral': 1575, 'n_tokens_neox': 1504, 'n_words': 292}