Skip to content

Commit

Permalink
Add unit tests to support toStack implmentation
Browse files Browse the repository at this point in the history
Signed-off-by: Dinesh Purushothamacharya <[email protected]>
  • Loading branch information
DineshPurushothamacharya committed Apr 21, 2022
1 parent 4629898 commit fc9b1a0
Show file tree
Hide file tree
Showing 21 changed files with 117 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,8 @@ public interface Ordered<name>Iterable extends <name>Iterable

/**
* Converts the collection to a <name>Stack.
*
* @since 11.0.
*/
default Mutable<name>Stack toStack()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -405,7 +405,7 @@ final class Immutable<name>EmptyList implements Immutable<name>List, Serializabl
@Override
public Mutable<name>Stack toStack()
{
return <name>Stacks.mutable.withAll(this);
return <name>Stacks.mutable.empty();
}
<if(primitive.specializedStream)>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,7 @@ final class Immutable<name>SingletonList implements Immutable<name>List, Seriali
@Override
public Mutable<name>Stack toStack()
{
return <name>Stacks.mutable.withAll(this);
return <name>Stacks.mutable.with(this.element1);
}
<if(primitive.specializedStream)>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -184,7 +184,7 @@ final class Immutable<name>ArrayStack extends Abstract<name>Stack
@Override
public Mutable<name>Stack toStack()
{
return <name>Stacks.mutable.withAll(this);
return <name>Stacks.mutable.withAllReversed(this);
}

