|
Groovy example source code file (Groovy3238Bug.groovy)
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: |
Other websites by Alvin Alexander:
Life/living in Alaska (OneMansAlaska.com)
How I Sold My Business (HowISoldMyBusiness.com)
Copyright 1998-2011 Alvin Alexander, devdaily.com
All Rights Reserved.