<commit_before>suite('TransformValue', function() {
  test('TransformValue is a TransformValue and StyleValue', function() {
    var transform = new TransformValue([new Scale(2, -1)]);
    assert.instanceOf(transform, TransformValue,
        'A new TransformValue should be an instance of TransformValue');
    assert.instanceOf(transform, StyleValue,
        'A new TransformValue should be an instance of StyleValue');
  });

  test('TransformValue constructor throws exception for invalid types',
      function() {
    assert.throws(function() {new TransformValue(null)});
    assert.throws(function() {new TransformValue({})});
    assert.throws(function() {new TransformValue([])});
    assert.throws(function() {new TransformValue(['1', '2'])});
    assert.throws(function() {new TransformValue([null])});
    assert.throws(function() {new TransformValue([new NumberValue(5)])});
  });

  test('TransformValue constructor works with 1 component', function() {
    var transform;
    var scale = new Scale(2, -1);
    var values = [scale];
    assert.doesNotThrow(function() {transform = new TransformValue(values)});
    assert.isTrue(transform.is2D());
    assert.strictEqual(transform.cssString, scale.cssString);
    assert.deepEqual(transform.asMatrix(), scale.asMatrix());
  });

  test('TransformValue constructor works with duplicate component types',
        function() {
    var transform;
    var scale = new Scale(2, -1);
    var values = [scale, scale];<commit_msg>Added test case to TransformValue to check the behaviour of an empty TransformValue object<commit_after>suite('TransformValue', function() {
  test('TransformValue is a TransformValue and StyleValue', function() {
    var transform = new TransformValue([new Scale(2, -1)]);
    assert.instanceOf(transform, TransformValue,
        'A new TransformValue should be an instance of TransformValue');
    assert.instanceOf(transform, StyleValue,
        'A new TransformValue should be an instance of StyleValue');
  });

  test('TransformValue constructor throws exception for invalid types',
      function() {
    assert.throws(function() {new TransformValue(null)});
    assert.throws(function() {new TransformValue({})});
    assert.throws(function() {new TransformValue([])});
    assert.throws(function() {new TransformValue(['1', '2'])});
    assert.throws(function() {new TransformValue([null])});
    assert.throws(function() {new TransformValue([new NumberValue(5)])});
  });

  test('TransformValue empty constructor should create an object with ' + 
    'the expected properties', function() {
    var transform = new TransformValue();
    assert.isTrue(transform.is2D());
    assert.isTrue(transform.cssString == "");
    assert.deepEqual(transform.asMatrix(), new Matrix(1, 1, 1, 1, 1, 1));
  });

  test('TransformValue constructor works with 1 component', function() {
    var transform;
    var scale = new Scale(2, -1);
    var values = [scale];
    assert.doesNotThrow(function() {transform = new TransformValue(values)});
    assert.isTrue(transform.is2D());
    assert.strictEqual(transform.cssString, scale.cssString);
    assert.deepEqual(transform.asMatrix(), scale.asMatrix());
  });

  test('TransformValue constructor works with duplicate component types',
        function() {
    var transform;
    var scale = new Scale(2, -1);
    var values = [scale, scale];
{'fraction_non_alphanumeric': 0.13827893175074185, 'fraction_numerical': 0.008605341246290801, 'mean_word_length': 4.517184942716858, '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': '5739793', 'n_tokens_mistral': 934, 'n_tokens_neox': 886, 'n_words': 258}