| // Copyright (c) 2017, the R8 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. |
| package regress_37875803; |
| |
| public class Regress { |
| |
| private static int digitSub(int codePoint) { |
| int result = -888; |
| if ('a' <= codePoint && codePoint <= 'z') { |
| result = 10 + (codePoint - 'a'); |
| } else if ('A' <= codePoint && codePoint <= 'Z') { |
| result = 10 + (codePoint - 'A'); |
| } |
| if (result < 0) { |
| throw new RuntimeException("codePoint = " + codePoint + " result = " + result); |
| } |
| return result; |
| } |
| |
| private static int digitSubLeft(int codePoint) { |
| int result = -888; |
| if ('a' <= codePoint && codePoint <= 'z') { |
| result = 10 + ('a' - codePoint); |
| } else if ('A' <= codePoint && codePoint <= 'Z') { |
| result = 10 + ('A' - codePoint); |
| } |
| if (result < 0) { |
| throw new RuntimeException("codePoint = " + codePoint + " result = " + result); |
| } |
| return result; |
| } |
| |
| private static int digitAdd(int codePoint) { |
| int result = -888; |
| if ('a' <= codePoint && codePoint <= 'z') { |
| result = 10 + (codePoint + 'a'); |
| } else if ('A' <= codePoint && codePoint <= 'Z') { |
| result = 10 + (codePoint + 'A'); |
| } |
| if (result < 0) { |
| throw new RuntimeException("codePoint = " + codePoint + " result = " + result); |
| } |
| return result; |
| } |
| |
| private static int digitOr(int codePoint) { |
| int result = -888; |
| if ('a' <= codePoint && codePoint <= 'z') { |
| result = 10 + (codePoint | 'a'); |
| } else if ('A' <= codePoint && codePoint <= 'Z') { |
| result = 10 + (codePoint | 'A'); |
| } |
| if (result < 0) { |
| throw new RuntimeException("codePoint = " + codePoint + " result = " + result); |
| } |
| return result; |
| } |
| |
| public static void main(String[] args) { |
| System.out.println(digitSub((int) 'a')); |
| System.out.println(digitSub((int) 'A')); |
| System.out.println(digitSubLeft((int) 'a')); |
| System.out.println(digitSubLeft((int) 'A')); |
| System.out.println(digitAdd((int) 'a')); |
| System.out.println(digitAdd((int) 'A')); |
| System.out.println(digitOr((int) 'a')); |
| System.out.println(digitOr((int) 'A')); |
| } |
| } |