home | career | drupal | java | mac | mysql | perl | scala | uml | unix

Groovy example source code file (Groovy3238Bug.groovy)

This example Groovy source code file (Groovy3238Bug.groovy) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Groovy tags/keywords

bigdecimal, bigdecimal, biginteger, double, double, groovy3238bug, groovytestcase, number, number, object, object

The Groovy Groovy3238Bug.groovy source code

package groovy.bugs

class Groovy3238Bug extends GroovyTestCase {
    def void testRelativeExactnessToMatchForBigIntegerParam() {
        def obj = new Groovy3238Bug()
        def bi = new BigInteger("1")
        
        Groovy3238Bug.metaClass.m = {Double val -> "Double"}; obj.metaClass = null
        assert obj.m(bi) == "Double"
        Groovy3238Bug.metaClass.m = {double val -> "double"}; obj.metaClass = null
        assert obj.m(bi) == "double" //double should be chosen over Double
        Groovy3238Bug.metaClass.m = {BigDecimal val -> "BigDecimal"}; obj.metaClass = null
        assert obj.m(bi) == "BigDecimal" //BigDecimal should be chosen over Double, double
        Groovy3238Bug.metaClass.m = {Object val -> "Object"}; obj.metaClass = null
        assert obj.m(bi) == "Object" //Object should be chosen over Double, double, BigDecimal
        Groovy3238Bug.metaClass.m = {Number val -> "Number"}; obj.metaClass = null
        assert obj.m(bi) == "Number" //Number should be chosen over Double, double, BigDecimal, Object
        Groovy3238Bug.metaClass.m = {BigInteger val -> "BigInteger"}; obj.metaClass = null
        assert obj.m(bi) == "BigInteger" //BigInteger should be chosen over Double, double, BigDecimal, Object, Number
    }
}

Other Groovy examples (source code examples)

Here is a short list of links related to this Groovy Groovy3238Bug.groovy source code file:

new blog posts

 

Copyright 1998-2013 Alvin Alexander, alvinalexander.com
All Rights Reserved.