boolean_arithmetic.js revision 850:c61d579dd5a8
1/* 2 * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. 8 * 9 * This code is distributed in the hope that it will be useful, but WITHOUT 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 12 * version 2 for more details (a copy is included in the LICENSE file that 13 * accompanied this code). 14 * 15 * You should have received a copy of the GNU General Public License version 16 * 2 along with this work; if not, write to the Free Software Foundation, 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 20 * or visit www.oracle.com if you need additional information or have any 21 * questions. 22 */ 23 24/** 25 * test arithmetic operations on boolean variables 26 * 27 * @test 28 * @run 29 */ 30 31function printOp(text, value) { 32 print(text + value); 33} 34 35(function () { 36var t = true; 37var f = false; 38 39print("+") 40printOp("f, f: ", (f + f)) 41printOp("f, t: ", (f + t)) 42printOp("t, f: ", (t + f)) 43printOp("t, t: ", (t + t)) 44 45print("-") 46printOp("f, f: ", (f - f)) 47printOp("f, t: ", (f - t)) 48printOp("t, f: ", (t - f)) 49printOp("t, t: ", (t - t)) 50 51print("*") 52printOp("f, f: ", (f * f)) 53printOp("f, t: ", (f * t)) 54printOp("t, f: ", (t * f)) 55printOp("t, t: ", (t * t)) 56 57print("/") 58printOp("f, f: ", (f / f)) 59printOp("f, t: ", (f / t)) 60printOp("t, f: ", (t / f)) 61printOp("t, t: ", (t / t)) 62 63print("<<") 64printOp("f, f: ", (f << f)) 65printOp("f, t: ", (f << t)) 66printOp("t, f: ", (t << f)) 67printOp("t, t: ", (t << t)) 68 69print(">>") 70printOp("f, f: ", (f >> f)) 71printOp("f, t: ", (f >> t)) 72printOp("t, f: ", (t >> f)) 73printOp("t, t: ", (t >> t)) 74 75print(">>>") 76printOp("f, f: ", (f >>> f)) 77printOp("f, t: ", (f >>> t)) 78printOp("t, f: ", (t >>> f)) 79printOp("t, t: ", (t >>> t)) 80 81print("|") 82printOp("f, f: ", (f | f)) 83printOp("f, t: ", (f | t)) 84printOp("t, f: ", (t | f)) 85printOp("t, t: ", (t | t)) 86 87print("&") 88printOp("f, f: ", (f & f)) 89printOp("f, t: ", (f & t)) 90printOp("t, f: ", (t & f)) 91printOp("t, t: ", (t & t)) 92 93print("^") 94printOp("f, f: ", (f ^ f)) 95printOp("f, t: ", (f ^ t)) 96printOp("t, f: ", (t ^ f)) 97printOp("t, t: ", (t ^ t)) 98 99print("~") 100printOp("f: ", (~f)) 101printOp("t: ", (~t)) 102 103print("+") 104printOp("f: ", (+f)) 105printOp("t: ", (+t)) 106 107print("-") 108printOp("f: ", (-f)) 109printOp("t: ", (-t)) 110 111printOp("1/-f: ", (1/-f)) 112 113})(); 114