// Copyright 2009 the Sputnik authors.  All rights reserved.
// This code is governed by the BSD license found in the LICENSE file.

/**
 * DecimalLiteral :: DecimalIntegerLiteral. DecimalDigits
 *
 * @path ch07/7.8/7.8.3/S7.8.3_A3.2_T3.js
 * @description After DecimalIntegerLiteral. used NoNZeroDigit
 */

//CHECK#0
if (0.0 !== 0.0) {
  $ERROR('#0: 0.0 === 0.0');
}

//CHECK#1
if (1.1 !== 1.1) {
  $ERROR('#1: 1.1 === 1.1');
}

//CHECK#2
if (2.2 !== 2.2) {
  $ERROR('#2: 2.2 === 2.2');
}

//CHECK#3
if (3.3 !== 3.3) {
  $ERROR('#3: 3.3 === 3.3');
}

//CHECK#4
if (4.4 !== 4.4) {
  $ERROR('#4: 4.4 === 4.4');
}

//CHECK#5
if (5.5 !== 5.5) {
  $ERROR('#5: 5.5 === 5.5');
}

//CHECK#6
if (6.6 !== 6.6) {
  $ERROR('#6: 6.6 === 6.6');
}

//CHECK#7
if (7.7 !== 7.7) {
  $ERROR('#7: 7.7 === 7.7');
}

//CHECK#8
if (8.8 !== 8.8) {
  $ERROR('#8: 8..8 === 8.8');
}

//CHECK#9
if (9.9 !== 9.9) {
  $ERROR('#9: 9.9 === 9.9');
}

