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

/*---
info: "CharacterEscapeSequnce :: NonEscapeSequence"
es5id: 7.8.4_A4.2_T6
description: "NonEscapeSequence :: RUSSIAN CAPITAL ALPHABET"
---*/

//CHECK#А-Я

if ("А" !== "\А") {
  throw new Test262Error('#А');
}

if ("Б" !== "\Б") {
  throw new Test262Error('#Б');
}

if ("В" !== "\В") {
  throw new Test262Error('#В');
}

if ("Г" !== "\Г") {
  throw new Test262Error('#Г');
}

if ("Д" !== "\Д") {
  throw new Test262Error('#Д');
}

if ("Е" !== "\Е") {
  throw new Test262Error('#Е');
}

if ("Ж" !== "\Ж") {
  throw new Test262Error('#Ж');
}

if ("З" !== "\З") {
  throw new Test262Error('#З');
}

if ("И" !== "\И") {
  throw new Test262Error('#И');
}

if ("Й" !== "\Й") {
  throw new Test262Error('#Й');
}

if ("К" !== "\К") {
  throw new Test262Error('#К');
}

if ("Л" !== "\Л") {
  throw new Test262Error('#Л');
}

if ("М" !== "\М") {
  throw new Test262Error('#М');
}

if ("Н" !== "\Н") {
  throw new Test262Error('#Н');
}

if ("О" !== "\О") {
  throw new Test262Error('#О');
}

if ("П" !== "\П") {
  throw new Test262Error('#П');
}

if ("Р" !== "\Р") {
  throw new Test262Error('#Р');
}

if ("С" !== "\С") {
  throw new Test262Error('#С');
}

if ("Т" !== "\Т") {
  throw new Test262Error('#Т');
}

if ("У" !== "\У") {
  throw new Test262Error('#У');
}

if ("Ф" !== "\Ф") {
  throw new Test262Error('#Ф');
}

if ("Х" !== "\Х") {
  throw new Test262Error('#Х');
}

if ("Ц" !== "\Ц") {
  throw new Test262Error('#Ц');
}

if ("Ч" !== "\Ч") {
  throw new Test262Error('#Ч');
}

if ("Ш" !== "\Ш") {
  throw new Test262Error('#Ш');
}

if ("Щ" !== "\Щ") {
  throw new Test262Error('#Щ');
}

if ("Ъ" !== "\Ъ") {
  throw new Test262Error('#Ъ');
}

if ("Ы" !== "\Ы") {
  throw new Test262Error('#Ы');
}

if ("Ь" !== "\Ь") {
  throw new Test262Error('#Ь');
}

if ("Э" !== "\Э") {
  throw new Test262Error('#Э');
}

if ("Ю" !== "\Ю") {
  throw new Test262Error('#Ю');
}

if ("Я" !== "\Я") {
  throw new Test262Error('#Я');
}

if ("Ё" !== "\Ё") {
  throw new Test262Error('#Ё');
}