private static class Immutable<name>StackSerializationProxy implements Externalizable
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ final class Immutable<name>EmptyStack implements Immutable<name>Stack, Serializa
@Override
public Mutable<name>Stack toStack()
{
return <name>Stacks.mutable.withAll(this);
return <name>Stacks.mutable.empty();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -415,7 +415,7 @@ final class Immutable<name>SingletonStack implements Immutable<name>Stack, Seria
@Override
public Mutable<name>Stack toStack()
{
return <name>Stacks.mutable.withAll(this);
return <name>Stacks.mutable.with(this.element1);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ public class <name>ArrayStack extends Abstract<name>Stack
@Override
public Mutable<name>Stack toStack()
{
return <name>Stacks.mutable.withAll(this);
return <name>Stacks.mutable.withAllReversed(this);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -595,7 +595,10 @@ public class Synchronized<name>Stack
@Override
public Mutable<name>Stack toStack()
{
return <name>Stacks.mutable.withAll(this);
synchronized (this.lock)
{
return this.stack.toStack();
}
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -385,7 +385,7 @@ public class Unmodifiable<name>Stack
@Override
public Mutable<name>Stack toStack()
{
return <name>Stacks.mutable.withAll(this);
return this.stack.toStack();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ body(type, wrapperName, name) ::= <<
package org.eclipse.collections.impl.list.immutable.primitive;

import org.eclipse.collections.api.list.primitive.Immutable<name>List;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Lists;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.eclipse.collections.impl.list.mutable.primitive.<name>ArrayList;
import org.eclipse.collections.impl.test.Verify;
import org.junit.Assert;
Expand Down Expand Up @@ -95,6 +97,14 @@ public class Immutable<name>ArrayListTest extends AbstractImmutable<name>ListTes
Assert.assertEquals(4, list.binarySearch(<(literal.(type))("9")>));
Assert.assertEquals(-6, list.binarySearch(<(literal.(type))("10")>));
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.withAll(this.classUnderTest());
Assert.assertEquals(stack, this.classUnderTest().toStack());
}

}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import java.util.NoSuchElementException;
import org.eclipse.collections.api.<name>Iterable;
import org.eclipse.collections.api.collection.primitive.Immutable<name>Collection;
import org.eclipse.collections.api.list.primitive.Immutable<name>List;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.block.factory.primitive.<name>Predicates;
import org.eclipse.collections.impl.math.Mutable<wrapperName>;
import org.eclipse.collections.impl.factory.primitive.<name>Lists;
Expand Down Expand Up @@ -225,6 +226,13 @@ public class Immutable<name>EmptyListTest extends AbstractImmutable<name>ListTes
Assert.assertEquals(-1, this.classUnderTest().binarySearch(<(literal.(type))("100")>));
Assert.assertEquals(-1, this.classUnderTest().binarySearch(<(literal.(type))("-1")>));
}

@Test
public void toStack()
{
Mutable<name>Stack stack = new Immutable<name>EmptyList().toStack();
Assert.assertTrue(stack.isEmpty());
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,9 @@ body(type, wrapperName, name) ::= <<
package org.eclipse.collections.impl.list.immutable.primitive;

import org.eclipse.collections.api.list.primitive.Immutable<name>List;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Lists;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.eclipse.collections.impl.math.Mutable<wrapperName>;
import org.junit.Assert;
import org.junit.Test;
Expand Down Expand Up @@ -102,6 +104,13 @@ public class Immutable<name>SingletonListTest extends AbstractImmutable<name>Lis
Assert.assertEquals(0, this.classUnderTest().binarySearch(<(literal.(type))("1")>));
Assert.assertEquals(-2, this.classUnderTest().binarySearch(<(literal.(type))("5")>));
}

@Test
public void toStack()
{
Mutable<name>Stack stack = this.classUnderTest().toStack();
Assert.assertEquals(stack, <name>Stacks.mutable.with(<(literal.(type))("1")>));
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@ package org.eclipse.collections.impl.list.mutable.primitive;

import java.lang.reflect.Field;

import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Lists;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.eclipse.collections.impl.test.Verify;
import org.eclipse.collections.impl.utility.internal.primitive.<name>IterableIterate;
import org.eclipse.collections.impl.utility.internal.primitive.<name>IteratorIterate;
Expand Down Expand Up @@ -169,6 +171,13 @@ public class <name>ArrayListTest extends Abstract<name>ListTestCase
list.removeAtIndex(0);
Assert.assertEquals(list, list.toImmutable());
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.withAll(this.classUnderTest());
Assert.assertEquals(stack, this.classUnderTest().toStack());
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ body(type, wrapperName, name) ::= <<
package org.eclipse.collections.impl.list.mutable.primitive;

import org.eclipse.collections.api.list.primitive.Mutable<name>List;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.junit.Assert;
import org.junit.Test;

Expand Down Expand Up @@ -51,6 +53,13 @@ public class Synchronized<name>ListTest extends Abstract<name>ListTestCase
Assert.assertSame(list, list.asSynchronized());
Assert.assertEquals(list, list.asSynchronized());
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.withAll(this.classUnderTest());
Assert.assertEquals(stack, this.classUnderTest().toStack());
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ import java.util.NoSuchElementException;

import org.eclipse.collections.api.iterator.<name>Iterator;
import org.eclipse.collections.api.iterator.Mutable<name>Iterator;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
<if(!primitive.booleanPrimitive)>import org.eclipse.collections.impl.block.factory.Comparators;<endif>
import org.eclipse.collections.impl.block.factory.primitive.<name>Predicates;
import org.junit.Assert;
Expand Down Expand Up @@ -379,6 +381,13 @@ public class Unmodifiable<name>ListTest extends Abstract<name>ListTestCase
{
// Not applicable for Unmodifiable*
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.withAll(<name>ArrayList.newListWith(<["1", "2", "3"]:(literal.(type))(); separator=", ">));
Assert.assertEquals(stack, this.classUnderTest().toStack());
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ body(type, wrapperName, name) ::= <<
package org.eclipse.collections.impl.stack.immutable.primitive;

import org.eclipse.collections.api.stack.primitive.Immutable<name>Stack;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.eclipse.collections.impl.list.mutable.primitive.<name>ArrayList;
import org.eclipse.collections.impl.math.Mutable<wrapperName>;
Expand Down Expand Up @@ -67,6 +68,13 @@ public class Immutable<name>ArrayStackTest extends AbstractImmutable<name>StackT
Mutable<wrapperName> result = iterable.injectInto(new Mutable<wrapperName>(<(literal.(type))("0")>), Mutable<wrapperName>::add);
Assert.assertEquals(new Mutable<wrapperName>(<(literal.(type))("6")>), result);
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.withAllReversed(<name>ArrayStack.newStackWith(<["1", "2", "3"]:(literal.(type))(); separator=", ">));
Assert.assertEquals(<name>ArrayStack.newStackWith(<["1", "2", "3"]:(literal.(type))(); separator=", ">).toStack(), stack);
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@ import java.util.NoSuchElementException;

import org.eclipse.collections.api.iterator.<name>Iterator;
import org.eclipse.collections.api.stack.primitive.Immutable<name>Stack;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.eclipse.collections.impl.list.mutable.primitive.<name>ArrayList;
import org.eclipse.collections.impl.math.Mutable<wrapperName>;
import org.eclipse.collections.impl.test.Verify;
Expand Down Expand Up @@ -175,6 +177,14 @@ public class Immutable<name>EmptyStackTest extends AbstractImmutable<name>StackT
Mutable<wrapperName> result = iterable.injectInto(new Mutable<wrapperName>(<(literal.(type))("0")>), Mutable<wrapperName>::add);
Assert.assertEquals(new Mutable<wrapperName>(<(literal.(type))("0")>), result);
}

@Test
public void toStack()
{
Mutable<name>Stack stack = this.classUnderTest().toStack();
Assert.assertTrue(stack.isEmpty());
Assert.assertEquals(<name>Stacks.mutable.empty(), stack);
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ package org.eclipse.collections.impl.stack.immutable.primitive;

import org.eclipse.collections.api.<name>Iterable;
import org.eclipse.collections.api.stack.primitive.Immutable<name>Stack;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.block.factory.primitive.<name>Predicates;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.eclipse.collections.impl.list.mutable.primitive.<name>ArrayList;
import org.eclipse.collections.impl.math.Mutable<wrapperName>;
import org.eclipse.collections.impl.stack.mutable.primitive.<name>ArrayStack;
Expand Down Expand Up @@ -112,6 +114,13 @@ public class Immutable<name>SingletonStackTest extends AbstractImmutable<name>St
Mutable<wrapperName> result = iterable.injectInto(new Mutable<wrapperName>(<(literal.(type))("1")>), Mutable<wrapperName>::add);
Assert.assertEquals(new Mutable<wrapperName>(<(literal.(type))("2")>), result);
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.with(<(literal.(type))("1")>);
Assert.assertEquals(stack, this.classUnderTest().toStack());
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,13 @@ public class <name>ArrayStackTest extends AbstractMutable<name>StackTestCase
{
Verify.assertClassNonInstantiable(<name>Stacks.class);
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.with(<["1", "2", "3"]:(literal.(type))(); separator=", ">);
Assert.assertEquals(stack, this.classUnderTest().toStack());
}
}

>>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package org.eclipse.collections.impl.stack.mutable.primitive;

import org.eclipse.collections.api.<name>Iterable;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.junit.Assert;
import org.junit.Test;

Expand Down Expand Up @@ -71,6 +72,13 @@ public class Synchronized<name>StackTest extends AbstractMutable<name>StackTestC
Assert.assertEquals(stack1, stack1.asSynchronized());
Assert.assertSame(stack1, stack1.asSynchronized());
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.with(<["1", "2", "3"]:(literal.(type))(); separator=", ">);
Assert.assertEquals(stack, this.classUnderTest().toStack());
}
}

>>
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package org.eclipse.collections.impl.stack.mutable.primitive;

import org.eclipse.collections.api.iterator.Mutable<name>Iterator;
import org.eclipse.collections.api.stack.primitive.Mutable<name>Stack;
import org.eclipse.collections.impl.factory.primitive.<name>Stacks;
import org.eclipse.collections.impl.stack.primitive.Abstract<name>StackTestCase;
import org.eclipse.collections.impl.test.Verify;
import org.junit.Assert;
Expand Down Expand Up @@ -110,6 +111,13 @@ public class Unmodifiable<name>StackTest extends Abstract<name>StackTestCase
Assert.assertTrue(iterator.hasNext());
Assert.assertThrows(UnsupportedOperationException.class, iterator::remove);
}

@Test
public void toStack()
{
Mutable<name>Stack stack = <name>Stacks.mutable.with(<["1", "2", "3"]:(literal.(type))(); separator=", ">);
Assert.assertEquals(stack, this.classUnderTest().toStack());
}
}

>>

0 comments on commit fc9b1a0

Please sign in to comment.