psteitz     2004/07/17 12:41:05

  Added:       math/src/java/org/apache/commons/math
                        FunctionEvaluationException.java
               math/src/test/org/apache/commons/math
                        FunctionEvaluationExceptionTest.java
  Log:
  Added FunctionEvaluationException and test class.
  
  Revision  Changes    Path
  1.1                  
jakarta-commons/math/src/java/org/apache/commons/math/FunctionEvaluationException.java
  
  Index: FunctionEvaluationException.java
  ===================================================================
  /*
   * Copyright 2004 The Apache Software Foundation.
   *
   * Licensed 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.commons.math;
  
  /**
   * Exeption thrown when an error occurs evaluating a function.
   * <p>
   * Maintains an <code>argument</code> property holding the input value that
   * caused the function evaluation to fail.
   * 
   * @version $Revision: 1.1 $ $Date: 2004/07/17 19:41:05 $
   */
  public class FunctionEvaluationException extends MathException  {
      
      /** Serializable version identifier */
      static final long serialVersionUID = -317289374378977972L;
      
      /** Argument causing function evaluation failure */
      private double argument = Double.NaN;
      
      /**
       * Construct an exception indicating the argument value
       * that caused the function evaluation to fail.  Generates an exception
       * message of the form "Evaluation failed for argument = " + argument.
       * 
       * @param argument  the failing function argument 
       */
      public FunctionEvaluationException(double argument) {
          this(argument, "Evaluation failed for argument = " + argument);
      }
      
      /**
       * Construct an exception using the given argument and message
       * text.  The message text of the exception will start with 
       * <code>message</code> and be followed by 
       * " Evaluation failed for argument = " + argument.
       * 
       * @param argument  the failing function argument 
       * @param message  the exception message text
       */
      public FunctionEvaluationException(double argument, String message) {
          this(argument, message, null);
      }
  
      /**
       * Construct an exception with the given argument, message and root cause.
       * The message text of the exception will start with  <code>message</code>
       * and be followed by " Evaluation failed for argument = " + argument.
       * 
       * @param message descriptive error message.
       * @param cause root cause.
       */
      public FunctionEvaluationException(double argument, String message, 
              Throwable cause) {
          super(message + " Evaluation failed for argument=" + argument, cause);
          this.argument = argument;
      }
      
      /**
       * Returns the function argument that caused this exception.
       * 
       * @return  argument that caused function evaluation to fail
       */
      public double getArgument() {
          return this.argument;
      }
  }
  
  
  
  1.1                  
jakarta-commons/math/src/test/org/apache/commons/math/FunctionEvaluationExceptionTest.java
  
  Index: FunctionEvaluationExceptionTest.java
  ===================================================================
  /*
   * Copyright 2004 The Apache Software Foundation.
   * 
   * Licensed 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.commons.math;
  
  import junit.framework.TestCase;
  
  /**
   * @version $Revision: 1.1 $ $Date: 2004/07/17 19:41:05 $
   */
  public class FunctionEvaluationExceptionTest extends TestCase {
      
      public void testConstructor(){
          FunctionEvaluationException ex = new FunctionEvaluationException(0.0);
          assertNull(ex.getCause());
          assertNotNull(ex.getMessage());
          assertEquals(0.0, ex.getArgument(), 0);
      }
      
      public void testConstructorMessage(){
          String msg = "message";
          FunctionEvaluationException  ex = new FunctionEvaluationException(0.0, msg);
          assertNull(ex.getCause());
          assertTrue(ex.getMessage().startsWith(msg));
          assertTrue(ex.getMessage().indexOf("0") > 0);
          assertEquals(0.0, ex.getArgument(), 0);
      }
      
      public void testConstructorMessageCause(){
          String outMsg = "outer message";
          String inMsg = "inner message";
          Exception cause = new Exception(inMsg);
          FunctionEvaluationException ex = new FunctionEvaluationException(0, outMsg, 
cause);
          assertTrue(ex.getMessage().startsWith(outMsg));
          assertTrue(ex.getMessage().indexOf("0") > 0);
          assertEquals(cause, ex.getCause());
          assertEquals(0.0, ex.getArgument(), 0);
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to