Repository: jtablesaw/tablesaw
Pull request #476 (2019-03-05 03:12:05)

Upgrade to junit 5 (junit jupiter)
Thanks for contributing.

- [X] Tick to sign-off your agreement to the [Developer Certificate of Origin (DCO) 1.1](https://developercertificate.org)

## Description

Upgraded to JUnit 5 (JUnit Jupiter)

## Testing

Ran the existing tests


lwhite1: This is excellent. Junit 5 is such a pleasure compared to 4.  
I can see that they're residual rather than new, but would you consider removing the unused imports Codacy is flagging? 
benmccann: I removed all the star imports, so Codacy is happy now

Patch:
diff --git a/aggregate/pom.xml b/aggregate/pom.xml
index f103b92b..75ea63d9 100644
--- a/aggregate/pom.xml
+++ b/aggregate/pom.xml
@@ -22,7 +22,6 @@
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-surefire-plugin</artifactId>
-        <version>2.22.1</version>
         <configuration>
           <!-- Jacoco prepare-agent builds some command-line params without -->
           <!-- which jacoco will not instrument. Hence it is important to add -->
diff --git a/core/pom.xml b/core/pom.xml
index e6a82b75..caa03ea7 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -135,8 +135,13 @@
             <optional>true</optional>
         </dependency>
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-params</artifactId>
             <scope>test</scope>
         </dependency>
         <dependency>
diff --git a/core/src/main/java/tech/tablesaw/api/NumericColumn.java b/core/src/main/java/tech/tablesaw/api/NumericColumn.java
index 4e990b61..6c796774 100644
--- a/core/src/main/java/tech/tablesaw/api/NumericColumn.java
+++ b/core/src/main/java/tech/tablesaw/api/NumericColumn.java
@@ -1,11 +1,40 @@
 package tech.tablesaw.api;
 
-import it.unimi.dsi.fastutil.doubles.DoubleComparator;
-import it.unimi.dsi.fastutil.doubles.DoubleRBTreeSet;
+import static tech.tablesaw.aggregate.AggregateFunctions.geometricMean;
+import static tech.tablesaw.aggregate.AggregateFunctions.kurtosis;
+import static tech.tablesaw.aggregate.AggregateFunctions.max;
+import static tech.tablesaw.aggregate.AggregateFunctions.mean;
+import static tech.tablesaw.aggregate.AggregateFunctions.median;
+import static tech.tablesaw.aggregate.AggregateFunctions.min;
+import static tech.tablesaw.aggregate.AggregateFunctions.populationVariance;
+import static tech.tablesaw.aggregate.AggregateFunctions.product;
+import static tech.tablesaw.aggregate.AggregateFunctions.quadraticMean;
+import static tech.tablesaw.aggregate.AggregateFunctions.quartile1;
+import static tech.tablesaw.aggregate.AggregateFunctions.quartile3;
+import static tech.tablesaw.aggregate.AggregateFunctions.range;
+import static tech.tablesaw.aggregate.AggregateFunctions.skewness;
+import static tech.tablesaw.aggregate.AggregateFunctions.stdDev;
+import static tech.tablesaw.aggregate.AggregateFunctions.sum;
+import static tech.tablesaw.aggregate.AggregateFunctions.sumOfLogs;
+import static tech.tablesaw.aggregate.AggregateFunctions.sumOfSquares;
+import static tech.tablesaw.aggregate.AggregateFunctions.variance;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isMissing;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isNotMissing;
+
+import java.util.Arrays;
+import java.util.Optional;
+import java.util.function.BiPredicate;
+import java.util.function.DoubleBinaryOperator;
+import java.util.function.DoubleFunction;
+import java.util.function.DoublePredicate;
+
 import org.apache.commons.math3.exception.NotANumberException;
 import org.apache.commons.math3.stat.correlation.KendallsCorrelation;
 import org.apache.commons.math3.stat.correlation.PearsonsCorrelation;
 import org.apache.commons.math3.stat.correlation.SpearmansCorrelation;
+
+import it.unimi.dsi.fastutil.doubles.DoubleComparator;
+import it.unimi.dsi.fastutil.doubles.DoubleRBTreeSet;
 import tech.tablesaw.aggregate.AggregateFunctions;
 import tech.tablesaw.aggregate.NumericAggregateFunction;
 import tech.tablesaw.columns.Column;
@@ -18,16 +47,6 @@ import tech.tablesaw.filtering.predicates.DoubleRangePredicate;
 import tech.tablesaw.selection.BitmapBackedSelection;
 import tech.tablesaw.selection.Selection;
 
-import java.util.Arrays;
-import java.util.Optional;
-import java.util.function.BiPredicate;
-import java.util.function.DoubleBinaryOperator;
-import java.util.function.DoubleFunction;
-import java.util.function.DoublePredicate;
-
-import static tech.tablesaw.aggregate.AggregateFunctions.*;
-import static tech.tablesaw.columns.numbers.NumberPredicates.*;
-
 public interface NumericColumn<T> extends Column<T>, NumberMapFunctions, NumberFilters {
 
     @Override
diff --git a/core/src/main/java/tech/tablesaw/api/TimeColumn.java b/core/src/main/java/tech/tablesaw/api/TimeColumn.java
index 2ec76e05..5fc26212 100644
--- a/core/src/main/java/tech/tablesaw/api/TimeColumn.java
+++ b/core/src/main/java/tech/tablesaw/api/TimeColumn.java
@@ -14,7 +14,24 @@
 
 package tech.tablesaw.api;
 
+import static tech.tablesaw.columns.DateAndTimePredicates.isMissing;
+import static tech.tablesaw.columns.DateAndTimePredicates.isNotMissing;
+
+import java.nio.ByteBuffer;
+import java.time.LocalTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Iterator;
+import java.util.List;
+import java.util.function.Consumer;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.function.Supplier;
+
 import com.google.common.base.Preconditions;
+
 import it.unimi.dsi.fastutil.ints.IntArrayList;
 import it.unimi.dsi.fastutil.ints.IntArrays;
 import it.unimi.dsi.fastutil.ints.IntComparator;
@@ -22,8 +39,8 @@ import it.unimi.dsi.fastutil.ints.IntIterator;
 import it.unimi.dsi.fastutil.ints.IntOpenHashSet;
 import it.unimi.dsi.fastutil.ints.IntSet;
 import tech.tablesaw.columns.AbstractColumn;
-import tech.tablesaw.columns.Column;
 import tech.tablesaw.columns.AbstractColumnParser;
+import tech.tablesaw.columns.Column;
 import tech.tablesaw.columns.times.PackedLocalTime;
 import tech.tablesaw.columns.times.TimeColumnFormatter;
 import tech.tablesaw.columns.times.TimeColumnType;
@@ -33,21 +50,6 @@ import tech.tablesaw.columns.times.TimeMapFunctions;
 import tech.tablesaw.selection.Selection;
 import tech.tablesaw.sorting.comparators.DescendingIntComparator;
 
-import java.nio.ByteBuffer;
-import java.time.LocalTime;
-import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Comparator;
-import java.util.Iterator;
-import java.util.List;
-import java.util.function.Consumer;
-import java.util.function.Function;
-import java.util.function.Predicate;
-import java.util.function.Supplier;
-
-import static tech.tablesaw.columns.DateAndTimePredicates.*;
-
 /**
  * A column in a base table that contains float values
  */
diff --git a/core/src/main/java/tech/tablesaw/columns/dates/DateFilters.java b/core/src/main/java/tech/tablesaw/columns/dates/DateFilters.java
index 5fe0a450..493b7a65 100644
--- a/core/src/main/java/tech/tablesaw/columns/dates/DateFilters.java
+++ b/core/src/main/java/tech/tablesaw/columns/dates/DateFilters.java
@@ -1,5 +1,15 @@
 package tech.tablesaw.columns.dates;
 
+import static tech.tablesaw.columns.DateAndTimePredicates.isEqualTo;
+import static tech.tablesaw.columns.DateAndTimePredicates.isGreaterThanOrEqualTo;
+import static tech.tablesaw.columns.DateAndTimePredicates.isMissing;
+import static tech.tablesaw.columns.DateAndTimePredicates.isNotMissing;
+
+import java.time.LocalDate;
+import java.util.function.BiPredicate;
+import java.util.function.IntPredicate;
+import java.util.function.Predicate;
+
 import it.unimi.dsi.fastutil.ints.IntArrayList;
 import it.unimi.dsi.fastutil.ints.IntIterator;
 import tech.tablesaw.api.DateColumn;
@@ -8,13 +18,6 @@ import tech.tablesaw.filtering.predicates.IntBiPredicate;
 import tech.tablesaw.selection.BitmapBackedSelection;
 import tech.tablesaw.selection.Selection;
 
-import java.time.LocalDate;
-import java.util.function.BiPredicate;
-import java.util.function.IntPredicate;
-import java.util.function.Predicate;
-
-import static tech.tablesaw.columns.DateAndTimePredicates.*;
-
 public interface DateFilters extends Column<LocalDate> {
 
     DateColumn where(Selection selection);
diff --git a/core/src/main/java/tech/tablesaw/columns/datetimes/DateTimeFilters.java b/core/src/main/java/tech/tablesaw/columns/datetimes/DateTimeFilters.java
index 80683fdf..593b675e 100644
--- a/core/src/main/java/tech/tablesaw/columns/datetimes/DateTimeFilters.java
+++ b/core/src/main/java/tech/tablesaw/columns/datetimes/DateTimeFilters.java
@@ -1,12 +1,14 @@
 package tech.tablesaw.columns.datetimes;
 
-import it.unimi.dsi.fastutil.longs.LongArrayList;
-import it.unimi.dsi.fastutil.longs.LongIterator;
-import tech.tablesaw.api.DateTimeColumn;
-import tech.tablesaw.columns.Column;
-import tech.tablesaw.filtering.predicates.LongBiPredicate;
-import tech.tablesaw.selection.BitmapBackedSelection;
-import tech.tablesaw.selection.Selection;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isEqualTo;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isGreaterThan;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isGreaterThanOrEqualTo;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isInYear;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isLessThan;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isLessThanOrEqualTo;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isMissing;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isNotEqualTo;
+import static tech.tablesaw.columns.datetimes.DateTimePredicates.isNotMissing;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -14,7 +16,13 @@ import java.util.function.BiPredicate;
 import java.util.function.LongPredicate;
 import java.util.function.Predicate;
 
-import static tech.tablesaw.columns.datetimes.DateTimePredicates.*;
+import it.unimi.dsi.fastutil.longs.LongArrayList;
+import it.unimi.dsi.fastutil.longs.LongIterator;
+import tech.tablesaw.api.DateTimeColumn;
+import tech.tablesaw.columns.Column;
+import tech.tablesaw.filtering.predicates.LongBiPredicate;
+import tech.tablesaw.selection.BitmapBackedSelection;
+import tech.tablesaw.selection.Selection;
 
 public interface DateTimeFilters extends Column<LocalDateTime> {
 
diff --git a/core/src/main/java/tech/tablesaw/columns/numbers/NumberFilters.java b/core/src/main/java/tech/tablesaw/columns/numbers/NumberFilters.java
index c2789dd5..1f72f74c 100644
--- a/core/src/main/java/tech/tablesaw/columns/numbers/NumberFilters.java
+++ b/core/src/main/java/tech/tablesaw/columns/numbers/NumberFilters.java
@@ -14,6 +14,22 @@
 
 package tech.tablesaw.columns.numbers;
 
+import static tech.tablesaw.columns.numbers.NumberPredicates.isBetweenExclusive;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isBetweenInclusive;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isEqualTo;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isGreaterThan;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isGreaterThanOrEqualTo;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isLessThan;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isLessThanOrEqualTo;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isNegative;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isNonNegative;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isNotEqualTo;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isPositive;
+import static tech.tablesaw.columns.numbers.NumberPredicates.isZero;
+
+import java.util.function.BiPredicate;
+import java.util.function.DoublePredicate;
+
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.NumericColumn;
 import tech.tablesaw.filtering.predicates.DoubleBiPredicate;
@@ -21,11 +37,6 @@ import tech.tablesaw.filtering.predicates.DoubleRangePredicate;
 import tech.tablesaw.selection.BitmapBackedSelection;
 import tech.tablesaw.selection.Selection;
 
-import java.util.function.BiPredicate;
-import java.util.function.DoublePredicate;
-
-import static tech.tablesaw.columns.numbers.NumberPredicates.*;
-
 public interface NumberFilters {
 
     Selection eval(DoublePredicate predicate);
diff --git a/core/src/main/java/tech/tablesaw/columns/strings/StringFilters.java b/core/src/main/java/tech/tablesaw/columns/strings/StringFilters.java
index 90f63882..57a24e9d 100644
--- a/core/src/main/java/tech/tablesaw/columns/strings/StringFilters.java
+++ b/core/src/main/java/tech/tablesaw/columns/strings/StringFilters.java
@@ -14,15 +14,32 @@
 
 package tech.tablesaw.columns.strings;
 
-import tech.tablesaw.columns.Column;
-import tech.tablesaw.selection.BitmapBackedSelection;
-import tech.tablesaw.selection.Selection;
+import static tech.tablesaw.columns.strings.StringPredicates.endsWith;
+import static tech.tablesaw.columns.strings.StringPredicates.hasEqualLengthTo;
+import static tech.tablesaw.columns.strings.StringPredicates.isAlpha;
+import static tech.tablesaw.columns.strings.StringPredicates.isAlphaNumeric;
+import static tech.tablesaw.columns.strings.StringPredicates.isEmpty;
+import static tech.tablesaw.columns.strings.StringPredicates.isEqualTo;
+import static tech.tablesaw.columns.strings.StringPredicates.isEqualToIgnoringCase;
+import static tech.tablesaw.columns.strings.StringPredicates.isLongerThan;
+import static tech.tablesaw.columns.strings.StringPredicates.isLowerCase;
+import static tech.tablesaw.columns.strings.StringPredicates.isMissing;
+import static tech.tablesaw.columns.strings.StringPredicates.isNotEqualTo;
+import static tech.tablesaw.columns.strings.StringPredicates.isNotMissing;
+import static tech.tablesaw.columns.strings.StringPredicates.isNumeric;
+import static tech.tablesaw.columns.strings.StringPredicates.isShorterThan;
+import static tech.tablesaw.columns.strings.StringPredicates.isUpperCase;
+import static tech.tablesaw.columns.strings.StringPredicates.matchesRegex;
+import static tech.tablesaw.columns.strings.StringPredicates.startsWith;
+import static tech.tablesaw.columns.strings.StringPredicates.stringContains;
 
 import java.util.Collection;
 import java.util.function.BiPredicate;
 import java.util.function.Predicate;
 
-import static tech.tablesaw.columns.strings.StringPredicates.*;
+import tech.tablesaw.columns.Column;
+import tech.tablesaw.selection.BitmapBackedSelection;
+import tech.tablesaw.selection.Selection;
 
 public interface StringFilters extends Column<String> {
 
diff --git a/core/src/main/java/tech/tablesaw/io/csv/CsvWriteOptions.java b/core/src/main/java/tech/tablesaw/io/csv/CsvWriteOptions.java
index 67b9878c..6e60a8a1 100644
--- a/core/src/main/java/tech/tablesaw/io/csv/CsvWriteOptions.java
+++ b/core/src/main/java/tech/tablesaw/io/csv/CsvWriteOptions.java
@@ -1,6 +1,11 @@
 package tech.tablesaw.io.csv;
 
-import java.io.*;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 import java.nio.file.Paths;
 
 public class CsvWriteOptions {
diff --git a/core/src/main/java/tech/tablesaw/io/fixed/FixedWidthWriteOptions.java b/core/src/main/java/tech/tablesaw/io/fixed/FixedWidthWriteOptions.java
index d33810db..98d8da01 100644
--- a/core/src/main/java/tech/tablesaw/io/fixed/FixedWidthWriteOptions.java
+++ b/core/src/main/java/tech/tablesaw/io/fixed/FixedWidthWriteOptions.java
@@ -1,11 +1,16 @@
 package tech.tablesaw.io.fixed;
 
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.file.Paths;
+
 import com.univocity.parsers.fixed.FieldAlignment;
 import com.univocity.parsers.fixed.FixedWidthFields;
 
-import java.io.*;
-import java.nio.file.Paths;
-
 public class FixedWidthWriteOptions {
 
     private final Writer writer;
diff --git a/excel/pom.xml b/excel/pom.xml
index 552798aa..3066a3d9 100644
--- a/excel/pom.xml
+++ b/excel/pom.xml
@@ -65,8 +65,8 @@
       <version>4.0.1</version>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
       <scope>test</scope>
     </dependency>
   </dependencies>
diff --git a/html/pom.xml b/html/pom.xml
index f379bb76..44fa1f0c 100644
--- a/html/pom.xml
+++ b/html/pom.xml
@@ -65,8 +65,8 @@
       <version>1.11.3</version>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
       <scope>test</scope>
     </dependency>
   </dependencies>
diff --git a/json/pom.xml b/json/pom.xml
index 654b9801..9ed103cc 100644
--- a/json/pom.xml
+++ b/json/pom.xml
@@ -70,8 +70,8 @@
       <version>0.6.0</version>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
       <scope>test</scope>
     </dependency>
   </dependencies>
diff --git a/json/src/main/java/tech/tablesaw/io/json/JsonReader.java b/json/src/main/java/tech/tablesaw/io/json/JsonReader.java
index 40fb673e..dc7f594d 100644
--- a/json/src/main/java/tech/tablesaw/io/json/JsonReader.java
+++ b/json/src/main/java/tech/tablesaw/io/json/JsonReader.java
@@ -1,15 +1,20 @@
 package tech.tablesaw.io.json;
 
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.wnameless.json.flattener.JsonFlattener;
+
 import tech.tablesaw.api.Table;
 import tech.tablesaw.io.ReadOptions;
 import tech.tablesaw.io.TableBuildingUtils;
 
-import java.io.IOException;
-import java.util.*;
-
 public class JsonReader {
 
     private static final ObjectMapper mapper = new ObjectMapper();
diff --git a/jsplot/pom.xml b/jsplot/pom.xml
index 7d990a19..32247c5a 100644
--- a/jsplot/pom.xml
+++ b/jsplot/pom.xml
@@ -62,8 +62,8 @@
             <version>0.31.1-SNAPSHOT</version>
         </dependency>
         <dependency>
-            <groupId>junit</groupId>
-            <artifactId>junit</artifactId>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
             <scope>test</scope>
         </dependency>
     </dependencies>
diff --git a/jsplot/src/main/java/tech/tablesaw/plotly/display/Browser.java b/jsplot/src/main/java/tech/tablesaw/plotly/display/Browser.java
index 5b1dbead..a7e5bd93 100644
--- a/jsplot/src/main/java/tech/tablesaw/plotly/display/Browser.java
+++ b/jsplot/src/main/java/tech/tablesaw/plotly/display/Browser.java
@@ -1,6 +1,6 @@
 package tech.tablesaw.plotly.display;
 
-import java.awt.*;
+import java.awt.Desktop;
 import java.io.File;
 import java.io.IOException;
 import java.net.URI;
diff --git a/pom.xml b/pom.xml
index 518c8a6e..db1d207a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,6 +109,11 @@
                         </execution>
                     </executions>
                 </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>2.22.1</version>
+                </plugin>
                 <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-gpg-plugin</artifactId>
@@ -224,9 +229,14 @@
     <dependencyManagement>
         <dependencies>
             <dependency>
-                <groupId>junit</groupId>
-                <artifactId>junit</artifactId>
-                <version>4.12</version>
+                <groupId>org.junit.jupiter</groupId>
+                <artifactId>junit-jupiter-engine</artifactId>
+                <version>5.4.0</version>
+            </dependency>
+            <dependency>
+                <groupId>org.junit.jupiter</groupId>
+                <artifactId>junit-jupiter-params</artifactId>
+                <version>5.4.0</version>
             </dependency>
         </dependencies>
     </dependencyManagement>
diff --git a/smile/pom.xml b/smile/pom.xml
index 528e34fe..6e4109fd 100644
--- a/smile/pom.xml
+++ b/smile/pom.xml
@@ -65,8 +65,8 @@
       <version>1.5.2 </version>
     </dependency>
     <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
+      <groupId>org.junit.jupiter</groupId>
+      <artifactId>junit-jupiter-engine</artifactId>
       <scope>test</scope>
     </dependency>
   </dependencies>


Test patch:
diff --git a/core/src/test/java/tech/tablesaw/SortTest.java b/core/src/test/java/tech/tablesaw/SortTest.java
index 1dbaf080..14548af9 100644
--- a/core/src/test/java/tech/tablesaw/SortTest.java
+++ b/core/src/test/java/tech/tablesaw/SortTest.java
@@ -14,11 +14,11 @@
 
 package tech.tablesaw;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 
 import tech.tablesaw.api.Table;
 
@@ -33,7 +33,7 @@ public class SortTest {
     private final static String[] columnNames = TestData.SIMPLE_UNSORTED_DATA.getColumnNames();
     private Table unsortedTable;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         unsortedTable = TestData.SIMPLE_UNSORTED_DATA.getTable();
     }
@@ -61,7 +61,7 @@ public class SortTest {
      * Verify data that is not sorted descending does match data that has been
      * (this test verifies the accuracy of our positive tests)
      */
-    @Ignore
+    @Disabled
     public void sortDescendingNegative() {
         Table sortedTable = unsortedTable.sortDescendingOn("IQ", "DOB");
         Table expectedResults = TestData.SIMPLE_SORTED_DATA_BY_DOUBLE_AND_DATE_ASCENDING.getTable();
@@ -114,7 +114,7 @@ public class SortTest {
         assertTablesEquals(expectedResults, sortedTable);
     }
 
-    @Ignore
+    @Disabled
     public void testAscendingWithPlusSignNegative() {
         Table sortedTable = unsortedTable.sortOn("+" + columnNames[IQ_INDEX], "-" + columnNames[DOB_INDEX]);
         Table expectedResults = TestData.SIMPLE_DATA_WITH_CANONICAL_DATE_FORMAT.getTable();
@@ -128,13 +128,13 @@ public class SortTest {
      * @param sortedTable the table that was sorted with Tablesaw
      */
     private void assertTablesEquals(Table compareWith, Table sortedTable) {
-        assertEquals("both tables have the same number of rows", sortedTable.rowCount(), compareWith.rowCount());
+        assertEquals(sortedTable.rowCount(), compareWith.rowCount(), "both tables have the same number of rows");
         int maxRows = sortedTable.rowCount();
         int numberOfColumns = sortedTable.columnCount();
         for (int rowIndex = 0; rowIndex < maxRows; rowIndex++) {
             for (int columnIndex = 0; columnIndex < numberOfColumns; columnIndex++) {
-                assertEquals("cells[" + rowIndex + ", " + columnIndex + "] do not match",
-                        sortedTable.get(rowIndex, columnIndex), compareWith.get(rowIndex, columnIndex));
+                assertEquals(sortedTable.get(rowIndex, columnIndex), compareWith.get(rowIndex, columnIndex),
+                	"cells[" + rowIndex + ", " + columnIndex + "] do not match");
             }
         }
     }
diff --git a/core/src/test/java/tech/tablesaw/TableFilteringTest.java b/core/src/test/java/tech/tablesaw/TableFilteringTest.java
index 757371a2..2ec48f3a 100644
--- a/core/src/test/java/tech/tablesaw/TableFilteringTest.java
+++ b/core/src/test/java/tech/tablesaw/TableFilteringTest.java
@@ -14,8 +14,15 @@
 
 package tech.tablesaw;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.time.LocalDate;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
 import tech.tablesaw.api.DateColumn;
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.ShortColumn;
@@ -25,10 +32,6 @@ import tech.tablesaw.columns.Column;
 import tech.tablesaw.columns.dates.PackedLocalDate;
 import tech.tablesaw.io.csv.CsvReadOptions;
 
-import java.time.LocalDate;
-
-import static org.junit.Assert.*;
-
 /**
  * Tests for filtering on the T class
  */
@@ -36,7 +39,7 @@ public class TableFilteringTest {
 
     private Table table;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         table = Table.read().csv(CsvReadOptions.builder("../data/bush.csv").minimizeColumnSizes(true));
     }
diff --git a/core/src/test/java/tech/tablesaw/TestDataTest.java b/core/src/test/java/tech/tablesaw/TestDataTest.java
index 4d14b0f9..4dfdbbb1 100644
--- a/core/src/test/java/tech/tablesaw/TestDataTest.java
+++ b/core/src/test/java/tech/tablesaw/TestDataTest.java
@@ -14,9 +14,10 @@
 
 package tech.tablesaw;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
 
 /**
  * Make sure our test data is available
@@ -32,13 +33,13 @@ public class TestDataTest {
 
     private void verify(TestData testData) {
 
-        assertNotNull("Table available", testData.getTable());
+        assertNotNull(testData.getTable(), "Table available");
 
         // cheap attempt at testing data integrity
-        assertEquals("Column name count matches column type count", testData.getColumnNames().length,
-                testData.getColumnTypes().length);
+        assertEquals(testData.getColumnNames().length, testData.getColumnTypes().length,
+                "Column name count matches column type count");
 
-        assertNotNull("Data path available", testData.getSource());
+        assertNotNull(testData.getSource(), "Data path available");
     }
 
 }
diff --git a/core/src/test/java/tech/tablesaw/aggregate/AggregateFunctionsTest.java b/core/src/test/java/tech/tablesaw/aggregate/AggregateFunctionsTest.java
index 2e7daa6b..283b9119 100644
--- a/core/src/test/java/tech/tablesaw/aggregate/AggregateFunctionsTest.java
+++ b/core/src/test/java/tech/tablesaw/aggregate/AggregateFunctionsTest.java
@@ -14,9 +14,33 @@
 
 package tech.tablesaw.aggregate;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.allTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.anyTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.countFalse;
+import static tech.tablesaw.aggregate.AggregateFunctions.countMissing;
+import static tech.tablesaw.aggregate.AggregateFunctions.countTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.countUnique;
+import static tech.tablesaw.aggregate.AggregateFunctions.countWithMissing;
+import static tech.tablesaw.aggregate.AggregateFunctions.earliestDate;
+import static tech.tablesaw.aggregate.AggregateFunctions.latestDate;
+import static tech.tablesaw.aggregate.AggregateFunctions.mean;
+import static tech.tablesaw.aggregate.AggregateFunctions.noneTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.percentile90;
+import static tech.tablesaw.aggregate.AggregateFunctions.percentile95;
+import static tech.tablesaw.aggregate.AggregateFunctions.percentile99;
+import static tech.tablesaw.aggregate.AggregateFunctions.proportionFalse;
+import static tech.tablesaw.aggregate.AggregateFunctions.proportionTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.standardDeviation;
+import static tech.tablesaw.aggregate.AggregateFunctions.stdDev;
+import static tech.tablesaw.aggregate.AggregateFunctions.sum;
+
 import org.apache.commons.math3.stat.StatUtils;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
 import tech.tablesaw.api.BooleanColumn;
 import tech.tablesaw.api.DateColumn;
 import tech.tablesaw.api.DoubleColumn;
@@ -27,14 +51,11 @@ import tech.tablesaw.table.SelectionTableSliceGroup;
 import tech.tablesaw.table.StandardTableSliceGroup;
 import tech.tablesaw.table.TableSliceGroup;
 
-import static org.junit.Assert.*;
-import static tech.tablesaw.aggregate.AggregateFunctions.*;
-
 public class AggregateFunctionsTest {
 
     private Table table;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         table = Table.read().csv(CsvReadOptions.builder("../data/bush.csv"));
     }
diff --git a/core/src/test/java/tech/tablesaw/aggregate/CrossTabTest.java b/core/src/test/java/tech/tablesaw/aggregate/CrossTabTest.java
index e6a27b1a..3cbade4e 100644
--- a/core/src/test/java/tech/tablesaw/aggregate/CrossTabTest.java
+++ b/core/src/test/java/tech/tablesaw/aggregate/CrossTabTest.java
@@ -1,13 +1,13 @@
 package tech.tablesaw.aggregate;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.BooleanColumn;
 import tech.tablesaw.api.IntColumn;
 import tech.tablesaw.api.Row;
 import tech.tablesaw.api.Table;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class CrossTabTest {
 
diff --git a/core/src/test/java/tech/tablesaw/aggregate/PivotTableTest.java b/core/src/test/java/tech/tablesaw/aggregate/PivotTableTest.java
index 06c2c67b..be4e4f18 100644
--- a/core/src/test/java/tech/tablesaw/aggregate/PivotTableTest.java
+++ b/core/src/test/java/tech/tablesaw/aggregate/PivotTableTest.java
@@ -1,11 +1,11 @@
 package tech.tablesaw.aggregate;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.io.csv.CsvReadOptions;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class PivotTableTest {
 
diff --git a/core/src/test/java/tech/tablesaw/api/BooleanColumnTest.java b/core/src/test/java/tech/tablesaw/api/BooleanColumnTest.java
index fb663119..2d358db3 100644
--- a/core/src/test/java/tech/tablesaw/api/BooleanColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/api/BooleanColumnTest.java
@@ -14,11 +14,15 @@
 
 package tech.tablesaw.api;
 
-import tech.tablesaw.columns.booleans.BooleanFormatter;
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.*;
+import tech.tablesaw.columns.booleans.BooleanFormatter;
 
 /**
  * Tests for BooleanColumn
@@ -29,7 +33,7 @@ public class BooleanColumnTest {
 
     private final BooleanColumn column = BooleanColumn.create("Test");
 
-    @Before
+    @BeforeEach
     public void setUp() {
         column.append(false);
         column.append(false);
diff --git a/core/src/test/java/tech/tablesaw/api/DateColumnMapTest.java b/core/src/test/java/tech/tablesaw/api/DateColumnMapTest.java
index 24eeab66..01d28989 100644
--- a/core/src/test/java/tech/tablesaw/api/DateColumnMapTest.java
+++ b/core/src/test/java/tech/tablesaw/api/DateColumnMapTest.java
@@ -1,18 +1,19 @@
 package tech.tablesaw.api;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static tech.tablesaw.columns.dates.PackedLocalDate.asLocalDate;
+import static tech.tablesaw.columns.dates.PackedLocalDate.pack;
 
 import java.time.DayOfWeek;
 import java.time.temporal.ChronoUnit;
 
-import static org.junit.Assert.assertEquals;
-import static tech.tablesaw.columns.dates.PackedLocalDate.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 public class DateColumnMapTest {
     private DateColumn column1;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         Table table = Table.create("Test");
         column1 = DateColumn.create("Game date");
diff --git a/core/src/test/java/tech/tablesaw/api/DateColumnTest.java b/core/src/test/java/tech/tablesaw/api/DateColumnTest.java
index d1417645..f2f1fa4d 100644
--- a/core/src/test/java/tech/tablesaw/api/DateColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/api/DateColumnTest.java
@@ -1,19 +1,19 @@
 package tech.tablesaw.api;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.columns.dates.DateColumnType;
 
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 import java.util.stream.Collectors;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class DateColumnTest {
     private DateColumn column1;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         Table table = Table.create("Test");
         column1 = DateColumn.create("Game date");
diff --git a/core/src/test/java/tech/tablesaw/api/DateTimeColumnTest.java b/core/src/test/java/tech/tablesaw/api/DateTimeColumnTest.java
index e18b90c0..230eaad0 100644
--- a/core/src/test/java/tech/tablesaw/api/DateTimeColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/api/DateTimeColumnTest.java
@@ -14,20 +14,20 @@
 
 package tech.tablesaw.api;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import java.time.LocalDateTime;
 import java.time.ZoneOffset;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
 
 public class DateTimeColumnTest {
 
     private DateTimeColumn column1;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         Table table = Table.create("Test");
         column1 = DateTimeColumn.create("Game date");
diff --git a/core/src/test/java/tech/tablesaw/api/FloatColumnTest.java b/core/src/test/java/tech/tablesaw/api/FloatColumnTest.java
index c50a4d83..b7a847e7 100644
--- a/core/src/test/java/tech/tablesaw/api/FloatColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/api/FloatColumnTest.java
@@ -14,9 +14,9 @@
 
 package tech.tablesaw.api;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 public class FloatColumnTest {
 
diff --git a/core/src/test/java/tech/tablesaw/api/NumberColumnTest.java b/core/src/test/java/tech/tablesaw/api/NumberColumnTest.java
index 642a91c1..133fd704 100644
--- a/core/src/test/java/tech/tablesaw/api/NumberColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/api/NumberColumnTest.java
@@ -14,33 +14,44 @@
 
 package tech.tablesaw.api;
 
-import com.devskiller.jfairy.Fairy;
-import com.google.common.base.Stopwatch;
+import static java.lang.Double.NaN;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.median;
+import static tech.tablesaw.aggregate.AggregateFunctions.percentile;
+import static tech.tablesaw.aggregate.AggregateFunctions.percentile90;
+import static tech.tablesaw.aggregate.AggregateFunctions.percentile95;
+import static tech.tablesaw.aggregate.AggregateFunctions.percentile99;
+import static tech.tablesaw.aggregate.AggregateFunctions.quartile1;
+import static tech.tablesaw.aggregate.AggregateFunctions.quartile3;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.function.DoubleBinaryOperator;
+import java.util.function.DoubleFunction;
+import java.util.function.DoublePredicate;
+
 import org.apache.commons.lang3.RandomUtils;
 import org.apache.commons.math3.stat.StatUtils;
 import org.apache.commons.math3.stat.correlation.KendallsCorrelation;
 import org.apache.commons.math3.stat.correlation.PearsonsCorrelation;
 import org.apache.commons.math3.stat.correlation.SpearmansCorrelation;
 import org.apache.commons.math3.stat.descriptive.DescriptiveStatistics;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+
+import com.devskiller.jfairy.Fairy;
+import com.google.common.base.Stopwatch;
+
 import tech.tablesaw.columns.Column;
 import tech.tablesaw.columns.numbers.DoubleColumnType;
 import tech.tablesaw.columns.numbers.NumberColumnFormatter;
 import tech.tablesaw.selection.Selection;
 
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.TimeUnit;
-import java.util.function.DoubleBinaryOperator;
-import java.util.function.DoubleFunction;
-import java.util.function.DoublePredicate;
-
-import static java.lang.Double.NaN;
-import static org.junit.Assert.*;
-import static tech.tablesaw.aggregate.AggregateFunctions.*;
-
 /**
  * Unit tests for the NumberColumn class
  */
@@ -51,7 +62,7 @@ public class NumberColumnTest {
     private static final DoubleFunction<String> toStringD = d -> String.valueOf(d);
     private static final DoubleBinaryOperator sumD = (d1, d2) -> d1 + d2;
 
-    @Ignore
+    @Disabled
     @Test
     public void testApplyFilter() {
 
@@ -134,7 +145,7 @@ public class NumberColumnTest {
         assertEquals(new DescriptiveStatistics(c.asDoubleArray()).getSkewness(), c.skewness(), 0.00001);
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testSortAndApplyFilter1() {
 
@@ -240,7 +251,7 @@ public class NumberColumnTest {
         assertEquals("52", result.getString(0, "Test"));
     }
 
-    @Ignore
+    @Disabled
     @Test
     public void testSort1() {
         DoubleColumn numberColumn =  DoubleColumn.create("test", 1_000_000_000);
@@ -545,7 +556,7 @@ public class NumberColumnTest {
     public void testDifferenceEmptyColumn() {
         DoubleColumn initial =  DoubleColumn.create("Test");
         DoubleColumn difference = initial.difference();
-        assertEquals("Expecting empty data set.", 0, difference.size());
+        assertEquals(0, difference.size(), "Expecting empty data set.");
     }
 
     @Test
@@ -555,11 +566,11 @@ public class NumberColumnTest {
         DoubleColumn initial =  DoubleColumn.create("Test", originalValues);
         DoubleColumn csum = initial.cumSum();
 
-        assertEquals("Both sets of data should be the same size.", expectedValues.length, csum.size());
+        assertEquals(expectedValues.length, csum.size(), "Both sets of data should be the same size.");
 
         for (int index = 0; index < csum.size(); index++) {
             double actual = csum.get(index);
-            assertEquals("cumSum() operation at index:" + index + " failed", expectedValues[index], actual, 0);
+            assertEquals(expectedValues[index], actual, 0, "cumSum() operation at index:" + index + " failed");
         }
     }
 
@@ -570,11 +581,11 @@ public class NumberColumnTest {
         DoubleColumn initial =  DoubleColumn.create("Test", originalValues);
         DoubleColumn cprod = initial.cumProd();
 
-        assertEquals("Both sets of data should be the same size.", expectedValues.length, cprod.size());
+        assertEquals(expectedValues.length, cprod.size(), "Both sets of data should be the same size.");
 
         for (int index = 0; index < cprod.size(); index++) {
             double actual = cprod.get(index);
-            assertEquals("cumProd() operation at index:" + index + " failed", expectedValues[index], actual, 0);
+            assertEquals(expectedValues[index], actual, 0, "cumProd() operation at index:" + index + " failed");
         }
     }
 
@@ -603,19 +614,19 @@ public class NumberColumnTest {
         DoubleColumn initial =  DoubleColumn.create("Test", originalValues);
         DoubleColumn pctChange = initial.pctChange();
 
-        assertEquals("Both sets of data should be the same size.", expectedValues.length, pctChange.size());
+        assertEquals(expectedValues.length, pctChange.size(), "Both sets of data should be the same size.");
 
         for (int index = 0; index < pctChange.size(); index++) {
             double actual = pctChange.get(index);
-            assertEquals("pctChange() operation at index:" + index + " failed", expectedValues[index], actual, 0.0001);
+            assertEquals(expectedValues[index], actual, 0.0001, "pctChange() operation at index:" + index + " failed");
         }
     }
 
     private boolean validateEquality(double[] expectedValues, DoubleColumn col) {
-        assertEquals("Both sets of data should be the same size.", expectedValues.length, col.size());
+        assertEquals(expectedValues.length, col.size(), "Both sets of data should be the same size.");
         for (int index = 0; index < col.size(); index++) {
             double actual = col.get(index);
-            assertEquals("value mismatch at index:" + index, expectedValues[index], actual, 0.01);
+            assertEquals(expectedValues[index], actual, 0.01, "value mismatch at index:" + index);
         }
         return true;
     }
diff --git a/core/src/test/java/tech/tablesaw/api/QueryHelperTest.java b/core/src/test/java/tech/tablesaw/api/QueryHelperTest.java
index e4be8dd8..6dfe3361 100644
--- a/core/src/test/java/tech/tablesaw/api/QueryHelperTest.java
+++ b/core/src/test/java/tech/tablesaw/api/QueryHelperTest.java
@@ -1,15 +1,17 @@
 package tech.tablesaw.api;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 public class QueryHelperTest {
 
     private Table t;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         t = Table.read().csv("../data/bush.csv");
     }
diff --git a/core/src/test/java/tech/tablesaw/api/RowTest.java b/core/src/test/java/tech/tablesaw/api/RowTest.java
index c05056ff..0b5fe3e3 100644
--- a/core/src/test/java/tech/tablesaw/api/RowTest.java
+++ b/core/src/test/java/tech/tablesaw/api/RowTest.java
@@ -1,13 +1,14 @@
 package tech.tablesaw.api;
 
-import org.junit.Test;
-import tech.tablesaw.io.csv.CsvReadOptions;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.io.File;
 import java.io.IOException;
 import java.time.LocalDate;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.io.csv.CsvReadOptions;
 
 /**
  * TODO All the methods on this class should be tested carefully
diff --git a/core/src/test/java/tech/tablesaw/api/StringColumnTest.java b/core/src/test/java/tech/tablesaw/api/StringColumnTest.java
index 70947cf1..17ebbf26 100644
--- a/core/src/test/java/tech/tablesaw/api/StringColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/api/StringColumnTest.java
@@ -14,18 +14,18 @@
 
 package tech.tablesaw.api;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static tech.tablesaw.columns.strings.StringPredicates.isEqualToIgnoringCase;
 
 import java.util.Arrays;
 import java.util.List;
 import java.util.function.Function;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import tech.tablesaw.TestDataUtil;
 import tech.tablesaw.columns.strings.StringColumnFormatter;
@@ -35,7 +35,7 @@ public class StringColumnTest {
 
     private final StringColumn column = StringColumn.create("testing");
 
-    @Before
+    @BeforeEach
     public void setUp() {
         column.append("Value 1");
         column.append("Value 2");
diff --git a/core/src/test/java/tech/tablesaw/api/TableQueryTest.java b/core/src/test/java/tech/tablesaw/api/TableQueryTest.java
index 5198e648..ba398a2b 100644
--- a/core/src/test/java/tech/tablesaw/api/TableQueryTest.java
+++ b/core/src/test/java/tech/tablesaw/api/TableQueryTest.java
@@ -1,11 +1,11 @@
 package tech.tablesaw.api;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.io.IOException;
 import java.time.LocalDate;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class TableQueryTest {
 
diff --git a/core/src/test/java/tech/tablesaw/api/TableTest.java b/core/src/test/java/tech/tablesaw/api/TableTest.java
index 2dbf1db9..613fa7fb 100644
--- a/core/src/test/java/tech/tablesaw/api/TableTest.java
+++ b/core/src/test/java/tech/tablesaw/api/TableTest.java
@@ -15,8 +15,8 @@
 package tech.tablesaw.api;
 
 import com.google.common.collect.Lists;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.columns.Column;
 import tech.tablesaw.columns.dates.PackedLocalDate;
 import tech.tablesaw.io.csv.CsvReadOptions;
@@ -31,12 +31,13 @@ import java.util.concurrent.atomic.AtomicInteger;
 import java.util.function.Consumer;
 import java.util.function.Predicate;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static tech.tablesaw.aggregate.AggregateFunctions.mean;
 import static tech.tablesaw.aggregate.AggregateFunctions.stdDev;
 
@@ -50,7 +51,7 @@ public class TableTest {
     private DoubleColumn f1 =  DoubleColumn.create("f1");
     private DoubleColumn numberColumn =  DoubleColumn.create("d1");
 
-    @Before
+    @BeforeEach
     public void setUp() {
         table = Table.create("t");
         table.addColumns(f1);
@@ -71,13 +72,14 @@ public class TableTest {
         assertNotNull(column1);
     }
 
-    @Test(expected = IllegalArgumentException.class)
     public void testColumnSizeCheck() {
-        double[] a = {3, 4};
-        double[] b = {3, 4, 5};
-        Table.create("test",
-                DoubleColumn.create("a", a),
-                DoubleColumn.create("b", b));
+        assertThrows(IllegalArgumentException.class, () -> {
+            double[] a = {3, 4};
+            double[] b = {3, 4, 5};
+            Table.create("test",
+                    DoubleColumn.create("a", a),
+                    DoubleColumn.create("b", b));
+        });
     }
 
     @Test
@@ -382,32 +384,36 @@ public class TableTest {
         assertTableColumnSize(table, column, secondColumnSize);
     }
 
-    @Test(expected = NullPointerException.class)
     public void testAppendNull() {
-        table.append(null);
+        assertThrows(NullPointerException.class, () -> {
+            table.append(null);
+        });
     }
 
-    @Test(expected = IllegalStateException.class)
     public void testAppendTableWithNonExistingColumns() {
-        Table tableToAppend = Table.create("wrong", numberColumn);
-        table.append(tableToAppend);
+        assertThrows(IllegalStateException.class, () -> {
+            Table tableToAppend = Table.create("wrong", numberColumn);
+            table.append(tableToAppend);
+        });
     }
 
-    @Test(expected = IllegalStateException.class)
     public void testAppendTableWithAnotherColumnName() {
-        DoubleColumn column =  DoubleColumn.create("42");
-        Table tableToAppend = Table.create("wrong", column);
-        table.append(tableToAppend);
+        assertThrows(IllegalStateException.class, () -> {
+            DoubleColumn column =  DoubleColumn.create("42");
+            Table tableToAppend = Table.create("wrong", column);
+            table.append(tableToAppend);
+        });
     }
 
-    @Test(expected = IllegalStateException.class)
     public void testAppendTableWithDifferentShape() {
-        DoubleColumn column =  DoubleColumn.create("e1");
-        table.addColumns(column);
-        Table tableToAppend = Table.create("different", column);
-        assertEquals(2, table.columns().size());
-        assertEquals(1, tableToAppend.columns().size());
-        table.append(tableToAppend);
+        assertThrows(IllegalStateException.class, () -> {
+    	    DoubleColumn column =  DoubleColumn.create("e1");
+            table.addColumns(column);
+            Table tableToAppend = Table.create("different", column);
+            assertEquals(2, table.columns().size());
+            assertEquals(1, tableToAppend.columns().size());
+            table.append(tableToAppend);
+        });
     }
 
     @Test
diff --git a/core/src/test/java/tech/tablesaw/api/TextColumnTest.java b/core/src/test/java/tech/tablesaw/api/TextColumnTest.java
index 57076aaa..37745461 100644
--- a/core/src/test/java/tech/tablesaw/api/TextColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/api/TextColumnTest.java
@@ -14,23 +14,26 @@
 
 package tech.tablesaw.api;
 
-import org.junit.Before;
-import org.junit.Test;
-import tech.tablesaw.TestDataUtil;
-import tech.tablesaw.columns.strings.StringColumnFormatter;
-import tech.tablesaw.selection.Selection;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static tech.tablesaw.columns.strings.StringPredicates.isEqualToIgnoringCase;
 
 import java.util.List;
 import java.util.function.Function;
 
-import static org.junit.Assert.*;
-import static tech.tablesaw.columns.strings.StringPredicates.isEqualToIgnoringCase;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.TestDataUtil;
+import tech.tablesaw.columns.strings.StringColumnFormatter;
+import tech.tablesaw.selection.Selection;
 
 public class TextColumnTest {
 
     private final TextColumn column = TextColumn.create("testing");
 
-    @Before
+    @BeforeEach
     public void setUp() {
         column.append("Value 1");
         column.append("Value 2");
diff --git a/core/src/test/java/tech/tablesaw/api/TimeColumnTest.java b/core/src/test/java/tech/tablesaw/api/TimeColumnTest.java
index 3791d32e..098181c3 100644
--- a/core/src/test/java/tech/tablesaw/api/TimeColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/api/TimeColumnTest.java
@@ -14,8 +14,8 @@
 
 package tech.tablesaw.api;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.columns.Column;
 import tech.tablesaw.columns.numbers.IntColumnType;
 import tech.tablesaw.columns.times.TimeColumnType;
@@ -26,11 +26,11 @@ import java.time.LocalTime;
 import java.time.temporal.ChronoUnit;
 import java.util.List;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotEquals;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static tech.tablesaw.columns.times.PackedLocalTime.getMinuteOfDay;
 import static tech.tablesaw.columns.times.PackedLocalTime.getSecondOfDay;
 import static tech.tablesaw.columns.times.PackedLocalTime.of;
@@ -39,7 +39,7 @@ public class TimeColumnTest {
 
     private TimeColumn column1;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         Table table = Table.create("Test");
         column1 = TimeColumn.create("Game time");
diff --git a/core/src/test/java/tech/tablesaw/columns/AbstractColumnTest.java b/core/src/test/java/tech/tablesaw/columns/AbstractColumnTest.java
index 28ffa411..10884fa7 100644
--- a/core/src/test/java/tech/tablesaw/columns/AbstractColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/AbstractColumnTest.java
@@ -1,13 +1,13 @@
 package tech.tablesaw.columns;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DateColumn;
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.columns.numbers.DoubleColumnType;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class AbstractColumnTest {
 
diff --git a/core/src/test/java/tech/tablesaw/columns/ColumnAppendTest.java b/core/src/test/java/tech/tablesaw/columns/ColumnAppendTest.java
index d3095b0d..708b45a6 100644
--- a/core/src/test/java/tech/tablesaw/columns/ColumnAppendTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/ColumnAppendTest.java
@@ -1,21 +1,30 @@
 package tech.tablesaw.columns;
 
-import org.apache.commons.lang3.ArrayUtils;
-import org.junit.experimental.theories.DataPoints;
-import org.junit.experimental.theories.Theories;
-import org.junit.experimental.theories.Theory;
-import org.junit.runner.RunWith;
-import tech.tablesaw.api.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Stream;
+
+import org.apache.commons.lang3.ArrayUtils;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
 
-import static org.junit.Assert.assertEquals;
+import tech.tablesaw.api.BooleanColumn;
+import tech.tablesaw.api.DateColumn;
+import tech.tablesaw.api.DateTimeColumn;
+import tech.tablesaw.api.DoubleColumn;
+import tech.tablesaw.api.FloatColumn;
+import tech.tablesaw.api.IntColumn;
+import tech.tablesaw.api.LongColumn;
+import tech.tablesaw.api.ShortColumn;
+import tech.tablesaw.api.StringColumn;
+import tech.tablesaw.api.TextColumn;
+import tech.tablesaw.api.TimeColumn;
 
-@RunWith(Theories.class)
 public class ColumnAppendTest {
 
     private static class Scenario<T extends Column<?>> {
@@ -34,9 +43,8 @@ public class ColumnAppendTest {
         }
     }
 
-    @DataPoints
-    public static Scenario<?>[] scenarios() {
-        return new Scenario[]{
+    public static Stream<Scenario<?>> scenarios() {
+        return Stream.of(
                 new Scenario<>(
                         FloatColumn.create("floatCol1", new float[]{1f, 2f, 3f}),
                         FloatColumn.create("floatCol2", new float[]{4f})
@@ -117,10 +125,11 @@ public class ColumnAppendTest {
                 new Scenario<>(
                         TimeColumn.create("timeCol1", new LocalTime[]{LocalTime.now()})
                 )
-        };
+        );
     }
 
-    @Theory
+    @ParameterizedTest
+    @MethodSource("scenarios")
     @SuppressWarnings({"unchecked", "rawtypes"})
     public void testColumnAppend(Scenario scenario) {
         assertEquals(scenario.col1col2Appended, scenario.col1.append(scenario.col2).asList());
diff --git a/core/src/test/java/tech/tablesaw/columns/ColumnTest.java b/core/src/test/java/tech/tablesaw/columns/ColumnTest.java
index 59b54ee3..c8a40556 100644
--- a/core/src/test/java/tech/tablesaw/columns/ColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/ColumnTest.java
@@ -14,15 +14,9 @@
 
 package tech.tablesaw.columns;
 
-import org.junit.Before;
-import org.junit.Test;
-import tech.tablesaw.api.ColumnType;
-import tech.tablesaw.api.DateColumn;
-import tech.tablesaw.api.DateTimeColumn;
-import tech.tablesaw.api.DoubleColumn;
-import tech.tablesaw.api.StringColumn;
-import tech.tablesaw.api.Table;
-import tech.tablesaw.io.csv.CsvReadOptions;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -31,7 +25,16 @@ import java.util.function.BinaryOperator;
 import java.util.function.Function;
 import java.util.function.Predicate;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.api.ColumnType;
+import tech.tablesaw.api.DateColumn;
+import tech.tablesaw.api.DateTimeColumn;
+import tech.tablesaw.api.DoubleColumn;
+import tech.tablesaw.api.StringColumn;
+import tech.tablesaw.api.Table;
+import tech.tablesaw.io.csv.CsvReadOptions;
 
 /**
  * Tests for Column functionality that is common across column types
@@ -52,7 +55,7 @@ public class ColumnTest {
 
     private Table table;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         table = Table.read().csv(CsvReadOptions.builder("../data/bush.csv").columnTypes(types));
     }
diff --git a/core/src/test/java/tech/tablesaw/columns/booleans/BooleanFillersTest.java b/core/src/test/java/tech/tablesaw/columns/booleans/BooleanFillersTest.java
index 83e36ac6..ba8aad51 100644
--- a/core/src/test/java/tech/tablesaw/columns/booleans/BooleanFillersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/booleans/BooleanFillersTest.java
@@ -1,9 +1,9 @@
 package tech.tablesaw.columns.booleans;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.BooleanColumn;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static tech.tablesaw.api.BooleanColumn.create;
 import static tech.tablesaw.columns.booleans.fillers.BooleanIterable.bits;
 
diff --git a/core/src/test/java/tech/tablesaw/columns/booleans/BooleanMapUtilsTest.java b/core/src/test/java/tech/tablesaw/columns/booleans/BooleanMapUtilsTest.java
index 3d760e53..b70e99f8 100644
--- a/core/src/test/java/tech/tablesaw/columns/booleans/BooleanMapUtilsTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/booleans/BooleanMapUtilsTest.java
@@ -1,9 +1,10 @@
 package tech.tablesaw.columns.booleans;
 
-import org.junit.Test;
-import tech.tablesaw.api.BooleanColumn;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.*;
+import tech.tablesaw.api.BooleanColumn;
 
 public class BooleanMapUtilsTest {
     private BooleanColumn singleFalse = BooleanColumn.create("", new boolean[]{false});
diff --git a/core/src/test/java/tech/tablesaw/columns/dates/DateFillersTest.java b/core/src/test/java/tech/tablesaw/columns/dates/DateFillersTest.java
index e7d99e83..31ac40a5 100644
--- a/core/src/test/java/tech/tablesaw/columns/dates/DateFillersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/dates/DateFillersTest.java
@@ -1,11 +1,11 @@
 package tech.tablesaw.columns.dates;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.time.LocalDate;
 import java.time.temporal.ChronoUnit;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static tech.tablesaw.api.DateColumn.create;
 import static tech.tablesaw.columns.datetimes.fillers.TemporalRangeIterable.range;
 
diff --git a/core/src/test/java/tech/tablesaw/columns/dates/DateFiltersTest.java b/core/src/test/java/tech/tablesaw/columns/dates/DateFiltersTest.java
index b28a8a40..d5af94ed 100644
--- a/core/src/test/java/tech/tablesaw/columns/dates/DateFiltersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/dates/DateFiltersTest.java
@@ -14,8 +14,8 @@
 
 package tech.tablesaw.columns.dates;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DateColumn;
 import tech.tablesaw.api.IntColumn;
 import tech.tablesaw.api.StringColumn;
@@ -25,9 +25,9 @@ import tech.tablesaw.selection.Selection;
 import java.time.LocalDate;
 import java.time.Month;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 import static tech.tablesaw.columns.dates.PackedLocalDate.asLocalDate;
 import static tech.tablesaw.columns.dates.PackedLocalDate.minusDays;
 import static tech.tablesaw.columns.dates.PackedLocalDate.pack;
@@ -39,7 +39,7 @@ public class DateFiltersTest {
     private DateColumn localDateColumn = DateColumn.create("testing");
     private Table table = Table.create("test");
 
-    @Before
+    @BeforeEach
     public void setUp() {
         localDateColumn.append(LocalDate.of(2016, 2, 28)); // sunday
         localDateColumn.append(LocalDate.of(2016, 2, 29)); // monday
diff --git a/core/src/test/java/tech/tablesaw/columns/dates/DateMapFunctionsTest.java b/core/src/test/java/tech/tablesaw/columns/dates/DateMapFunctionsTest.java
index 58e13bf6..e06c59d2 100644
--- a/core/src/test/java/tech/tablesaw/columns/dates/DateMapFunctionsTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/dates/DateMapFunctionsTest.java
@@ -14,22 +14,24 @@
 
 package tech.tablesaw.columns.dates;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.time.LocalTime;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
 import tech.tablesaw.api.DateColumn;
 import tech.tablesaw.api.DateTimeColumn;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.api.TimeColumn;
 
-import java.time.LocalTime;
-
-import static org.junit.Assert.*;
-
 public class DateMapFunctionsTest {
 
     private DateColumn column1;
 
-    @Before
+    @BeforeEach
     public void setUp() {
         Table table = Table.create("Test");
         column1 = DateColumn.create("Game date");
diff --git a/core/src/test/java/tech/tablesaw/columns/dates/PackedLocalDateTest.java b/core/src/test/java/tech/tablesaw/columns/dates/PackedLocalDateTest.java
index 1428deda..cb39ccd4 100644
--- a/core/src/test/java/tech/tablesaw/columns/dates/PackedLocalDateTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/dates/PackedLocalDateTest.java
@@ -14,20 +14,63 @@
 
 package tech.tablesaw.columns.dates;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static tech.tablesaw.columns.dates.PackedLocalDate.asLocalDate;
+import static tech.tablesaw.columns.dates.PackedLocalDate.daysUntil;
+import static tech.tablesaw.columns.dates.PackedLocalDate.getDayOfMonth;
+import static tech.tablesaw.columns.dates.PackedLocalDate.getDayOfWeek;
+import static tech.tablesaw.columns.dates.PackedLocalDate.getMonth;
+import static tech.tablesaw.columns.dates.PackedLocalDate.getMonthValue;
+import static tech.tablesaw.columns.dates.PackedLocalDate.getYear;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isAfter;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isBefore;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isEqualTo;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isFriday;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInApril;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInAugust;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInDecember;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInFebruary;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInJanuary;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInJuly;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInJune;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInMarch;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInMay;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInNovember;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInOctober;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInQ1;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInQ2;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInQ3;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInQ4;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isInSeptember;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isMonday;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isSaturday;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isSunday;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isThursday;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isTuesday;
+import static tech.tablesaw.columns.dates.PackedLocalDate.isWednesday;
+import static tech.tablesaw.columns.dates.PackedLocalDate.lengthOfMonth;
+import static tech.tablesaw.columns.dates.PackedLocalDate.lengthOfYear;
+import static tech.tablesaw.columns.dates.PackedLocalDate.minusDays;
+import static tech.tablesaw.columns.dates.PackedLocalDate.minusMonths;
+import static tech.tablesaw.columns.dates.PackedLocalDate.minusWeeks;
+import static tech.tablesaw.columns.dates.PackedLocalDate.minusYears;
+import static tech.tablesaw.columns.dates.PackedLocalDate.pack;
+import static tech.tablesaw.columns.dates.PackedLocalDate.plusDays;
+import static tech.tablesaw.columns.dates.PackedLocalDate.plusMonths;
+import static tech.tablesaw.columns.dates.PackedLocalDate.plusWeeks;
+import static tech.tablesaw.columns.dates.PackedLocalDate.plusYears;
+import static tech.tablesaw.columns.dates.PackedLocalDate.withDayOfMonth;
+import static tech.tablesaw.columns.dates.PackedLocalDate.withMonth;
+import static tech.tablesaw.columns.dates.PackedLocalDate.withYear;
 
 import java.time.DayOfWeek;
 import java.time.LocalDate;
 import java.time.Month;
 
-import static junit.framework.TestCase.assertTrue;
-import static tech.tablesaw.columns.dates.PackedLocalDate.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
+import org.junit.jupiter.api.Test;
 
-/**
- *
- */
 public class PackedLocalDateTest {
 
     @Test
diff --git a/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeFillersTest.java b/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeFillersTest.java
index bfdd35a8..77af5f79 100644
--- a/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeFillersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeFillersTest.java
@@ -1,11 +1,11 @@
 package tech.tablesaw.columns.datetimes;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.time.LocalDateTime;
 import java.time.temporal.ChronoUnit;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static tech.tablesaw.api.DateTimeColumn.create;
 import static tech.tablesaw.columns.datetimes.fillers.TemporalRangeIterable.range;
 
diff --git a/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeFiltersTest.java b/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeFiltersTest.java
index f4d2cf3d..8ca90946 100644
--- a/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeFiltersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeFiltersTest.java
@@ -14,25 +14,27 @@
 
 package tech.tablesaw.columns.datetimes;
 
-import org.junit.Before;
-import org.junit.Test;
-import tech.tablesaw.api.DateTimeColumn;
-import tech.tablesaw.api.IntColumn;
-import tech.tablesaw.api.Table;
-import tech.tablesaw.selection.Selection;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.Month;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.api.DateTimeColumn;
+import tech.tablesaw.api.IntColumn;
+import tech.tablesaw.api.Table;
+import tech.tablesaw.selection.Selection;
 
 public class DateTimeFiltersTest {
 
     private DateTimeColumn localDateTimeColumn = DateTimeColumn.create("testing");
     private Table table = Table.create("test");
 
-    @Before
+    @BeforeEach
     public void setUp() {
         localDateTimeColumn.append(LocalDate.of(2016, 2, 28).atStartOfDay()); // sunday
         localDateTimeColumn.append(LocalDate.of(2016, 2, 29).atStartOfDay()); // monday
diff --git a/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeMapFunctionsTest.java b/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeMapFunctionsTest.java
index 1f742d7c..6084fbd6 100644
--- a/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeMapFunctionsTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/datetimes/DateTimeMapFunctionsTest.java
@@ -15,7 +15,7 @@
 package tech.tablesaw.columns.datetimes;
 
 import com.google.common.base.Strings;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DateColumn;
 import tech.tablesaw.api.DateTimeColumn;
 import tech.tablesaw.api.IntColumn;
@@ -30,7 +30,7 @@ import java.time.temporal.TemporalField;
 import java.time.temporal.WeekFields;
 import java.util.Locale;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * Tests for DateTimeMapFunctions
diff --git a/core/src/test/java/tech/tablesaw/columns/datetimes/PackedLocalDateTimeTest.java b/core/src/test/java/tech/tablesaw/columns/datetimes/PackedLocalDateTimeTest.java
index 886f90c2..210b1869 100644
--- a/core/src/test/java/tech/tablesaw/columns/datetimes/PackedLocalDateTimeTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/datetimes/PackedLocalDateTimeTest.java
@@ -14,16 +14,36 @@
 
 package tech.tablesaw.columns.datetimes;
 
-import org.junit.Test;
-import tech.tablesaw.columns.dates.PackedLocalDate;
-import tech.tablesaw.columns.times.PackedLocalTime;
-
-import java.time.*;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.asLocalDateTime;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.date;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getDayOfMonth;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getDayOfWeek;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getHour;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getMillisecondOfDay;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getMinute;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getMinuteOfDay;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getMonthValue;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getSecond;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getSecondOfDay;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.getYear;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.ofEpochMilli;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.pack;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.time;
+import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.toEpochMilli;
+
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.ZoneId;
+import java.time.ZoneOffset;
 import java.time.temporal.ChronoField;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static tech.tablesaw.columns.datetimes.PackedLocalDateTime.*;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.columns.dates.PackedLocalDate;
+import tech.tablesaw.columns.times.PackedLocalTime;
 
 public class PackedLocalDateTimeTest {
 
diff --git a/core/src/test/java/tech/tablesaw/columns/numbers/NumberFillersTest.java b/core/src/test/java/tech/tablesaw/columns/numbers/NumberFillersTest.java
index 7ee12cbf..f289fc9e 100644
--- a/core/src/test/java/tech/tablesaw/columns/numbers/NumberFillersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/numbers/NumberFillersTest.java
@@ -1,10 +1,10 @@
 package tech.tablesaw.columns.numbers;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static tech.tablesaw.api.DoubleColumn.create;
 import static tech.tablesaw.columns.numbers.fillers.DoubleRangeIterable.range;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 public class NumberFillersTest {
 
diff --git a/core/src/test/java/tech/tablesaw/columns/numbers/NumberFiltersTest.java b/core/src/test/java/tech/tablesaw/columns/numbers/NumberFiltersTest.java
index 0cfd0b44..b83462a8 100644
--- a/core/src/test/java/tech/tablesaw/columns/numbers/NumberFiltersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/numbers/NumberFiltersTest.java
@@ -1,13 +1,13 @@
 package tech.tablesaw.columns.numbers;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.io.csv.CsvReadOptions;
 import tech.tablesaw.selection.Selection;
 
 import static java.lang.Double.NaN;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class NumberFiltersTest {
 
diff --git a/core/src/test/java/tech/tablesaw/columns/numbers/NumberMapFunctionsTest.java b/core/src/test/java/tech/tablesaw/columns/numbers/NumberMapFunctionsTest.java
index 539e0816..78dabad9 100644
--- a/core/src/test/java/tech/tablesaw/columns/numbers/NumberMapFunctionsTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/numbers/NumberMapFunctionsTest.java
@@ -1,13 +1,15 @@
 package tech.tablesaw.columns.numbers;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
 import org.apache.commons.lang3.RandomUtils;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
+
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.IntColumn;
 import tech.tablesaw.api.Table;
 
-import static org.junit.Assert.*;
-
 public class NumberMapFunctionsTest {
 
     private final static String LINE_END = System.lineSeparator();
diff --git a/core/src/test/java/tech/tablesaw/columns/strings/StringFiltersTest.java b/core/src/test/java/tech/tablesaw/columns/strings/StringFiltersTest.java
index 6dd02a1a..98aa2b6c 100644
--- a/core/src/test/java/tech/tablesaw/columns/strings/StringFiltersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/strings/StringFiltersTest.java
@@ -14,17 +14,21 @@
 
 package tech.tablesaw.columns.strings;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import java.util.List;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
 import com.google.common.collect.Lists;
-import org.junit.Before;
-import org.junit.Test;
+
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.StringColumn;
 import tech.tablesaw.api.Table;
 
-import java.util.List;
-
-import static org.junit.Assert.*;
-
 public class StringFiltersTest {
 
     private StringColumn sc1 = StringColumn.create("sc1");
@@ -33,7 +37,7 @@ public class StringFiltersTest {
 
     private Table table = Table.create("T");
 
-    @Before
+    @BeforeEach
     public void setUp() {
         sc1.append("apple");      // 0
         sc1.append("Banana");     // 1
diff --git a/core/src/test/java/tech/tablesaw/columns/times/LocalTimeFilterTest.java b/core/src/test/java/tech/tablesaw/columns/times/LocalTimeFilterTest.java
index 60e0f8b8..db384f99 100644
--- a/core/src/test/java/tech/tablesaw/columns/times/LocalTimeFilterTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/times/LocalTimeFilterTest.java
@@ -14,17 +14,22 @@
 
 package tech.tablesaw.columns.times;
 
-import tech.tablesaw.api.TimeColumn;
-import tech.tablesaw.api.Table;
-import tech.tablesaw.selection.Selection;
-
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static tech.tablesaw.columns.times.PackedLocalTime.of;
+import static tech.tablesaw.columns.times.PackedLocalTime.pack;
+import static tech.tablesaw.columns.times.PackedLocalTime.toShortTimeString;
 
 import java.time.LocalTime;
 
-import static tech.tablesaw.columns.times.PackedLocalTime.*;
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.api.Table;
+import tech.tablesaw.api.TimeColumn;
+import tech.tablesaw.selection.Selection;
 
 public class LocalTimeFilterTest {
 
@@ -33,7 +38,7 @@ public class LocalTimeFilterTest {
 
     private Table table = Table.create("test");
 
-    @Before
+    @BeforeEach
     public void setUp() {
         localTimeColumn.appendInternal(of(10, 2, 28));
         localTimeColumn.appendInternal(of(12, 0, 0));
diff --git a/core/src/test/java/tech/tablesaw/columns/times/PackedLocalTimeTest.java b/core/src/test/java/tech/tablesaw/columns/times/PackedLocalTimeTest.java
index 9785da40..ef1dec59 100644
--- a/core/src/test/java/tech/tablesaw/columns/times/PackedLocalTimeTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/times/PackedLocalTimeTest.java
@@ -14,20 +14,47 @@
 
 package tech.tablesaw.columns.times;
 
-import org.junit.Test;
-
-import com.google.common.collect.ImmutableList;
-
-import tech.tablesaw.columns.datetimes.PackedLocalDateTime;
+import static java.time.temporal.ChronoUnit.DAYS;
+import static java.time.temporal.ChronoUnit.HALF_DAYS;
+import static java.time.temporal.ChronoUnit.HOURS;
+import static java.time.temporal.ChronoUnit.MINUTES;
+import static java.time.temporal.ChronoUnit.SECONDS;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static tech.tablesaw.columns.times.PackedLocalTime.asLocalTime;
+import static tech.tablesaw.columns.times.PackedLocalTime.getHour;
+import static tech.tablesaw.columns.times.PackedLocalTime.getMillisecondOfDay;
+import static tech.tablesaw.columns.times.PackedLocalTime.getMinute;
+import static tech.tablesaw.columns.times.PackedLocalTime.getMinuteOfDay;
+import static tech.tablesaw.columns.times.PackedLocalTime.getNano;
+import static tech.tablesaw.columns.times.PackedLocalTime.getSecond;
+import static tech.tablesaw.columns.times.PackedLocalTime.getSecondOfDay;
+import static tech.tablesaw.columns.times.PackedLocalTime.hoursUntil;
+import static tech.tablesaw.columns.times.PackedLocalTime.minusHours;
+import static tech.tablesaw.columns.times.PackedLocalTime.minusMinutes;
+import static tech.tablesaw.columns.times.PackedLocalTime.minusSeconds;
+import static tech.tablesaw.columns.times.PackedLocalTime.minutesUntil;
+import static tech.tablesaw.columns.times.PackedLocalTime.of;
+import static tech.tablesaw.columns.times.PackedLocalTime.pack;
+import static tech.tablesaw.columns.times.PackedLocalTime.plusHours;
+import static tech.tablesaw.columns.times.PackedLocalTime.plusMinutes;
+import static tech.tablesaw.columns.times.PackedLocalTime.plusSeconds;
+import static tech.tablesaw.columns.times.PackedLocalTime.secondsUntil;
+import static tech.tablesaw.columns.times.PackedLocalTime.toNanoOfDay;
+import static tech.tablesaw.columns.times.PackedLocalTime.truncatedTo;
+import static tech.tablesaw.columns.times.PackedLocalTime.withHour;
+import static tech.tablesaw.columns.times.PackedLocalTime.withMinute;
+import static tech.tablesaw.columns.times.PackedLocalTime.withSecond;
 
 import java.time.LocalTime;
 import java.time.temporal.ChronoField;
 import java.util.List;
 
-import static java.time.temporal.ChronoUnit.*;
-import static tech.tablesaw.columns.times.PackedLocalTime.*;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import org.junit.jupiter.api.Test;
+
+import com.google.common.collect.ImmutableList;
+
+import tech.tablesaw.columns.datetimes.PackedLocalDateTime;
 
 /**
  * Tests for PackedLocalTime
diff --git a/core/src/test/java/tech/tablesaw/columns/times/TimeFillersTest.java b/core/src/test/java/tech/tablesaw/columns/times/TimeFillersTest.java
index edec757d..8b9e19de 100644
--- a/core/src/test/java/tech/tablesaw/columns/times/TimeFillersTest.java
+++ b/core/src/test/java/tech/tablesaw/columns/times/TimeFillersTest.java
@@ -1,11 +1,11 @@
 package tech.tablesaw.columns.times;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.time.LocalTime;
 import java.time.temporal.ChronoUnit;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static tech.tablesaw.api.TimeColumn.create;
 import static tech.tablesaw.columns.datetimes.fillers.TemporalRangeIterable.range;
 
diff --git a/core/src/test/java/tech/tablesaw/conversion/TableConverterTest.java b/core/src/test/java/tech/tablesaw/conversion/TableConverterTest.java
index 56bde723..3c75fb32 100644
--- a/core/src/test/java/tech/tablesaw/conversion/TableConverterTest.java
+++ b/core/src/test/java/tech/tablesaw/conversion/TableConverterTest.java
@@ -14,13 +14,13 @@
 
 package tech.tablesaw.conversion;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.Table;
 
 import java.util.Arrays;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class TableConverterTest {
 
diff --git a/core/src/test/java/tech/tablesaw/conversion/smile/SmileConverterTest.java b/core/src/test/java/tech/tablesaw/conversion/smile/SmileConverterTest.java
index 63a146e6..890b05f0 100644
--- a/core/src/test/java/tech/tablesaw/conversion/smile/SmileConverterTest.java
+++ b/core/src/test/java/tech/tablesaw/conversion/smile/SmileConverterTest.java
@@ -14,14 +14,14 @@
 
 package tech.tablesaw.conversion.smile;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 import java.io.IOException;
 import java.util.Arrays;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import smile.classification.RandomForest;
 import smile.data.AttributeDataset;
diff --git a/core/src/test/java/tech/tablesaw/examples/Example1.java b/core/src/test/java/tech/tablesaw/examples/Example1.java
index c66de665..1edc8051 100644
--- a/core/src/test/java/tech/tablesaw/examples/Example1.java
+++ b/core/src/test/java/tech/tablesaw/examples/Example1.java
@@ -14,13 +14,22 @@
 
 package tech.tablesaw.examples;
 
-import tech.tablesaw.api.*;
+import static tech.tablesaw.aggregate.AggregateFunctions.max;
+import static tech.tablesaw.aggregate.AggregateFunctions.mean;
+import static tech.tablesaw.aggregate.AggregateFunctions.min;
+import static tech.tablesaw.aggregate.AggregateFunctions.range;
+
 import tech.tablesaw.aggregate.CrossTab;
+import tech.tablesaw.api.BooleanColumn;
+import tech.tablesaw.api.ColumnType;
+import tech.tablesaw.api.DateColumn;
+import tech.tablesaw.api.IntColumn;
+import tech.tablesaw.api.NumberColumn;
+import tech.tablesaw.api.StringColumn;
+import tech.tablesaw.api.Table;
 import tech.tablesaw.columns.numbers.NumberColumnFormatter;
 import tech.tablesaw.selection.Selection;
 
-import static tech.tablesaw.aggregate.AggregateFunctions.*;
-
 /**
  * Example code for:
  * Learning Data Science with Java and Airframe
diff --git a/core/src/test/java/tech/tablesaw/examples/TornadoExample.java b/core/src/test/java/tech/tablesaw/examples/TornadoExample.java
index 9abff571..e6937afd 100644
--- a/core/src/test/java/tech/tablesaw/examples/TornadoExample.java
+++ b/core/src/test/java/tech/tablesaw/examples/TornadoExample.java
@@ -14,14 +14,18 @@
 
 package tech.tablesaw.examples;
 
+import static tech.tablesaw.aggregate.AggregateFunctions.countNonMissing;
+import static tech.tablesaw.aggregate.AggregateFunctions.mean;
+import static tech.tablesaw.aggregate.AggregateFunctions.median;
+import static tech.tablesaw.aggregate.AggregateFunctions.min;
+import static tech.tablesaw.aggregate.AggregateFunctions.sum;
+
 import tech.tablesaw.api.DateColumn;
 import tech.tablesaw.api.IntColumn;
 import tech.tablesaw.api.StringColumn;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.selection.Selection;
 
-import static tech.tablesaw.aggregate.AggregateFunctions.*;
-
 /**
  * Usage example using a Tornado data set
  */
diff --git a/core/src/test/java/tech/tablesaw/filters/TimeDependentFilteringTest.java b/core/src/test/java/tech/tablesaw/filters/TimeDependentFilteringTest.java
index 0d1e4b5d..6df017fd 100644
--- a/core/src/test/java/tech/tablesaw/filters/TimeDependentFilteringTest.java
+++ b/core/src/test/java/tech/tablesaw/filters/TimeDependentFilteringTest.java
@@ -41,7 +41,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
 import java.util.concurrent.TimeUnit;
 
 import static java.lang.System.out;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.fail;
 
 /**
  * Tests manipulation of large (but not big) data sets
diff --git a/core/src/test/java/tech/tablesaw/index/DoubleIndexTest.java b/core/src/test/java/tech/tablesaw/index/DoubleIndexTest.java
index 70882509..b0cb54e9 100644
--- a/core/src/test/java/tech/tablesaw/index/DoubleIndexTest.java
+++ b/core/src/test/java/tech/tablesaw/index/DoubleIndexTest.java
@@ -14,15 +14,15 @@
 
 package tech.tablesaw.index;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.ColumnType;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.io.csv.CsvReadOptions;
 import tech.tablesaw.selection.Selection;
 import tech.tablesaw.columns.numbers.NumberPredicates;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  *
@@ -32,7 +32,7 @@ public class DoubleIndexTest {
     private DoubleIndex index;
     private Table table;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
 
         table = Table.read().csv(
diff --git a/core/src/test/java/tech/tablesaw/index/IntIndexTest.java b/core/src/test/java/tech/tablesaw/index/IntIndexTest.java
index 0d44d111..84b76c3e 100644
--- a/core/src/test/java/tech/tablesaw/index/IntIndexTest.java
+++ b/core/src/test/java/tech/tablesaw/index/IntIndexTest.java
@@ -14,8 +14,14 @@
 
 package tech.tablesaw.index;
 
-import org.junit.Before;
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+
+import java.time.LocalDate;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
 import tech.tablesaw.api.ColumnType;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.columns.DateAndTimePredicates;
@@ -24,10 +30,6 @@ import tech.tablesaw.columns.numbers.NumberPredicates;
 import tech.tablesaw.io.csv.CsvReadOptions;
 import tech.tablesaw.selection.Selection;
 
-import java.time.LocalDate;
-
-import static org.junit.Assert.*;
-
 public class IntIndexTest {
 
     private ColumnType[] types = {
@@ -40,7 +42,7 @@ public class IntIndexTest {
     private IntIndex dateIndex;
     private Table table;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         table = Table.read().csv(CsvReadOptions.builder("../data/bush.csv").columnTypes(types));
         index = new DoubleIndex(table.doubleColumn("approval"));
diff --git a/core/src/test/java/tech/tablesaw/index/LongIndexTest.java b/core/src/test/java/tech/tablesaw/index/LongIndexTest.java
index 9faa62e0..da8d3024 100644
--- a/core/src/test/java/tech/tablesaw/index/LongIndexTest.java
+++ b/core/src/test/java/tech/tablesaw/index/LongIndexTest.java
@@ -14,15 +14,15 @@
 
 package tech.tablesaw.index;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DateTimeColumn;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.columns.datetimes.DateTimePredicates;
 import tech.tablesaw.io.csv.CsvReadOptions;
 import tech.tablesaw.selection.Selection;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  *
@@ -32,7 +32,7 @@ public class LongIndexTest {
     private LongIndex index;
     private Table table;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         table = Table.read().csv(CsvReadOptions.builder("../data/bush.csv"));
         DateTimeColumn midnights = table.dateColumn("date").atStartOfDay();
diff --git a/core/src/test/java/tech/tablesaw/io/DataFrameWriterTest.java b/core/src/test/java/tech/tablesaw/io/DataFrameWriterTest.java
index ccc7b515..7638a4d1 100644
--- a/core/src/test/java/tech/tablesaw/io/DataFrameWriterTest.java
+++ b/core/src/test/java/tech/tablesaw/io/DataFrameWriterTest.java
@@ -1,6 +1,6 @@
 package tech.tablesaw.io;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.Table;
 
@@ -8,7 +8,7 @@ import java.io.ByteArrayOutputStream;
 import java.io.OutputStreamWriter;
 
 import static java.lang.Double.NaN;
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class DataFrameWriterTest {
 
diff --git a/core/src/test/java/tech/tablesaw/io/TypeUtilsTest.java b/core/src/test/java/tech/tablesaw/io/TypeUtilsTest.java
index 0967fdb0..faeb8da1 100644
--- a/core/src/test/java/tech/tablesaw/io/TypeUtilsTest.java
+++ b/core/src/test/java/tech/tablesaw/io/TypeUtilsTest.java
@@ -14,7 +14,7 @@
 
 package tech.tablesaw.io;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.columns.dates.DateParser;
 import tech.tablesaw.columns.datetimes.DateTimeParser;
 
@@ -23,8 +23,7 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Locale;
 
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.junit.Assert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 public class TypeUtilsTest {
 
@@ -32,7 +31,7 @@ public class TypeUtilsTest {
     public void testDateFormaterWithLocaleEN() {
         String anotherDate = "12-May-2015";
         LocalDate result = LocalDate.parse(anotherDate, DateParser.DEFAULT_FORMATTER.withLocale(Locale.ENGLISH));
-        assertThat(result, notNullValue());
+        assertNotNull(result);
     }
 
     @Test
@@ -43,6 +42,6 @@ public class TypeUtilsTest {
         String anotherDate = "10/2/2016 8:18:03 AM";
         dtTimef8.parse(anotherDate);
         LocalDateTime result = LocalDateTime.parse(anotherDate, DateTimeParser.DEFAULT_FORMATTER);
-        assertThat(result, notNullValue());
+        assertNotNull(result);
     }
 }
\ No newline at end of file
diff --git a/core/src/test/java/tech/tablesaw/io/csv/CsvReaderTest.java b/core/src/test/java/tech/tablesaw/io/csv/CsvReaderTest.java
index 746701b5..b2bc9a78 100644
--- a/core/src/test/java/tech/tablesaw/io/csv/CsvReaderTest.java
+++ b/core/src/test/java/tech/tablesaw/io/csv/CsvReaderTest.java
@@ -14,17 +14,20 @@
 
 package tech.tablesaw.io.csv;
 
-import com.univocity.parsers.common.TextParsingException;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import tech.tablesaw.api.ColumnType;
-import tech.tablesaw.api.DateColumn;
-import tech.tablesaw.api.DateTimeColumn;
-import tech.tablesaw.api.LongColumn;
-import tech.tablesaw.api.ShortColumn;
-import tech.tablesaw.api.Table;
-import tech.tablesaw.io.AddCellToColumnException;
+import static java.util.Arrays.asList;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static tech.tablesaw.api.ColumnType.DOUBLE;
+import static tech.tablesaw.api.ColumnType.FLOAT;
+import static tech.tablesaw.api.ColumnType.INTEGER;
+import static tech.tablesaw.api.ColumnType.LOCAL_DATE;
+import static tech.tablesaw.api.ColumnType.LOCAL_DATE_TIME;
+import static tech.tablesaw.api.ColumnType.SHORT;
+import static tech.tablesaw.api.ColumnType.SKIP;
+import static tech.tablesaw.api.ColumnType.STRING;
 
 import java.io.File;
 import java.io.FileInputStream;
@@ -38,10 +41,17 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Locale;
 
-import static java.util.Arrays.asList;
-import static org.hamcrest.CoreMatchers.*;
-import static org.junit.Assert.*;
-import static tech.tablesaw.api.ColumnType.*;
+import org.junit.jupiter.api.Test;
+
+import com.univocity.parsers.common.TextParsingException;
+
+import tech.tablesaw.api.ColumnType;
+import tech.tablesaw.api.DateColumn;
+import tech.tablesaw.api.DateTimeColumn;
+import tech.tablesaw.api.LongColumn;
+import tech.tablesaw.api.ShortColumn;
+import tech.tablesaw.api.Table;
+import tech.tablesaw.io.AddCellToColumnException;
 
 /**
  * Tests for CSV Reading
@@ -53,9 +63,6 @@ public class CsvReaderTest {
     private final ColumnType[] bus_types = {SHORT, STRING, STRING, FLOAT, FLOAT};
     private final ColumnType[] bus_types_with_SKIP = {SHORT, STRING, SKIP, DOUBLE, DOUBLE};
 
-    @Rule
-    public ExpectedException thrown = ExpectedException.none();
-
     @Test
     public void testWithBusData() throws Exception {
         // Read the CSV file
@@ -171,7 +178,7 @@ public class CsvReaderTest {
 
         final List<ColumnType> actual = asList(new CsvReader().detectColumnTypes(reader, options));
 
-        assertThat(actual, is(equalTo(Collections.singletonList(LOCAL_DATE))));
+        assertEquals(actual, Collections.singletonList(LOCAL_DATE));
     }
 
     @Test
@@ -199,7 +206,7 @@ public class CsvReaderTest {
 
         final List<ColumnType> actual = asList(new CsvReader().detectColumnTypes(reader, options));
 
-        assertThat(actual, is(equalTo(Collections.singletonList(LOCAL_DATE_TIME))));
+        assertEquals(actual, Collections.singletonList(LOCAL_DATE_TIME));
 
     }
 
@@ -228,7 +235,7 @@ public class CsvReaderTest {
 
         final List<ColumnType> actual = asList(new CsvReader().detectColumnTypes(reader, options));
 
-        assertThat(actual, is(equalTo(Collections.singletonList(LOCAL_DATE))));
+        assertEquals(actual, Collections.singletonList(LOCAL_DATE));
     }
 
     @Test
@@ -256,7 +263,7 @@ public class CsvReaderTest {
 
         final List<ColumnType> actual = asList(new CsvReader().detectColumnTypes(reader, options));
 
-        assertThat(actual, is(equalTo(Collections.singletonList(LOCAL_DATE_TIME))));
+        assertEquals(actual, Collections.singletonList(LOCAL_DATE_TIME));
     }
 
     @Test
@@ -331,11 +338,11 @@ public class CsvReaderTest {
                         "}" + LINE_END;
         assertEquals(output, new CsvReader()
                 .printColumnTypes(CsvReadOptions.builder("../data/bush.csv")
-                	.header(true)
-                	.separator(',')
-                	.locale(Locale.getDefault())
-                	.sample(true)
-                	.build()));
+                        .header(true)
+                        .separator(',')
+                        .locale(Locale.getDefault())
+                        .sample(true)
+                        .build()));
     }
 
     @Test
@@ -420,15 +427,17 @@ public class CsvReaderTest {
     }
 
     @Test
-    public void testShortRow() throws Exception {
-        thrown.expect(AddCellToColumnException.class);
-        Table.read().csv("../data/short_row.csv");
+    public void testShortRow() {
+        assertThrows(AddCellToColumnException.class, () -> {
+            Table.read().csv("../data/short_row.csv");
+        });
     }
 
     @Test
-    public void testLongRow() throws Exception {
-        thrown.expect(RuntimeException.class);
-        Table.read().csv("../data/long_row.csv");
+    public void testLongRow() {
+        assertThrows(RuntimeException.class, () -> {
+            Table.read().csv("../data/long_row.csv");
+        });
     }
 
     @Test
@@ -482,11 +491,12 @@ public class CsvReaderTest {
         assertEquals("0 rows X 0 cols", table1.shape());
     }
 
-    @Test(expected = TextParsingException.class)
-    public void testReadMaxColumnsExceeded() throws Exception {
-        Table.read().csv(CsvReadOptions
+    public void testReadMaxColumnsExceeded() {
+        assertThrows(TextParsingException.class, () -> {
+            Table.read().csv(CsvReadOptions
                 .builder("../data/10001_columns.csv")
                 .header(false));
+        });
     }
 
     @Test
diff --git a/core/src/test/java/tech/tablesaw/io/csv/CsvWriteOptionsTest.java b/core/src/test/java/tech/tablesaw/io/csv/CsvWriteOptionsTest.java
index e26e5008..c4c36341 100644
--- a/core/src/test/java/tech/tablesaw/io/csv/CsvWriteOptionsTest.java
+++ b/core/src/test/java/tech/tablesaw/io/csv/CsvWriteOptionsTest.java
@@ -1,12 +1,14 @@
 package tech.tablesaw.io.csv;
 
-import org.junit.Test;
-import tech.tablesaw.api.StringColumn;
-import tech.tablesaw.api.Table;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.ByteArrayOutputStream;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.api.StringColumn;
+import tech.tablesaw.api.Table;
 
 public class CsvWriteOptionsTest {
 
diff --git a/core/src/test/java/tech/tablesaw/io/csv/UnicodeBomHandlingTest.java b/core/src/test/java/tech/tablesaw/io/csv/UnicodeBomHandlingTest.java
index 71f7cdae..94c14cb5 100644
--- a/core/src/test/java/tech/tablesaw/io/csv/UnicodeBomHandlingTest.java
+++ b/core/src/test/java/tech/tablesaw/io/csv/UnicodeBomHandlingTest.java
@@ -1,13 +1,13 @@
 package tech.tablesaw.io.csv;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.Table;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStreamReader;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static tech.tablesaw.io.csv.UnicodeBomHandlingTest.BOM.UTF_8;
 
 public class UnicodeBomHandlingTest {
diff --git a/core/src/test/java/tech/tablesaw/io/fixed/FixedWidthReaderTest.java b/core/src/test/java/tech/tablesaw/io/fixed/FixedWidthReaderTest.java
index 8ddc8f2b..c5fa59a2 100644
--- a/core/src/test/java/tech/tablesaw/io/fixed/FixedWidthReaderTest.java
+++ b/core/src/test/java/tech/tablesaw/io/fixed/FixedWidthReaderTest.java
@@ -14,31 +14,32 @@
 
 package tech.tablesaw.io.fixed;
 
-import com.univocity.parsers.fixed.FixedWidthFields;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
-import tech.tablesaw.api.ColumnType;
-import tech.tablesaw.api.Table;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static tech.tablesaw.api.ColumnType.FLOAT;
+import static tech.tablesaw.api.ColumnType.SHORT;
+import static tech.tablesaw.api.ColumnType.SKIP;
+import static tech.tablesaw.api.ColumnType.STRING;
 
-import java.io.*;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileReader;
+import java.io.InputStream;
+import java.io.Reader;
 import java.util.Locale;
 
-import static tech.tablesaw.api.ColumnType.SHORT;
-import static tech.tablesaw.api.ColumnType.STRING;
-import static tech.tablesaw.api.ColumnType.FLOAT;
-import static tech.tablesaw.api.ColumnType.SKIP;
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
+import org.junit.jupiter.api.Test;
+
+import com.univocity.parsers.fixed.FixedWidthFields;
+
+import tech.tablesaw.api.ColumnType;
+import tech.tablesaw.api.Table;
 
 /**
  * Tests for CSV Reading
  */
 public class FixedWidthReaderTest {
 
-    @Rule
-    public ExpectedException thrown = ExpectedException.none();
-
     private final FixedWidthFields car_fields_specs = new FixedWidthFields(4, 5, 40, 40, 8);
     private final ColumnType[] car_types = {SHORT, STRING, STRING, STRING, FLOAT};
     private final ColumnType[] car_types_with_SKIP = {SHORT, STRING, STRING, SKIP, FLOAT};
diff --git a/core/src/test/java/tech/tablesaw/io/fixed/FixedWidthWriteOptionsTest.java b/core/src/test/java/tech/tablesaw/io/fixed/FixedWidthWriteOptionsTest.java
index 6064df62..8eb24712 100644
--- a/core/src/test/java/tech/tablesaw/io/fixed/FixedWidthWriteOptionsTest.java
+++ b/core/src/test/java/tech/tablesaw/io/fixed/FixedWidthWriteOptionsTest.java
@@ -1,12 +1,14 @@
 package tech.tablesaw.io.fixed;
 
-import org.junit.Test;
-import tech.tablesaw.api.StringColumn;
-import tech.tablesaw.api.Table;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.ByteArrayOutputStream;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.api.StringColumn;
+import tech.tablesaw.api.Table;
 
 public class FixedWidthWriteOptionsTest {
 
diff --git a/core/src/test/java/tech/tablesaw/io/html/HtmlTableWriterTest.java b/core/src/test/java/tech/tablesaw/io/html/HtmlTableWriterTest.java
index df013d10..75c710e9 100644
--- a/core/src/test/java/tech/tablesaw/io/html/HtmlTableWriterTest.java
+++ b/core/src/test/java/tech/tablesaw/io/html/HtmlTableWriterTest.java
@@ -14,8 +14,8 @@
 
 package tech.tablesaw.io.html;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import tech.tablesaw.aggregate.AggregateFunctions;
 import tech.tablesaw.api.StringColumn;
@@ -28,7 +28,7 @@ public class HtmlTableWriterTest {
 
     private Table table;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         table = Table.read().csv(CsvReadOptions.builder("../data/bush.csv"));
     }
diff --git a/core/src/test/java/tech/tablesaw/io/jdbc/SqlResultSetReaderTest.java b/core/src/test/java/tech/tablesaw/io/jdbc/SqlResultSetReaderTest.java
index 5b9485af..a392371a 100644
--- a/core/src/test/java/tech/tablesaw/io/jdbc/SqlResultSetReaderTest.java
+++ b/core/src/test/java/tech/tablesaw/io/jdbc/SqlResultSetReaderTest.java
@@ -14,15 +14,15 @@
 
 package tech.tablesaw.io.jdbc;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.ResultSet;
 import java.sql.Statement;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import tech.tablesaw.api.Table;
 import tech.tablesaw.columns.numbers.DoubleColumnType;
diff --git a/core/src/test/java/tech/tablesaw/io/json/JsonReaderTest.java b/core/src/test/java/tech/tablesaw/io/json/JsonReaderTest.java
index 55b2c50b..c9bd4e36 100644
--- a/core/src/test/java/tech/tablesaw/io/json/JsonReaderTest.java
+++ b/core/src/test/java/tech/tablesaw/io/json/JsonReaderTest.java
@@ -14,12 +14,12 @@
 
 package tech.tablesaw.io.json;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.io.IOException;
 import java.io.StringReader;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import tech.tablesaw.api.ColumnType;
 import tech.tablesaw.api.Table;
diff --git a/core/src/test/java/tech/tablesaw/io/json/JsonWriterTest.java b/core/src/test/java/tech/tablesaw/io/json/JsonWriterTest.java
index 2bca86d3..0a32992f 100644
--- a/core/src/test/java/tech/tablesaw/io/json/JsonWriterTest.java
+++ b/core/src/test/java/tech/tablesaw/io/json/JsonWriterTest.java
@@ -14,12 +14,12 @@
 
 package tech.tablesaw.io.json;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.io.IOException;
 import java.io.StringReader;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import tech.tablesaw.api.Table;
 
diff --git a/core/src/test/java/tech/tablesaw/io/string/DataFramePrinterTest.java b/core/src/test/java/tech/tablesaw/io/string/DataFramePrinterTest.java
index 70653cfa..44e4945f 100644
--- a/core/src/test/java/tech/tablesaw/io/string/DataFramePrinterTest.java
+++ b/core/src/test/java/tech/tablesaw/io/string/DataFramePrinterTest.java
@@ -1,11 +1,10 @@
 package tech.tablesaw.io.string;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.Table;
 
-import static org.hamcrest.CoreMatchers.containsString;
-import static org.junit.Assert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class DataFramePrinterTest {
 
@@ -17,7 +16,7 @@ public class DataFramePrinterTest {
         col.append(3.0);
         Table table = Table.create("nullCellTable", col);
         String out = table.print();
-        assertThat(out, containsString("          "));
+        assertTrue(out.contains("          "));
     }
 
 }
diff --git a/core/src/test/java/tech/tablesaw/io/xlsx/XlsxReaderTest.java b/core/src/test/java/tech/tablesaw/io/xlsx/XlsxReaderTest.java
index 2b6142b7..ded76489 100644
--- a/core/src/test/java/tech/tablesaw/io/xlsx/XlsxReaderTest.java
+++ b/core/src/test/java/tech/tablesaw/io/xlsx/XlsxReaderTest.java
@@ -14,16 +14,16 @@
 
 package tech.tablesaw.io.xlsx;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 
 import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.List;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import tech.tablesaw.api.Table;
 import tech.tablesaw.columns.Column;
@@ -34,8 +34,8 @@ public class XlsxReaderTest {
         try {
             String fileName = name + ".xlsx";
             List<Table> tables = Table.read().xlsx(XlsxReadOptions.builder("../data/" + fileName));
-            assertNotNull("No tables read from " + fileName, tables);
-            assertEquals("Wrong number of tables in " + fileName, expectedCount, tables.size());
+            assertNotNull(tables, "No tables read from " + fileName);
+            assertEquals(expectedCount, tables.size(), "Wrong number of tables in " + fileName);
             return tables;
         } catch (final IOException e) {
             fail(e.getMessage());
@@ -46,8 +46,8 @@ public class XlsxReaderTest {
         Table table = readN(name, 1).get(0);
         int colNum = 0;
         for (final Column<?> column : table.columns()) {
-            assertEquals("Wrong column name", columnNames[colNum], column.name());
-            assertEquals("Wrong size for column " + columnNames[colNum], size, column.size());
+            assertEquals(columnNames[colNum], column.name(), "Wrong column name");
+            assertEquals(size, column.size(), "Wrong size for column " + columnNames[colNum]);
             colNum++;
         }
         return table;
@@ -57,9 +57,9 @@ public class XlsxReaderTest {
     private final <T> void assertColumnValues(Column<T> column, T... ts) {
         for (int i = 0; i < column.size(); i++) {
             if (ts[i] == null) {
-                assertTrue("Should be missing value in row " + i + " of column " + column.name() + ", but it was " + column.get(i), column.isMissing(i));
+                assertTrue(column.isMissing(i), "Should be missing value in row " + i + " of column " + column.name() + ", but it was " + column.get(i));
             } else {
-                assertEquals("Wrong value in row " + i + " of column " + column.name(), ts[i], column.get(i));
+                assertEquals(ts[i], column.get(i), "Wrong value in row " + i + " of column " + column.name());
             }
         }
     }
diff --git a/core/src/test/java/tech/tablesaw/joining/DataFrameJoinerTest.java b/core/src/test/java/tech/tablesaw/joining/DataFrameJoinerTest.java
index 717462fd..647544ad 100644
--- a/core/src/test/java/tech/tablesaw/joining/DataFrameJoinerTest.java
+++ b/core/src/test/java/tech/tablesaw/joining/DataFrameJoinerTest.java
@@ -1,14 +1,14 @@
 package tech.tablesaw.joining;
 
 import com.google.common.base.Joiner;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.api.TextColumn;
 import tech.tablesaw.selection.Selection;
 
 import java.util.Arrays;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class DataFrameJoinerTest {
 
diff --git a/core/src/test/java/tech/tablesaw/selection/SelectionTest.java b/core/src/test/java/tech/tablesaw/selection/SelectionTest.java
index e59ec846..fb55ac1f 100644
--- a/core/src/test/java/tech/tablesaw/selection/SelectionTest.java
+++ b/core/src/test/java/tech/tablesaw/selection/SelectionTest.java
@@ -1,8 +1,11 @@
 package tech.tablesaw.selection;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
 
 public class SelectionTest {
 
diff --git a/core/src/test/java/tech/tablesaw/table/RollingColumnTest.java b/core/src/test/java/tech/tablesaw/table/RollingColumnTest.java
index adc47f2a..8321ebc2 100644
--- a/core/src/test/java/tech/tablesaw/table/RollingColumnTest.java
+++ b/core/src/test/java/tech/tablesaw/table/RollingColumnTest.java
@@ -1,16 +1,19 @@
 package tech.tablesaw.table;
 
-import org.junit.Test;
-import tech.tablesaw.api.BooleanColumn;
-import tech.tablesaw.api.DateTimeColumn;
-import tech.tablesaw.api.DoubleColumn;
-import tech.tablesaw.columns.numbers.DoubleColumnType;
+import static org.junit.jupiter.api.Assertions.assertArrayEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static tech.tablesaw.aggregate.AggregateFunctions.countTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.latestDateTime;
 
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 
-import static org.junit.Assert.*;
-import static tech.tablesaw.aggregate.AggregateFunctions.*;
+import org.junit.jupiter.api.Test;
+
+import tech.tablesaw.api.BooleanColumn;
+import tech.tablesaw.api.DateTimeColumn;
+import tech.tablesaw.api.DoubleColumn;
+import tech.tablesaw.columns.numbers.DoubleColumnType;
 
 public class RollingColumnTest {
 
diff --git a/core/src/test/java/tech/tablesaw/table/SliceBugTests.java b/core/src/test/java/tech/tablesaw/table/SliceBugTests.java
index 6fcb0f01..63418e46 100644
--- a/core/src/test/java/tech/tablesaw/table/SliceBugTests.java
+++ b/core/src/test/java/tech/tablesaw/table/SliceBugTests.java
@@ -1,6 +1,6 @@
 package tech.tablesaw.table;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DateTimeColumn;
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.StringColumn;
@@ -15,12 +15,12 @@ import java.sql.Statement;
 import java.time.LocalDateTime;
 import java.util.Arrays;
 
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class SliceBugTests {
 
-    private final Integer[] observations = new Integer[]{10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 10};
+    private final Integer[] observations = new Integer[]{10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
 
     private final LocalDateTime[] timestamps = new LocalDateTime[]{
             LocalDateTime.of(2018, 1, 1, 13, 1, 1),
@@ -59,8 +59,8 @@ public class SliceBugTests {
             DoubleColumn priceColFromIndex = slice.doubleColumn(2);
             DoubleColumn priceColFromName = slice.doubleColumn("price");
 
-            assertTrue("Columns should have same data",
-                    Arrays.equals(priceColFromName.asDoubleArray(), priceColFromIndex.asDoubleArray()));
+            assertTrue(Arrays.equals(priceColFromName.asDoubleArray(), priceColFromIndex.asDoubleArray()),
+        	    "Columns should have same data");
         }
     }
 
diff --git a/core/src/test/java/tech/tablesaw/table/TableSliceGroupTest.java b/core/src/test/java/tech/tablesaw/table/TableSliceGroupTest.java
index d9e0e316..0b7685eb 100644
--- a/core/src/test/java/tech/tablesaw/table/TableSliceGroupTest.java
+++ b/core/src/test/java/tech/tablesaw/table/TableSliceGroupTest.java
@@ -14,14 +14,14 @@
 
 package tech.tablesaw.table;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.util.List;
 
 import org.apache.commons.math3.stat.StatUtils;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 
 import tech.tablesaw.aggregate.NumericAggregateFunction;
 import tech.tablesaw.api.NumericColumn;
@@ -41,7 +41,7 @@ public class TableSliceGroupTest {
 
     private Table table;
 
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         table = Table.read().csv(CsvReadOptions.builder("../data/bush.csv"));
     }
diff --git a/core/src/test/java/tech/tablesaw/table/TableSliceTest.java b/core/src/test/java/tech/tablesaw/table/TableSliceTest.java
index a37da854..18ae9832 100644
--- a/core/src/test/java/tech/tablesaw/table/TableSliceTest.java
+++ b/core/src/test/java/tech/tablesaw/table/TableSliceTest.java
@@ -1,25 +1,26 @@
 package tech.tablesaw.table;
 
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.rules.ExpectedException;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static tech.tablesaw.aggregate.AggregateFunctions.sum;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
 import tech.tablesaw.api.StringColumn;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.columns.Column;
 import tech.tablesaw.selection.Selection;
 
-import static org.junit.Assert.*;
-import static tech.tablesaw.aggregate.AggregateFunctions.*;
-
 public class TableSliceTest {
 
     private Table source;
 
-    @Rule
-    public ExpectedException thrown = ExpectedException.none();
-
-    @Before
+    @BeforeEach
     public void setUp() throws Exception {
         source = Table.read().csv("../data/bush.csv");
     }
@@ -94,18 +95,20 @@ public class TableSliceTest {
 
     @Test
     public void addColumn() {
-        TableSlice slice = new TableSlice(source, Selection.withRange(0, source.rowCount()));
-        thrown.expect(UnsupportedOperationException.class);
-        thrown.expectMessage("Class TableSlice does not support the addColumns operation");
-        slice.addColumns(StringColumn.create("test"));
+	UnsupportedOperationException thrown = assertThrows(UnsupportedOperationException.class, () -> {
+            TableSlice slice = new TableSlice(source, Selection.withRange(0, source.rowCount()));
+            slice.addColumns(StringColumn.create("test"));
+        });
+	assertTrue(thrown.getMessage().contains("Class TableSlice does not support the addColumns operation"));
     }
 
     @Test
     public void removeColumns() {
-        TableSlice slice = new TableSlice(source, Selection.withRange(0, source.rowCount()));
-        thrown.expect(UnsupportedOperationException.class);
-        thrown.expectMessage("Class TableSlice does not support the removeColumns operation");
-        slice.removeColumns("who");
+	UnsupportedOperationException thrown = assertThrows(UnsupportedOperationException.class, () -> {
+            TableSlice slice = new TableSlice(source, Selection.withRange(0, source.rowCount()));
+            slice.removeColumns("who");
+        });
+	assertTrue(thrown.getMessage().contains("Class TableSlice does not support the removeColumns operation"));
     }
 
     @Test
diff --git a/core/src/test/java/tech/tablesaw/util/DoubleArraysTest.java b/core/src/test/java/tech/tablesaw/util/DoubleArraysTest.java
index 557fa00e..93cba56c 100644
--- a/core/src/test/java/tech/tablesaw/util/DoubleArraysTest.java
+++ b/core/src/test/java/tech/tablesaw/util/DoubleArraysTest.java
@@ -14,13 +14,13 @@
 
 package tech.tablesaw.util;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.table.TableSliceGroup;
 
 import java.util.Arrays;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class DoubleArraysTest {
 
diff --git a/core/src/test/java/tech/tablesaw/util/StatUtilTest.java b/core/src/test/java/tech/tablesaw/util/StatUtilTest.java
index 18ccae66..264850af 100644
--- a/core/src/test/java/tech/tablesaw/util/StatUtilTest.java
+++ b/core/src/test/java/tech/tablesaw/util/StatUtilTest.java
@@ -14,12 +14,12 @@
 
 package tech.tablesaw.util;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.api.DoubleColumn;
 
 import java.util.Random;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  *
diff --git a/jsplot/src/test/java/tech/tablesaw/components/AxisTest.java b/jsplot/src/test/java/tech/tablesaw/components/AxisTest.java
index b1790050..3fe72cc1 100644
--- a/jsplot/src/test/java/tech/tablesaw/components/AxisTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/components/AxisTest.java
@@ -1,12 +1,11 @@
 package tech.tablesaw.components;
 
-
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Axis;
 import tech.tablesaw.plotly.components.Font;
 
-@Ignore
+@Disabled
 public class AxisTest {
 
     @Test
diff --git a/jsplot/src/test/java/tech/tablesaw/components/FigureTest.java b/jsplot/src/test/java/tech/tablesaw/components/FigureTest.java
index e1ba1b24..399bd66a 100644
--- a/jsplot/src/test/java/tech/tablesaw/components/FigureTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/components/FigureTest.java
@@ -1,7 +1,7 @@
 package tech.tablesaw.components;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.Plot;
 import tech.tablesaw.plotly.components.Axis;
 import tech.tablesaw.plotly.components.Figure;
@@ -14,7 +14,7 @@ import tech.tablesaw.plotly.traces.Trace;
 import java.io.File;
 import java.nio.file.Paths;
 
-@Ignore
+@Disabled
 public class FigureTest {
 
     private String divName = "target";
diff --git a/jsplot/src/test/java/tech/tablesaw/components/HoverLabelTest.java b/jsplot/src/test/java/tech/tablesaw/components/HoverLabelTest.java
index db91bec4..2da4b0b4 100644
--- a/jsplot/src/test/java/tech/tablesaw/components/HoverLabelTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/components/HoverLabelTest.java
@@ -1,11 +1,11 @@
 package tech.tablesaw.components;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Font;
 import tech.tablesaw.plotly.components.HoverLabel;
 
-@Ignore
+@Disabled
 public class HoverLabelTest {
 
     @Test
diff --git a/jsplot/src/test/java/tech/tablesaw/components/LayoutTest.java b/jsplot/src/test/java/tech/tablesaw/components/LayoutTest.java
index d7953769..f6bf3d1d 100644
--- a/jsplot/src/test/java/tech/tablesaw/components/LayoutTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/components/LayoutTest.java
@@ -1,12 +1,12 @@
 package tech.tablesaw.components;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Axis;
 import tech.tablesaw.plotly.components.Layout;
 import tech.tablesaw.plotly.components.Margin;
 
-@Ignore
+@Disabled
 public class LayoutTest {
 
     @Test
diff --git a/jsplot/src/test/java/tech/tablesaw/components/MarkerTest.java b/jsplot/src/test/java/tech/tablesaw/components/MarkerTest.java
index 3ec7e175..1eab20c2 100644
--- a/jsplot/src/test/java/tech/tablesaw/components/MarkerTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/components/MarkerTest.java
@@ -1,10 +1,10 @@
 package tech.tablesaw.components;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Marker;
 import tech.tablesaw.plotly.components.Symbol;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class MarkerTest {
 
diff --git a/jsplot/src/test/java/tech/tablesaw/examples/TornadoVisualizations.java b/jsplot/src/test/java/tech/tablesaw/examples/TornadoVisualizations.java
index bcf287e7..55f3306b 100644
--- a/jsplot/src/test/java/tech/tablesaw/examples/TornadoVisualizations.java
+++ b/jsplot/src/test/java/tech/tablesaw/examples/TornadoVisualizations.java
@@ -14,6 +14,9 @@
 
 package tech.tablesaw.examples;
 
+import static tech.tablesaw.aggregate.AggregateFunctions.mean;
+import static tech.tablesaw.aggregate.AggregateFunctions.sum;
+
 import tech.tablesaw.api.DoubleColumn;
 import tech.tablesaw.api.Table;
 import tech.tablesaw.columns.numbers.DoubleColumnType;
@@ -22,8 +25,6 @@ import tech.tablesaw.plotly.api.HorizontalBarPlot;
 import tech.tablesaw.plotly.api.ParetoPlot;
 import tech.tablesaw.plotly.api.PiePlot;
 
-import static tech.tablesaw.aggregate.AggregateFunctions.*;
-
 /**
  * Usage example using a Tornado data set
  */
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/BarTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/BarTest.java
index 11d5eb1b..75fce0e8 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/BarTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/BarTest.java
@@ -1,11 +1,11 @@
 package tech.tablesaw.plotly;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Figure;
 import tech.tablesaw.plotly.traces.BarTrace;
 
-@Ignore
+@Disabled
 public class BarTest {
 
     private final Object[] x = {"sheep", "cows", "fish", "tree sloths"};
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/BoxTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/BoxTest.java
index 1d35294f..d49fde38 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/BoxTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/BoxTest.java
@@ -1,11 +1,11 @@
 package tech.tablesaw.plotly;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Figure;
 import tech.tablesaw.plotly.traces.BoxTrace;
 
-@Ignore
+@Disabled
 public class BoxTest {
 
     private final Object[] x = {"sheep", "cows", "fish", "tree sloths", "sheep", "cows", "fish", "tree sloths", "sheep", "cows", "fish", "tree sloths"};
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/BubbleTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/BubbleTest.java
index 37ab79a5..199f2498 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/BubbleTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/BubbleTest.java
@@ -13,15 +13,15 @@
  */
 package tech.tablesaw.plotly;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Figure;
 import tech.tablesaw.plotly.components.Marker;
 import tech.tablesaw.plotly.components.Symbol;
 import tech.tablesaw.plotly.traces.ScatterTrace;
 
 
-@Ignore
+@Disabled
 public class BubbleTest {
 
     private final double[] x = {1, 2, 3, 4, 5, 6};
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/HistogramTraceTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/HistogramTraceTest.java
index 5d03f095..dd8519a3 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/HistogramTraceTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/HistogramTraceTest.java
@@ -1,12 +1,12 @@
 package tech.tablesaw.plotly;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Figure;
 import tech.tablesaw.plotly.components.Layout;
 import tech.tablesaw.plotly.traces.HistogramTrace;
 
-@Ignore
+@Disabled
 public class HistogramTraceTest {
 
     private final double[] y1 = {1, 4, 9, 16, 11, 4, -1, 20, 4, 7, 9, 12, 8, 6, 28, 12};
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/PieTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/PieTest.java
index 0981eb4a..188fb351 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/PieTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/PieTest.java
@@ -1,14 +1,14 @@
 package tech.tablesaw.plotly;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Figure;
 import tech.tablesaw.plotly.traces.PieTrace;
 
 import java.io.File;
 import java.nio.file.Paths;
 
-@Ignore
+@Disabled
 public class PieTest {
 
     private final Object[] x = {"sheep", "cows", "fish", "tree sloths"};
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/Scatter3DTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/Scatter3DTest.java
index 77cf7575..139d99f2 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/Scatter3DTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/Scatter3DTest.java
@@ -1,13 +1,13 @@
 package tech.tablesaw.plotly;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Axis;
 import tech.tablesaw.plotly.components.Figure;
 import tech.tablesaw.plotly.components.Layout;
 import tech.tablesaw.plotly.traces.Scatter3DTrace;
 
-@Ignore
+@Disabled
 public class Scatter3DTest {
 
     private final double[] x = {1, 2, 3, 4, 5, 6};
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/ScatterTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/ScatterTest.java
index 4a8583eb..bc61f121 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/ScatterTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/ScatterTest.java
@@ -1,7 +1,7 @@
 package tech.tablesaw.plotly;
 
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.Axis;
 import tech.tablesaw.plotly.components.Figure;
 import tech.tablesaw.plotly.components.Font;
@@ -15,7 +15,7 @@ import tech.tablesaw.plotly.traces.ScatterTrace;
 import java.io.File;
 import java.nio.file.Paths;
 
-@Ignore
+@Disabled
 public class ScatterTest {
 
     private final String[] text = {"acc", "dnax", "lc", "hc", "seq"};
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/components/ChangeTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/components/ChangeTest.java
index 78318e2f..85b3b95a 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/components/ChangeTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/components/ChangeTest.java
@@ -1,10 +1,10 @@
 package tech.tablesaw.plotly.components;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import tech.tablesaw.plotly.components.change.ChangeLine;
 import tech.tablesaw.plotly.components.change.Increasing;
 
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 public class ChangeTest {
 
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/CenterTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/CenterTest.java
index 9f991fa6..e9d19b1f 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/CenterTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/CenterTest.java
@@ -1,8 +1,8 @@
 package tech.tablesaw.plotly.components.threeD;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class CenterTest {
 
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/EyeTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/EyeTest.java
index 6f2d86e7..8b465e55 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/EyeTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/EyeTest.java
@@ -1,8 +1,8 @@
 package tech.tablesaw.plotly.components.threeD;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
 
 public class EyeTest {
 
diff --git a/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/UpTest.java b/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/UpTest.java
index 3f872dd1..17389c3a 100644
--- a/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/UpTest.java
+++ b/jsplot/src/test/java/tech/tablesaw/plotly/components/threeD/UpTest.java
@@ -1,8 +1,8 @@
 package tech.tablesaw.plotly.components.threeD;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import static org.junit.Assert.*;
+import org.junit.jupiter.api.Test;
 
 public class UpTest {