| /* |
| * Copyright (c) 2011 Google Inc. |
| * |
| * All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse |
| * Public License v1.0 which accompanies this distribution, and is available at |
| * |
| * http://www.eclipse.org/legal/epl-v10.html |
| */ |
| package com.google.eclipse.protobuf.conversion; |
| |
| import static java.lang.Double.NEGATIVE_INFINITY; |
| import static java.lang.Double.NaN; |
| import static java.lang.Double.POSITIVE_INFINITY; |
| import static java.util.Arrays.asList; |
| |
| import static org.hamcrest.core.IsEqual.equalTo; |
| import static org.junit.Assert.assertThat; |
| import static org.mockito.Mockito.mock; |
| |
| import static com.google.eclipse.protobuf.junit.core.UnitTestModule.unitTestModule; |
| import static com.google.eclipse.protobuf.junit.core.XtextRule.overrideRuntimeModuleWith; |
| |
| import java.util.Collection; |
| |
| import org.eclipse.xtext.nodemodel.INode; |
| import org.junit.Before; |
| import org.junit.Rule; |
| import org.junit.Test; |
| import org.junit.runner.RunWith; |
| import org.junit.runners.Parameterized; |
| import org.junit.runners.Parameterized.Parameters; |
| |
| import com.google.eclipse.protobuf.junit.core.XtextRule; |
| |
| /** |
| * Tests for <code>{@link DOUBLEValueConverter#toValue(String, INode)}</code>. |
| * |
| * @author alruiz@google.com (Alex Ruiz) |
| */ |
| @RunWith(Parameterized.class) |
| public class DOUBLEValueConverter_toValue_Test { |
| @Rule public XtextRule xtext = overrideRuntimeModuleWith(unitTestModule()); |
| |
| private final String input; |
| private final Double expected; |
| |
| @Parameters |
| public static Collection<Object[]> parameters() { |
| return asList(new Object[][] { |
| { "52e3", 52e3D }, |
| { "52E3", 52e3D }, |
| { "6e-3", 0.006D }, |
| { "6.8", 6.8D }, |
| { "-3.1", -3.1D }, |
| { ".3", 0.3D }, |
| { "nan", NaN }, |
| { "inf", POSITIVE_INFINITY }, |
| { "-inf", NEGATIVE_INFINITY } |
| }); |
| } |
| |
| public DOUBLEValueConverter_toValue_Test(String input, Double expected) { |
| this.input = input; |
| this.expected = expected; |
| } |
| |
| private DOUBLEValueConverter converter; |
| private INode node; |
| |
| @Before public void setUp() { |
| node = mock(INode.class); |
| converter = xtext.injector().getInstance(DOUBLEValueConverter.class); |
| } |
| |
| @Test public void should_parse_hexadecimal_number() { |
| Double value = converter.toValue(input, node); |
| assertThat(value, equalTo(expected)); |
| } |
| } |