| /* |
| * 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 org.apache.thrift; |
| |
| import java.util.List; |
| import junit.framework.TestCase; |
| import static org.junit.Assert.*; |
| import org.junit.Test; |
| import thrift.test.DoubleConstantsTestConstants; |
| |
| public class TestRenderedDoubleConstants extends TestCase { |
| private static final double EPSILON = 0.0000001; |
| private static final String ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST = |
| "failed to verify a double constant generated by Thrift (expected = %f, got = %f)"; |
| private static final String ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_LIST_TEST = |
| "failed to verify a list item by Thrift (expected = %f, got = %f)"; |
| private static final String ASSERTION_MESSAGE_FOR_TYPE_CHECKS = |
| "the rendered variable with name %s is not of double type"; |
| |
| // to make sure lists containing doubles are generated correctly |
| public void testRenderedDoubleList() throws Exception { |
| final double[] EXPECTED_LIST = |
| {1d,-100d,100d,9223372036854775807d,-9223372036854775807d,3.14159265359,1000000.1,-1000000.1,1.7e+308, |
| -1.7e+308,9223372036854775816.43,-9223372036854775816.43}; |
| assertEquals(EXPECTED_LIST.length, DoubleConstantsTestConstants.DOUBLE_LIST_TEST.size()); |
| for (int i = 0; i < EXPECTED_LIST.length; ++i) { |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_LIST_TEST, |
| EXPECTED_LIST[i], |
| DoubleConstantsTestConstants.DOUBLE_LIST_TEST.get(i)), |
| EXPECTED_LIST[i], DoubleConstantsTestConstants.DOUBLE_LIST_TEST.get(i), EPSILON); |
| } |
| } |
| |
| // to make sure the variables inside Thrift files are generated correctly |
| public void testRenderedDoubleConstants() throws Exception { |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_INT_CONSTANT = 1.0; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_INT_CONSTANT = -100.0; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_LARGEST_INT_CONSTANT = 9223372036854775807.0; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_SMALLEST_INT_CONSTANT = -9223372036854775807.0; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_DOUBLE_WITH_MANY_DECIMALS = 3.14159265359; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_FRACTIONAL_DOUBLE = 1000000.1; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_FRACTIONAL_DOUBLE = -1000000.1; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_LARGE_DOUBLE = 1.7e+308; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_LARGE_FRACTIONAL_DOUBLE = 9223372036854775816.43; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_SMALL_DOUBLE = -1.7e+308; |
| final double EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_BUT_LARGE_FRACTIONAL_DOUBLE = -9223372036854775816.43; |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_INT_CONSTANT, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_INT_CONSTANT_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_INT_CONSTANT, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_INT_CONSTANT_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_INT_CONSTANT, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_INT_CONSTANT_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_INT_CONSTANT, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_INT_CONSTANT_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_LARGEST_INT_CONSTANT, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGEST_INT_CONSTANT_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_LARGEST_INT_CONSTANT, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGEST_INT_CONSTANT_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_SMALLEST_INT_CONSTANT, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_SMALLEST_INT_CONSTANT_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_SMALLEST_INT_CONSTANT, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_SMALLEST_INT_CONSTANT_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_DOUBLE_WITH_MANY_DECIMALS, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_DOUBLE_WITH_MANY_DECIMALS_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_DOUBLE_WITH_MANY_DECIMALS, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_DOUBLE_WITH_MANY_DECIMALS_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_FRACTIONAL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_FRACTIONAL_DOUBLE_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_FRACTIONAL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_FRACTIONAL_DOUBLE_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_FRACTIONAL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_FRACTIONAL_DOUBLE_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_FRACTIONAL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_FRACTIONAL_DOUBLE_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_LARGE_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGE_DOUBLE_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_LARGE_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGE_DOUBLE_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_LARGE_FRACTIONAL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGE_FRACTIONAL_DOUBLE_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_LARGE_FRACTIONAL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGE_FRACTIONAL_DOUBLE_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_SMALL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_SMALL_DOUBLE_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_SMALL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_SMALL_DOUBLE_TEST, EPSILON); |
| assertEquals( |
| String.format( |
| ASSERTION_MESSAGE_FOR_RENDERED_DOUBLE_CONSTANTS_TEST, |
| EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_BUT_LARGE_FRACTIONAL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_BUT_LARGE_FRACTIONAL_DOUBLE_TEST), |
| EXPECTED_DOUBLE_ASSIGNED_TO_NEGATIVE_BUT_LARGE_FRACTIONAL_DOUBLE, |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_BUT_LARGE_FRACTIONAL_DOUBLE_TEST, EPSILON); |
| assertTrue( |
| String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_INT_CONSTANT_TEST"), |
| Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_INT_CONSTANT_TEST)); |
| assertTrue( |
| String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_NEGATIVE_INT_CONSTANT_TEST"), |
| Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_INT_CONSTANT_TEST)); |
| assertTrue( |
| String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_LARGEST_INT_CONSTANT_TEST"), |
| Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGEST_INT_CONSTANT_TEST)); |
| assertTrue( |
| String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_SMALLEST_INT_CONSTANT_TEST"), |
| Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_SMALLEST_INT_CONSTANT_TEST)); |
| assertTrue( |
| String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_DOUBLE_WITH_MANY_DECIMALS_TEST"), |
| Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_DOUBLE_WITH_MANY_DECIMALS_TEST)); |
| assertTrue( |
| String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_FRACTIONAL_DOUBLE_TEST"), |
| Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_FRACTIONAL_DOUBLE_TEST)); |
| assertTrue( |
| String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_NEGATIVE_FRACTIONAL_DOUBLE_TEST"), |
| Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_FRACTIONAL_DOUBLE_TEST)); |
| //assertTrue( |
| // String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_LARGE_DOUBLE_TEST"), |
| // Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGE_DOUBLE_TEST)); |
| assertTrue( |
| String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_LARGE_FRACTIONAL_DOUBLE_TEST"), |
| Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_LARGE_FRACTIONAL_DOUBLE_TEST)); |
| //assertTrue( |
| // String.format(ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_SMALL_DOUBLE_TEST"), |
| // Double.class.isInstance(DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_SMALL_DOUBLE_TEST)); |
| assertTrue( |
| String.format( |
| ASSERTION_MESSAGE_FOR_TYPE_CHECKS, "DOUBLE_ASSIGNED_TO_NEGATIVE_BUT_LARGE_FRACTIONAL_DOUBLE_TEST"), |
| Double.class.isInstance( |
| DoubleConstantsTestConstants.DOUBLE_ASSIGNED_TO_NEGATIVE_BUT_LARGE_FRACTIONAL_DOUBLE_TEST)); |
| } |
| } |