blob: ca0aa69192bba3c7624398a908642dbc0744fe9b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package groovy
import groovy.test.GroovyTestCase
/**
* Test case for using the "as" keyword to convert between strings
* and numbers in both directions.
*/
class AsTest extends GroovyTestCase {
def subject
/**
* Test that "as String" works for various types.
*/
void testAsString() {
assert (48256846 as String) == "48256846"
assert (0.345358 as String) == "0.345358"
assert (12.5432D as String) == "12.5432"
assert (3568874G as String) == "3568874"
}
void testStringAsBigInteger() {
subject = "34587203957357" as BigInteger
assert subject.class == BigInteger
assert subject == 34587203957357
}
void testStringAsLong() {
subject = "32498687" as Long
assert subject.class == Long
assert subject == 32498687L
}
void testStringAsInt() {
subject = "32498687" as int
assert subject.class == Integer
assert subject == 32498687
}
void testStringAsShort() {
subject = "13279" as Short
assert subject.class == Short
assert subject == 13279
}
void testStringAsByte() {
subject = "12" as Byte
assert subject.class == Byte
assert subject == 12
}
void testStringAsBigDecimal() {
subject = "12.54356" as BigDecimal
assert subject.class == BigDecimal
assert subject == 12.54356
}
void testStringAsDouble() {
subject = "1.345" as double
assert subject.class == Double
assert subject == 1.345
}
void testStringAsFloat() {
subject = "1.345" as float
assert subject.class == Float
assert subject == 1.345F
}
void testFloatAsBigDecimal() {
subject = 0.1f as BigDecimal
assert subject.class == BigDecimal
assert subject == 0.1
}
void testDoubleAsBigDecimal() {
subject = 0.1d as BigDecimal
assert subject.class == BigDecimal
assert subject == 0.1
}
void testFloatAsDouble() {
subject = 0.1f as Double
assert subject.class == Double
assert subject == 0.1
}
void testGStringAsByte() {
subject = "${42}" as byte
assert subject.class == Byte // "as" wraps types
assert subject == 42
}
void testGStringAsShort() {
subject = "${42}" as short
assert subject.class == Short // "as" wraps types
assert subject == 42
}
void testGStringAsInt() {
subject = "${42}" as int
assert subject.class == Integer // "as" wraps types
assert subject == 42
}
void testGStringAsLong() {
subject = "${42}" as long
assert subject.class == Long // "as" wraps types
assert subject == 42
}
void testGStringAsFloat() {
subject = "${42.666}" as float
assert subject.class == Float // "as" wraps types
assert subject == 42.666f
}
void testGStringAsDouble() {
subject = "${42.666}" as double
assert subject.class == Double // "as" wraps types
assert subject == 42.666d
}
}