// Copyright (c) 2011, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

/// @assertion Evaluation of a conditional expression c of the form e1 ? e2 : e3
/// proceeds as follows:
/// First, e1 is evaluated to an object o1. Then, o1 is subjected to boolean
/// conversion producing an object r. If r is true, then the value of c is the
/// result of evaluating the expression e2. Otherwise the value of c is the
/// result of evaluating the expression e3.
/// @description Checks that only one of e2 and e3 is evaluated.
/// @author msyabro


import '../../../Utils/expect.dart';

main() {
  1 > 2 ? Expect.fail("Wrong expressions were evaluated") : true;
  1 < 2 ? true : Expect.fail("Wrong expressions were evaluated");
}
