Bug 568167: [RJ-Data] Add unit tests for R*Store.isNaN
Change-Id: I412cb49b5f39fcfb61f3a870062fc615ecfad624
diff --git a/core/org.eclipse.statet.rj.data-tests/src/org/eclipse/statet/rj/data/impl/RComplexStoreTest.java b/core/org.eclipse.statet.rj.data-tests/src/org/eclipse/statet/rj/data/impl/RComplexStoreTest.java
index 2959445..525ccd8 100644
--- a/core/org.eclipse.statet.rj.data-tests/src/org/eclipse/statet/rj/data/impl/RComplexStoreTest.java
+++ b/core/org.eclipse.statet.rj.data-tests/src/org/eclipse/statet/rj/data/impl/RComplexStoreTest.java
@@ -193,6 +193,30 @@
@ParameterizedTest
@MethodSource("provideCaseDatas")
+ public void isNaN(final CplxCaseData data) {
+ final RComplexStore store= createStore(data);
+
+ for (int i= 0; i < data.length; i++) {
+ final int i0= i;
+ if (data.nas[i0]) {
+ assertFalse(store.isNaN(i0), storeDiffersAt(i0));
+ assertFalse(store.isNaN((long)i0), storeDiffersAt(i0));
+ }
+ else if (Double.isNaN(data.realValues[i0])) {
+ assertTrue(store.isNaN(i0), storeDiffersAt(i0));
+ assertTrue(store.isNaN((long)i0), storeDiffersAt(i0));
+ }
+ else {
+ assertFalse(store.isNaN(i0), storeDiffersAt(i0));
+ assertFalse(store.isNaN((long)i0), storeDiffersAt(i0));
+ }
+ }
+ assertIndexOutOfBounds(data, store::isMissing, store::isMissing);
+ }
+
+
+ @ParameterizedTest
+ @MethodSource("provideCaseDatas")
public void getLogi(final CplxCaseData data) {
final RComplexStore store= createStore(data);
diff --git a/core/org.eclipse.statet.rj.data-tests/src/org/eclipse/statet/rj/data/impl/RNumericStoreTest.java b/core/org.eclipse.statet.rj.data-tests/src/org/eclipse/statet/rj/data/impl/RNumericStoreTest.java
index f07ed2e..f56a203 100644
--- a/core/org.eclipse.statet.rj.data-tests/src/org/eclipse/statet/rj/data/impl/RNumericStoreTest.java
+++ b/core/org.eclipse.statet.rj.data-tests/src/org/eclipse/statet/rj/data/impl/RNumericStoreTest.java
@@ -183,6 +183,30 @@
@ParameterizedTest
@MethodSource("provideCaseDatas")
+ public void isNaN(final NumCaseData data) {
+ final RNumericStore store= createStore(data);
+
+ for (int i= 0; i < data.length; i++) {
+ final int i0= i;
+ if (data.nas[i0]) {
+ assertFalse(store.isNaN(i0), storeDiffersAt(i0));
+ assertFalse(store.isNaN((long)i0), storeDiffersAt(i0));
+ }
+ else if (Double.isNaN(data.values[i0])) {
+ assertTrue(store.isNaN(i0), storeDiffersAt(i0));
+ assertTrue(store.isNaN((long)i0), storeDiffersAt(i0));
+ }
+ else {
+ assertFalse(store.isNaN(i0), storeDiffersAt(i0));
+ assertFalse(store.isNaN((long)i0), storeDiffersAt(i0));
+ }
+ }
+ assertIndexOutOfBounds(data, store::isMissing, store::isMissing);
+ }
+
+
+ @ParameterizedTest
+ @MethodSource("provideCaseDatas")
@SuppressWarnings("boxing")
public void getLogi(final NumCaseData data) {
final RNumericStore store= createStore(data);