vm/src/test/java/org/apidesign/vm4brwsr/Array.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 16 Oct 2012 11:55:56 +0200
changeset 104 1376481f15e7
parent 33 96e44a3f544d
child 106 346633cd13d6
permissions -rw-r--r--
Concatenation of strings works
     1 /*
     2 Java 4 Browser Bytecode Translator
     3 Copyright (C) 2012-2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
     4 
     5 This program is free software: you can redistribute it and/or modify
     6 it under the terms of the GNU General Public License as published by
     7 the Free Software Foundation, version 2 of the License.
     8 
     9 This program is distributed in the hope that it will be useful,
    10 but WITHOUT ANY WARRANTY; without even the implied warranty of
    11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12 GNU General Public License for more details.
    13 
    14 You should have received a copy of the GNU General Public License
    15 along with this program. Look for COPYING file in the top folder.
    16 If not, see http://opensource.org/licenses/GPL-2.0.
    17 */
    18 package org.apidesign.vm4brwsr;
    19 
    20 /**
    21  *
    22  * @author Jaroslav Tulach <jtulach@netbeans.org>
    23  */
    24 public class Array {
    25     byte[] bytes = { 1 };
    26     short[] shorts = { 2, 3 };
    27     int[] ints = { 4, 5, 6 };
    28     float[] floats = { 7, 8, 9, 10 };
    29     double[][] doubles = { {11}, {12}, {13}, {14}, {15} };
    30     char[] chars = { 'a', 'b' };
    31     
    32     private Array() {
    33     }
    34     
    35     byte bytes() {
    36         return bytes[0];
    37     }
    38     short shorts() {
    39         return shorts[1];
    40     }
    41     
    42     int[] ints() {
    43         return ints;
    44     }
    45     
    46     float floats() {
    47         return floats[3];
    48     }
    49     
    50     double doubles() {
    51         return doubles[4][0];
    52     }
    53     
    54     private static final Array[] ARR = { new Array(), new Array(), new Array() };
    55     
    56     private static Array[] arr() {
    57         return ARR;
    58     }
    59     private static <T> T[] filter(T[] in) {
    60         return in;
    61     }
    62     
    63     public static double sum() {
    64         double sum = 0.0;
    65         for (int i = 0; i < arr().length; i++) {
    66             sum += arr()[i].bytes();
    67             sum += arr()[i].shorts();
    68             sum += arr()[i].ints()[2];
    69             sum += arr()[i].floats();
    70             sum += filter(arr())[i].doubles();
    71         }
    72         return sum;
    73     }
    74     public static int simple() {
    75         int[] arr = { 0, 1, 2, 3, 4, 5 };
    76         
    77         int sum = 0;
    78         for (int i = 0; i < arr.length; i++) {
    79             sum += arr[i];
    80         }
    81         return sum;
    82     }
    83     
    84     static void arraycopy(char[] value, int srcBegin, char[] dst, int dstBegin, int count) {
    85         while (count-- > 0) {
    86             dst[dstBegin++] = value[srcBegin++];
    87         }
    88     }
    89 
    90     public static char copyArray() {
    91         char[] arr = { '0' };
    92         arraycopy(arr()[0].chars, 0, arr, 0, 1);
    93         return arr[0];
    94     }
    95 }