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

/*---
info: Correct interpretation of ENGLISH ALPHABET
es5id: 7.6_A4.1_T1
description: Check ENGLISH CAPITAL ALPHABET
---*/

var \u0041 = 1;
assert.sameValue(A, 1);

var \u0042 = 1;
assert.sameValue(B, 1);

var \u0043 = 1;
assert.sameValue(C, 1);

var \u0044 = 1;
assert.sameValue(D, 1);

var \u0045 = 1;
assert.sameValue(E, 1);

var \u0046 = 1;
assert.sameValue(F, 1);

var \u0047 = 1;
assert.sameValue(G, 1);

var \u0048 = 1;
assert.sameValue(H, 1);

var \u0049 = 1;
assert.sameValue(I, 1);

var \u004A = 1;
assert.sameValue(J, 1);

var \u004B = 1;
assert.sameValue(K, 1);

var \u004C = 1;
assert.sameValue(L, 1);

var \u004D = 1;
assert.sameValue(M, 1);

var \u004E = 1;
assert.sameValue(N, 1);

var \u004F = 1;
assert.sameValue(O, 1);

var \u0050 = 1;
assert.sameValue(P, 1);

var \u0051 = 1;
assert.sameValue(Q, 1);

var \u0052 = 1;
assert.sameValue(R, 1);

var \u0053 = 1;
assert.sameValue(S, 1);

var \u0054 = 1;
assert.sameValue(T, 1);

var \u0055 = 1;
assert.sameValue(U, 1);

var \u0056 = 1;
assert.sameValue(V, 1);

var \u0057 = 1;
assert.sameValue(W, 1);

var \u0058 = 1;
assert.sameValue(X, 1);

var \u0059 = 1;
assert.sameValue(Y, 1);

var \u005A = 1;
assert.sameValue(Z, 1);
