/*
 *    GeoTools - OpenSource mapping toolkit
 *    http://geotools.org
 *    (C) 2002-2006, GeoTools Project Managment Committee (PMC)
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
package org.geotools.xs.bindings;

import javax.xml.namespace.QName;

import org.geotools.xml.ElementInstance;
import org.geotools.xs.TestSchema;


public class XSDoubleStrategyTest extends TestSchema {
    /**
     * For example, -1E4, 1267.43233E12, 12.78e-2, 12 , -0, 0 and INF are all legal literals for double.
     *
     */

    /*
     * Test method for 'org.geotools.xml.strategies.xs.XSDoubleStrategy.parse(Element, Node[], Object)'
     */
    public void testParse() throws Exception {
        validateValues("-1E4", new Double(-1E4));
        validateValues("1267.43233E12", new Double(1267.43233E12));
        validateValues("12.78e-2", new Double(12.78e-2));
        validateValues("12", new Double(12));
        validateValues("-0", new Double("-0"));
        validateValues("0", new Double(0));

        ElementInstance element = element("INF", XS.DOUBLE);
        assertEquals(new Double(Double.POSITIVE_INFINITY),
            strategy.parse(element, "INF"));
    }

    public void testIntegerParse() throws Exception {
        ElementInstance element = element("12345", XS.INTEGER);
        assertEquals(new Double(12345.0), strategy.parse(element, "12345"));
    }

    protected QName getQName() {
        return XS.DOUBLE;
    }
}
