You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2022/01/22 13:13:57 UTC

[commons-numbers] 02/05: Move DataReader to package level class

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit 5a9f808ec97470a044212b445e62b6cb9fd1c02e
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Tue Jan 4 23:06:33 2022 +0000

    Move DataReader to package level class
---
 .../commons/numbers/gamma/BoostGammaTest.java      |  92 -----------------
 .../apache/commons/numbers/gamma/DataReader.java   | 113 +++++++++++++++++++++
 2 files changed, 113 insertions(+), 92 deletions(-)

diff --git a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostGammaTest.java b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostGammaTest.java
index fd94d8a..8cea38e 100644
--- a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostGammaTest.java
+++ b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/BoostGammaTest.java
@@ -16,15 +16,11 @@
  */
 package org.apache.commons.numbers.gamma;
 
-import java.io.BufferedReader;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.math.BigDecimal;
 import java.util.Arrays;
 import java.util.function.DoubleBinaryOperator;
 import java.util.function.DoubleUnaryOperator;
-import java.util.regex.Pattern;
 import org.apache.commons.numbers.gamma.BoostGamma.Lanczos;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.MethodOrderer;
@@ -1989,94 +1985,6 @@ class BoostGammaTest {
     }
 
     /**
-     * Class to read data fields from a test resource file.
-     */
-    private static class DataReader implements AutoCloseable {
-        /** Comment character. */
-        private static final char COMMENT = '#';
-        /** Pattern to split data fields. */
-        private static final Pattern FIELD_PATTERN = Pattern.compile("[, ]+");
-
-        /** Input to read. */
-        private final BufferedReader in;
-
-        /** The current set of fields. */
-        private String[] tokens;
-
-        /**
-         * @param filename Resource filename to read
-         */
-        DataReader(String filename) {
-            final InputStream resourceAsStream = this.getClass().getResourceAsStream(filename);
-            Assertions.assertNotNull(resourceAsStream, () -> "Could not find resource " + filename);
-            in = new BufferedReader(new InputStreamReader(resourceAsStream));
-        }
-
-        /**
-         * Read the next line of data fields.
-         *
-         * @return true if data is available
-         * @throws IOException Signals that an I/O exception has occurred.
-         */
-        boolean next() throws IOException {
-            tokens = null;
-            for (String line = in.readLine(); line != null; line = in.readLine()) {
-                if (line.isEmpty() || line.charAt(0) == COMMENT || line.trim().isEmpty()) {
-                    continue;
-                }
-                tokens = FIELD_PATTERN.split(line);
-                return true;
-            }
-            return false;
-        }
-
-        /**
-         * Gets the double from the field.
-         *
-         * @param i Field index
-         * @return the number
-         * @see #next()
-         * @throws NumberFormatException if the field cannot be parsed as a double
-         * @throws NullPointerException if no field data is available
-         * @throws IndexOutOfBoundsException if the field index is invalid
-         */
-        double getDouble(int i) {
-            return Double.parseDouble(tokens[i]);
-        }
-
-        /**
-         * Gets the BigDecimal from the field.
-         *
-         * @param i Field index
-         * @return the number
-         * @see #next()
-         * @throws NumberFormatException if the field cannot be parsed as a BigDecimal
-         * @throws NullPointerException if no field data is available
-         * @throws IndexOutOfBoundsException if the field index is invalid
-         */
-        BigDecimal getBigDecimal(int i) {
-            return new BigDecimal(tokens[i]);
-        }
-
-        /**
-         * Gets the current fields. This is returned as a reference.
-         *
-         * <p>This is null if no fields are available for reading.
-         *
-         * @return the fields
-         * @see #next()
-         */
-        String[] getFields() {
-            return tokens;
-        }
-
-        @Override
-        public void close() throws IOException {
-            in.close();
-        }
-    }
-
-    /**
      * Assert the Root Mean Square (RMS) error of the function is below the allowed
      * maximum for the specified TestError.
      *
diff --git a/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/DataReader.java b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/DataReader.java
new file mode 100644
index 0000000..024d5c2
--- /dev/null
+++ b/commons-numbers-gamma/src/test/java/org/apache/commons/numbers/gamma/DataReader.java
@@ -0,0 +1,113 @@
+/*
+ * 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.commons.numbers.gamma;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.math.BigDecimal;
+import java.util.regex.Pattern;
+import org.junit.jupiter.api.Assertions;
+
+/**
+ * Class to read data fields from a test resource file.
+ */
+class DataReader implements AutoCloseable {
+    /** Comment character. */
+    private static final char COMMENT = '#';
+    /** Pattern to split data fields. */
+    private static final Pattern FIELD_PATTERN = Pattern.compile("[, ]+");
+
+    /** Input to read. */
+    private final BufferedReader in;
+
+    /** The current set of fields. */
+    private String[] tokens;
+
+    /**
+     * @param filename Resource filename to read
+     */
+    DataReader(String filename) {
+        final InputStream resourceAsStream = this.getClass().getResourceAsStream(filename);
+        Assertions.assertNotNull(resourceAsStream, () -> "Could not find resource " + filename);
+        in = new BufferedReader(new InputStreamReader(resourceAsStream));
+    }
+
+    /**
+     * Read the next line of data fields.
+     *
+     * @return true if data is available
+     * @throws IOException Signals that an I/O exception has occurred.
+     */
+    boolean next() throws IOException {
+        tokens = null;
+        for (String line = in.readLine(); line != null; line = in.readLine()) {
+            if (line.isEmpty() || line.charAt(0) == COMMENT || line.trim().isEmpty()) {
+                continue;
+            }
+            tokens = FIELD_PATTERN.split(line);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Gets the double from the field.
+     *
+     * @param i Field index
+     * @return the number
+     * @see #next()
+     * @throws NumberFormatException if the field cannot be parsed as a double
+     * @throws NullPointerException if no field data is available
+     * @throws IndexOutOfBoundsException if the field index is invalid
+     */
+    double getDouble(int i) {
+        return Double.parseDouble(tokens[i]);
+    }
+
+    /**
+     * Gets the BigDecimal from the field.
+     *
+     * @param i Field index
+     * @return the number
+     * @see #next()
+     * @throws NumberFormatException if the field cannot be parsed as a BigDecimal
+     * @throws NullPointerException if no field data is available
+     * @throws IndexOutOfBoundsException if the field index is invalid
+     */
+    BigDecimal getBigDecimal(int i) {
+        return new BigDecimal(tokens[i]);
+    }
+
+    /**
+     * Gets the current fields. This is returned as a reference.
+     *
+     * <p>This is null if no fields are available for reading.
+     *
+     * @return the fields
+     * @see #next()
+     */
+    String[] getFields() {
+        return tokens;
+    }
+
+    @Override
+    public void close() throws IOException {
+        in.close();
+    }
+}