|
@@ -8,12 +8,16 @@ package net.ranides.assira.collection.suite.lists;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
|
|
|
+import java.util.Iterator;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.ListIterator;
|
|
|
import java.util.function.Supplier;
|
|
import java.util.function.Supplier;
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
|
+import net.ranides.assira.collection.suite.IteratorTester;
|
|
|
import net.ranides.assira.junit.InterfaceSuite;
|
|
import net.ranides.assira.junit.InterfaceSuite;
|
|
|
import net.ranides.assira.junit.InterfaceTest;
|
|
import net.ranides.assira.junit.InterfaceTest;
|
|
|
import net.ranides.assira.test.TCollection;
|
|
import net.ranides.assira.test.TCollection;
|
|
|
|
|
+import net.ranides.assira.test.TCollection.TItems;
|
|
|
import static net.ranides.assira.junit.NewAssert.*;
|
|
import static net.ranides.assira.junit.NewAssert.*;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -129,8 +133,8 @@ public class ListTester<T> {
|
|
|
public void basicLastIndexOf(List<T> target) {
|
|
public void basicLastIndexOf(List<T> target) {
|
|
|
$list.list(1,3,5,7,9,3,3,11).into(target);
|
|
$list.list(1,3,5,7,9,3,3,11).into(target);
|
|
|
|
|
|
|
|
- assertEquals(0, target.lastIndexOf(1));
|
|
|
|
|
assertEquals(6, target.lastIndexOf(3));
|
|
assertEquals(6, target.lastIndexOf(3));
|
|
|
|
|
+ assertEquals(0, target.lastIndexOf(1));
|
|
|
assertEquals(2, target.lastIndexOf(5));
|
|
assertEquals(2, target.lastIndexOf(5));
|
|
|
assertEquals(3, target.lastIndexOf(7));
|
|
assertEquals(3, target.lastIndexOf(7));
|
|
|
assertEquals(4, target.lastIndexOf(9));
|
|
assertEquals(4, target.lastIndexOf(9));
|
|
@@ -320,6 +324,111 @@ public class ListTester<T> {
|
|
|
assertEquals($values(1,21,22,7,9), target);
|
|
assertEquals($values(1,21,22,7,9), target);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
|
|
+ @InterfaceTest
|
|
|
|
|
+ public void basicIterator(List<T> target) {
|
|
|
|
|
+ TItems<T> list1 = $list.list();
|
|
|
|
|
+ TItems<T> list2 = $list.list(3, 4, 5, 6, 7);
|
|
|
|
|
+
|
|
|
|
|
+ IteratorTester.basicIteratorRandom(target.listIterator(), 0, list1.values());
|
|
|
|
|
+
|
|
|
|
|
+ list2.into(target);
|
|
|
|
|
+
|
|
|
|
|
+ IteratorTester.basicIteratorRandom(target.listIterator(), 0, list2.values());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @InterfaceTest
|
|
|
|
|
+ public void basicIteratorFrom(List<T> target) {
|
|
|
|
|
+ TItems<T> list1 = $list.list();
|
|
|
|
|
+ TItems<T> list2 = $list.list(3, 4, 5, 6, 7);
|
|
|
|
|
+
|
|
|
|
|
+ IteratorTester.basicIteratorRandom(target.listIterator(0), 0, list1.values());
|
|
|
|
|
+
|
|
|
|
|
+ list2.into(target);
|
|
|
|
|
+ IteratorTester.basicIteratorRandom(target.listIterator(2), 2, list2.values());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @InterfaceTest
|
|
|
|
|
+ public void basicIterator_Remove(List<T> target) {
|
|
|
|
|
+ assertEquals(0, target.size());
|
|
|
|
|
+
|
|
|
|
|
+ $list.list(1,2,3,5).into(target);
|
|
|
|
|
+ T v1 = $list.item(1).value();
|
|
|
|
|
+ T v2 = $list.item(3).value();
|
|
|
|
|
+
|
|
|
|
|
+ Iterator<T> iterator = target.iterator();
|
|
|
|
|
+ while(iterator.hasNext()) {
|
|
|
|
|
+ T var = iterator.next();
|
|
|
|
|
+ if(v1.equals(var)) {
|
|
|
|
|
+ iterator.remove();
|
|
|
|
|
+ }
|
|
|
|
|
+ if(v2.equals(var)) {
|
|
|
|
|
+ iterator.remove();
|
|
|
|
|
+ assertThrows(IllegalStateException.class, ()-> iterator.remove());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ assertEquals(2, target.size());
|
|
|
|
|
+ assertEquals(-1, target.indexOf(v1));
|
|
|
|
|
+ assertEquals(-1, target.indexOf(v2));
|
|
|
|
|
+ assertEquals($values(2,5), target);
|
|
|
|
|
+
|
|
|
|
|
+ target.clear();
|
|
|
|
|
+ assertEquals(0, target.size());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @InterfaceTest
|
|
|
|
|
+ public void basicIterator_Set(List<T> target) {
|
|
|
|
|
+ assertEquals(0, target.size());
|
|
|
|
|
+
|
|
|
|
|
+ $list.list(1,2,3,5).into(target);
|
|
|
|
|
+ T v1 = $list.item(1).value();
|
|
|
|
|
+ T v2 = $list.item(3).value();
|
|
|
|
|
+
|
|
|
|
|
+ ListIterator<T> iterator = target.listIterator();
|
|
|
|
|
+
|
|
|
|
|
+ assertThrows(IllegalStateException.class, ()->{
|
|
|
|
|
+ iterator.set($list.item(41).value());
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ while(iterator.hasNext()) {
|
|
|
|
|
+ T var = iterator.next();
|
|
|
|
|
+ if(v1.equals(var)) {
|
|
|
|
|
+ iterator.set($list.item(21).value());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(v2.equals(var)) {
|
|
|
|
|
+ iterator.set($list.item(31).value());
|
|
|
|
|
+ iterator.set($list.item(32).value());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ assertEquals($values(21,2,32,5), target);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ @InterfaceTest
|
|
|
|
|
+ public void basicIterator_Add(List<T> target) {
|
|
|
|
|
+ assertEquals(0, target.size());
|
|
|
|
|
+
|
|
|
|
|
+ $list.list(1,2,3,5).into(target);
|
|
|
|
|
+ T v1 = $list.item(1).value();
|
|
|
|
|
+ T v2 = $list.item(3).value();
|
|
|
|
|
+
|
|
|
|
|
+ ListIterator<T> iterator = target.listIterator();
|
|
|
|
|
+
|
|
|
|
|
+ iterator.add($list.item(41).value());
|
|
|
|
|
+
|
|
|
|
|
+ while(iterator.hasNext()) {
|
|
|
|
|
+ T var = iterator.next();
|
|
|
|
|
+ if(v1.equals(var)) {
|
|
|
|
|
+ iterator.add($list.item(21).value());
|
|
|
|
|
+ }
|
|
|
|
|
+ if(v2.equals(var)) {
|
|
|
|
|
+ iterator.add($list.item(31).value());
|
|
|
|
|
+ iterator.add($list.item(32).value());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ assertEquals($values(41, 1, 21, 2, 3, 31, 32, 5), target);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
@InterfaceTest
|
|
@InterfaceTest
|
|
|
public void nestedSublistTest(Supplier<List<T>> target) {
|
|
public void nestedSublistTest(Supplier<List<T>> target) {
|
|
|
if(!$nest) {
|
|
if(!$nest) {
|