import java.io.File;
import org.opensim.modeling.*;

class TestXsensDataReader {
    public static void test_XsensDataReader() {
        XsensDataReaderSettings settings = new XsensDataReaderSettings();
        ExperimentalSensor  nextSensor = new ExperimentalSensor("000_00B421AF", "shank");
        settings.append_ExperimentalSensors(nextSensor);
        settings.set_trial_prefix(0, "MT_012005D6_031-");
        XsensDataReader xsensDataReader = new XsensDataReader(settings);
        StdMapStringAbstractDataTable tables = xsensDataReader.extendRead("");
        TimeSeriesTableVec3 accelTableTyped = XsensDataReader.getLinearAccelerationsTable(tables);
        assert accelTableTyped.getNumRows()    == 3369;
        assert accelTableTyped.getNumColumns() == 1;
        assert accelTableTyped.
               getTableMetaDataString("DataRate").equals("100.000000");
    }

    public static void main(String[] args) {
        test_XsensDataReader();
    }
};

@@ -121,16 +121,92 @@
 ader() %7B
+%0A%0A        // Test creation and population of XsensDataReaderSettings object 
 %0A       
@@ -351,16 +351,28 @@
 B421AF%22,
+%0A           
  %22shank%22
@@ -493,159 +493,509 @@
 %22);%0A
-        XsensDataReader xsensDataReader = new XsensDataReader(settings);%0A        StdMapStringAbstractDataTable tables = xsensDataReader.extendRead(%22%22);
+%0A        // Test costruct XsensDataReader from a XsensDataReaderSettings object %0A        XsensDataReader xsensDataReader = new XsensDataReader(settings);%0A        // Make sure types returned by the xsensDataReader are usable in Java%0A        StdMapStringAbstractDataTable tables = xsensDataReader.extendRead(%22%22);%0A%0A        // Check that custom accessors are available and return usable types%0A        // Only spot check of the table is done as actual testing of contents %0A        // lives in the C++ tests
 %0A   

Add comments to Java test case to explain what's being tested and why