001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  You may obtain a copy of the License at
008     * 
009     *      http://www.apache.org/licenses/LICENSE-2.0
010     * 
011     * Unless required by applicable law or agreed to in writing, software
012     * distributed under the License is distributed on an "AS IS" BASIS,
013     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     * See the License for the specific language governing permissions and
015     * limitations under the License.
016     */
017    
018    package org.apache.commons.math;
019    
020    import java.util.Locale;
021    
022    import junit.framework.TestCase;
023    
024    /**
025     * @version $Revision: 758051 $ $Date: 2009-03-24 18:10:16 -0400 (Tue, 24 Mar 2009) $
026     */
027    public class FunctionEvaluationExceptionTest extends TestCase {
028        
029        public void testConstructor(){
030            FunctionEvaluationException ex = new FunctionEvaluationException(0.0);
031            assertNull(ex.getCause());
032            assertNotNull(ex.getMessage());
033            assertTrue(ex.getMessage().indexOf("0") > 0);
034            assertEquals(0.0, ex.getArgument()[0], 0);
035        }
036        
037        public void testConstructorArray(){
038            FunctionEvaluationException ex =
039                new FunctionEvaluationException(new double[] { 0, 1, 2 });
040            assertNull(ex.getCause());
041            assertNotNull(ex.getMessage());
042            assertTrue(ex.getMessage().indexOf("0") > 0);
043            assertEquals(0.0, ex.getArgument()[0], 0);
044            assertEquals(1.0, ex.getArgument()[1], 0);
045            assertEquals(2.0, ex.getArgument()[2], 0);
046        }
047        
048        public void testConstructorPatternArguments(){
049            String pattern = "evaluation failed for argument = {0}";
050            Object[] arguments = { Double.valueOf(0.0) };
051            FunctionEvaluationException ex = new FunctionEvaluationException(0.0, pattern, arguments);
052            assertNull(ex.getCause());
053            assertEquals(pattern, ex.getPattern());
054            assertEquals(arguments.length, ex.getArguments().length);
055            for (int i = 0; i < arguments.length; ++i) {
056                assertEquals(arguments[i], ex.getArguments()[i]);
057            }
058            assertFalse(pattern.equals(ex.getMessage()));
059            assertFalse(ex.getMessage().equals(ex.getMessage(Locale.FRENCH)));
060        }
061    
062        public void testConstructorArrayPatternArguments(){
063            String pattern = "evaluation failed for argument = {0}";
064            Object[] arguments = { Double.valueOf(0.0) };
065            FunctionEvaluationException ex =
066                new FunctionEvaluationException(new double[] { 0, 1, 2 }, pattern, arguments);
067            assertNull(ex.getCause());
068            assertEquals(pattern, ex.getPattern());
069            assertEquals(arguments.length, ex.getArguments().length);
070            for (int i = 0; i < arguments.length; ++i) {
071                assertEquals(arguments[i], ex.getArguments()[i]);
072            }
073            assertFalse(pattern.equals(ex.getMessage()));
074            assertFalse(ex.getMessage().equals(ex.getMessage(Locale.FRENCH)));
075            assertEquals(0.0, ex.getArgument()[0], 0);
076            assertEquals(1.0, ex.getArgument()[1], 0);
077            assertEquals(2.0, ex.getArgument()[2], 0);
078        }
079    
080        public void testConstructorPatternArgumentsCause(){
081            String pattern = "evaluation failed for argument = {0}";
082            Object[] arguments = { Double.valueOf(0.0) };
083            String inMsg = "inner message";
084            Exception cause = new Exception(inMsg);
085            FunctionEvaluationException ex = new FunctionEvaluationException(cause, 0.0, pattern, arguments);
086            assertEquals(cause, ex.getCause());
087            assertEquals(pattern, ex.getPattern());
088            assertEquals(arguments.length, ex.getArguments().length);
089            for (int i = 0; i < arguments.length; ++i) {
090                assertEquals(arguments[i], ex.getArguments()[i]);
091            }
092            assertFalse(pattern.equals(ex.getMessage()));
093            assertFalse(ex.getMessage().equals(ex.getMessage(Locale.FRENCH)));
094        }
095    
096        public void testConstructorArrayPatternArgumentsCause(){
097            String pattern = "evaluation failed for argument = {0}";
098            Object[] arguments = { Double.valueOf(0.0) };
099            String inMsg = "inner message";
100            Exception cause = new Exception(inMsg);
101            FunctionEvaluationException ex =
102                new FunctionEvaluationException(cause, new double[] { 0, 1, 2 }, pattern, arguments);
103            assertEquals(cause, ex.getCause());
104            assertEquals(pattern, ex.getPattern());
105            assertEquals(arguments.length, ex.getArguments().length);
106            for (int i = 0; i < arguments.length; ++i) {
107                assertEquals(arguments[i], ex.getArguments()[i]);
108            }
109            assertFalse(pattern.equals(ex.getMessage()));
110            assertFalse(ex.getMessage().equals(ex.getMessage(Locale.FRENCH)));
111            assertEquals(0.0, ex.getArgument()[0], 0);
112            assertEquals(1.0, ex.getArgument()[1], 0);
113            assertEquals(2.0, ex.getArgument()[2], 0);
114        }
115    
116        public void testConstructorArgumentCause(){
117            String inMsg = "inner message";
118            Exception cause = new Exception(inMsg);
119            FunctionEvaluationException ex = new FunctionEvaluationException(cause, 0.0);
120            assertEquals(cause, ex.getCause());
121            assertTrue(ex.getMessage().equals(ex.getMessage(Locale.FRENCH)));
122        }
123    
124        public void testConstructorArrayArgumentCause(){
125            String inMsg = "inner message";
126            Exception cause = new Exception(inMsg);
127            FunctionEvaluationException ex =
128                new FunctionEvaluationException(cause, new double[] { 0, 1, 2 });
129            assertEquals(cause, ex.getCause());
130            assertTrue(ex.getMessage().equals(ex.getMessage(Locale.FRENCH)));
131            assertEquals(0.0, ex.getArgument()[0], 0);
132            assertEquals(1.0, ex.getArgument()[1], 0);
133            assertEquals(2.0, ex.getArgument()[2], 0);
134        }
135    
136    }