emul/compact/src/test/java/org/apidesign/bck2brwsr/compact/tck/JFXIssuesTest.java
author Jaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 26 Feb 2013 14:55:55 +0100
changeset 771 4252bfc396fc
parent 755 5652acd48509
permissions -rw-r--r--
Proper implementation of round and toInt32 conversions
     1 /**
     2  * Back 2 Browser Bytecode Translator
     3  * Copyright (C) 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.bck2brwsr.compact.tck;
    19 
    20 import org.apidesign.bck2brwsr.vmtest.Compare;
    21 import org.apidesign.bck2brwsr.vmtest.VMTest;
    22 import org.testng.annotations.Factory;
    23 
    24 
    25 public class JFXIssuesTest {
    26     private abstract class Application {
    27         public abstract int getID();
    28     }
    29     
    30     private class MyApplication extends Application {
    31 
    32         @Override
    33         public int getID() {
    34             return 1;
    35         }
    36         
    37     } 
    38     
    39     @Compare public boolean isClassAssignable() {
    40         return Application.class.isAssignableFrom(MyApplication.class);
    41     }
    42 
    43     @Compare public boolean isNaN() {
    44         return Double.isNaN(Double.NaN);
    45     }
    46 
    47     @Compare public boolean isInfinite() {
    48         return Float.isInfinite(Float.NEGATIVE_INFINITY);
    49     }
    50 
    51     @Compare public boolean areTimesEqual() {
    52         long l1 = System.currentTimeMillis();
    53         long l2 = l1 + 0;
    54 
    55         return l1 == l2;
    56     }
    57     
    58     @Compare public boolean roundOnDouble() {
    59         long l1 = Math.round(System.currentTimeMillis() / 1.1);
    60         long l2 = l1 + 0;
    61         
    62         return l1 == l2;
    63     }
    64 
    65     private static long val = 1238078409318L;
    66     
    67     @Compare public int valueConvertedToString() {
    68         return (int) val++;
    69     }
    70     
    71     @Compare public boolean roundOnFloat() {
    72         final float f = System.currentTimeMillis() / 1.1f;
    73         int l1 = Math.round(f);
    74         int l2 = l1 + 0;
    75         
    76         assert l1 == l2 : "Round " + l1 + " == " + l2;
    77         
    78         return l1 == l2;
    79     }
    80     
    81     @Factory public static Object[] create() {
    82         return VMTest.create(JFXIssuesTest.class);
    83     }
    84 }