Refactor of the Project on Github.

-Added: Better System to decide what code should be generated.
-Added: Unit Tests are now included in the main branch.
-Added: Automatic System to test the main branch and ensure that tests work.
-Added: Pull Requests now run tests too.
This commit is contained in:
2022-06-14 08:55:40 +02:00
parent ddc58ee221
commit fb7c417394
186 changed files with 19991 additions and 77 deletions
@@ -0,0 +1,30 @@
package speiger.src.testers.PACKAGE.generators;
import java.util.List;
import com.google.common.collect.testing.SampleElements;
import com.google.common.collect.testing.TestCollectionGenerator;
import speiger.src.collections.PACKAGE.collections.COLLECTION;
import speiger.src.collections.PACKAGE.collections.ITERABLE;
import speiger.src.collections.PACKAGE.lists.LIST;
import speiger.src.testers.PACKAGE.utils.SAMPLE_ELEMENTS;
@SuppressWarnings("javadoc")
public interface TEST_COLLECTION_GENERATOR KEY_GENERIC_TYPE extends TestCollectionGenerator<CLASS_TYPE>
{
public SAMPLE_ELEMENTS KEY_GENERIC_TYPE getSamples();
#if !TYPE_OBJECT
public COLLECTION KEY_GENERIC_TYPE create(KEY_TYPE...elements);
#endif
public ITERABLE KEY_GENERIC_TYPE order(LIST KEY_GENERIC_TYPE insertionOrder);
@Override
public default SampleElements<CLASS_TYPE> samples() {return getSamples().toSamples();}
@Override
public COLLECTION KEY_GENERIC_TYPE create(Object... elements);
@Override
public default CLASS_TYPE[] createArray(int length) { return NEW_CLASS_ARRAY(length); }
@Override
public Iterable<CLASS_TYPE> order(List<CLASS_TYPE> insertionOrder);
}
@@ -0,0 +1,16 @@
package speiger.src.testers.PACKAGE.generators;
import com.google.common.collect.testing.TestListGenerator;
import speiger.src.collections.PACKAGE.lists.LIST;
@SuppressWarnings("javadoc")
public interface TEST_LIST_GENERATOR KEY_GENERIC_TYPE extends TestListGenerator<CLASS_TYPE>, TEST_COLLECTION_GENERATOR KEY_GENERIC_TYPE
{
@Override
LIST KEY_GENERIC_TYPE create(Object... elements);
#if !TYPE_OBJECT
@Override
LIST KEY_GENERIC_TYPE create(KEY_TYPE... elements);
#endif
}
@@ -0,0 +1,13 @@
package speiger.src.testers.PACKAGE.generators;
import speiger.src.collections.PACKAGE.sets.NAVIGABLE_SET;
@SuppressWarnings("javadoc")
public interface TEST_NAVIGABLE_SET_GENERATOR KEY_GENERIC_TYPE extends TEST_SORTED_SET_GENERATOR KEY_GENERIC_TYPE {
#if !TYPE_OBJECT
@Override
NAVIGABLE_SET KEY_GENERIC_TYPE create(KEY_TYPE... elements);
#endif
@Override
NAVIGABLE_SET KEY_GENERIC_TYPE create(Object... elements);
}
@@ -0,0 +1,13 @@
package speiger.src.testers.PACKAGE.generators;
import speiger.src.collections.PACKAGE.sets.ORDERED_SET;
@SuppressWarnings("javadoc")
public interface TEST_ORDERED_SET_GENERATOR KEY_GENERIC_TYPE extends TEST_SET_GENERATOR KEY_GENERIC_TYPE {
#if !TYPE_OBJECT
@Override
ORDERED_SET KEY_GENERIC_TYPE create(KEY_TYPE... elements);
#endif
@Override
ORDERED_SET KEY_GENERIC_TYPE create(Object... elements);
}
@@ -0,0 +1,30 @@
package speiger.src.testers.PACKAGE.generators;
import java.util.List;
import com.google.common.collect.testing.SampleElements;
import com.google.common.collect.testing.TestContainerGenerator;
import speiger.src.collections.PACKAGE.queues.PRIORITY_QUEUE;
import speiger.src.collections.PACKAGE.collections.ITERABLE;
import speiger.src.collections.PACKAGE.lists.LIST;
import speiger.src.testers.PACKAGE.utils.SAMPLE_ELEMENTS;
@SuppressWarnings("javadoc")
public interface TEST_QUEUE_GENERATOR KEY_GENERIC_TYPE extends TestContainerGenerator<PRIORITY_QUEUE KEY_GENERIC_TYPE, CLASS_TYPE>
{
public SAMPLE_ELEMENTS KEY_GENERIC_TYPE getSamples();
#if !TYPE_OBJECT
public PRIORITY_QUEUE KEY_GENERIC_TYPE create(KEY_TYPE...elements);
#endif
public ITERABLE KEY_GENERIC_TYPE order(LIST KEY_GENERIC_TYPE insertionOrder);
@Override
public default SampleElements<CLASS_TYPE> samples() {return getSamples().toSamples();}
@Override
public PRIORITY_QUEUE KEY_GENERIC_TYPE create(Object... elements);
@Override
public default CLASS_TYPE[] createArray(int length) { return NEW_CLASS_ARRAY(length); }
@Override
public Iterable<CLASS_TYPE> order(List<CLASS_TYPE> insertionOrder);
}
@@ -0,0 +1,15 @@
package speiger.src.testers.PACKAGE.generators;
import com.google.common.collect.testing.TestSetGenerator;
import speiger.src.collections.PACKAGE.sets.SET;
@SuppressWarnings("javadoc")
public interface TEST_SET_GENERATOR KEY_GENERIC_TYPE extends TEST_COLLECTION_GENERATOR KEY_GENERIC_TYPE, TestSetGenerator<CLASS_TYPE> {
#if !TYPE_OBJECT
@Override
SET KEY_GENERIC_TYPE create(KEY_TYPE...elements);
#endif
@Override
SET KEY_GENERIC_TYPE create(Object...elements);
}
@@ -0,0 +1,38 @@
package speiger.src.testers.PACKAGE.generators;
import speiger.src.collections.PACKAGE.sets.SORTED_SET;
@SuppressWarnings("javadoc")
public interface TEST_SORTED_SET_GENERATOR KEY_GENERIC_TYPE extends TEST_SET_GENERATOR KEY_GENERIC_TYPE {
#if !TYPE_OBJECT
@Override
SORTED_SET KEY_GENERIC_TYPE create(KEY_TYPE... elements);
#endif
@Override
SORTED_SET KEY_GENERIC_TYPE create(Object... elements);
/**
* Returns an element less than the {@link #samples()} and less than {@link
* #belowSamplesGreater()}.
*/
KEY_TYPE belowSamplesLesser();
/**
* Returns an element less than the {@link #samples()} but greater than {@link
* #belowSamplesLesser()}.
*/
KEY_TYPE belowSamplesGreater();
/**
* Returns an element greater than the {@link #samples()} but less than {@link
* #aboveSamplesGreater()}.
*/
KEY_TYPE aboveSamplesLesser();
/**
* Returns an element greater than the {@link #samples()} and greater than {@link
* #aboveSamplesLesser()}.
*/
KEY_TYPE aboveSamplesGreater();
}
@@ -0,0 +1,46 @@
package speiger.src.testers.PACKAGE.generators.maps;
import java.util.Map;
import com.google.common.collect.testing.Helpers;
import com.google.common.collect.testing.SampleElements;
import com.google.common.collect.testing.TestMapGenerator;
import speiger.src.collections.PACKAGE.maps.interfaces.MAP;
import speiger.src.collections.objects.collections.ObjectIterable;
import speiger.src.collections.objects.lists.ObjectList;
import speiger.src.testers.objects.utils.ObjectSamples;
@SuppressWarnings("javadoc")
public interface TEST_MAP_GENERATOR KEY_VALUE_GENERIC_TYPE extends TestMapGenerator<CLASS_TYPE, CLASS_VALUE_TYPE> {
public ObjectSamples<MAP.Entry KEY_VALUE_GENERIC_TYPE> getSamples();
public ObjectIterable<MAP.Entry KEY_VALUE_GENERIC_TYPE> order(ObjectList<MAP.Entry KEY_VALUE_GENERIC_TYPE> insertionOrder);
public MAP KEY_VALUE_GENERIC_TYPE create(MAP.Entry KEY_VALUE_GENERIC_TYPE... elements);
@Override
default MAP KEY_VALUE_GENERIC_TYPE create(Object... elements) {
MAP.Entry KEY_VALUE_GENERIC_TYPE[] result = new MAP.Entry[elements.length];
for(int i = 0;i<elements.length;i++) {
result[i] = (MAP.Entry KEY_VALUE_GENERIC_TYPE) elements[i];
}
return create(result);
}
@Override
default CLASS_TYPE[] createKeyArray(int length) { return NEW_CLASS_ARRAY(length); }
@Override
default CLASS_VALUE_TYPE[] createValueArray(int length) { return NEW_CLASS_VALUE_ARRAY(length); }
@Override
default MAP.Entry KEY_VALUE_GENERIC_TYPE[] createArray(int length) { return new MAP.Entry[length]; }
@Override
default SampleElements<Map.Entry<CLASS_TYPE, CLASS_VALUE_TYPE>> samples() {
ObjectSamples<MAP.Entry KEY_VALUE_GENERIC_TYPE> samples = getSamples();
return new SampleElements<>(
Helpers.mapEntry(samples.e0().ENTRY_KEY(), samples.e0().ENTRY_VALUE()),
Helpers.mapEntry(samples.e1().ENTRY_KEY(), samples.e1().ENTRY_VALUE()),
Helpers.mapEntry(samples.e2().ENTRY_KEY(), samples.e2().ENTRY_VALUE()),
Helpers.mapEntry(samples.e3().ENTRY_KEY(), samples.e3().ENTRY_VALUE()),
Helpers.mapEntry(samples.e4().ENTRY_KEY(), samples.e4().ENTRY_VALUE())
);
}
}
@@ -0,0 +1,13 @@
package speiger.src.testers.PACKAGE.generators.maps;
import speiger.src.collections.PACKAGE.maps.interfaces.MAP;
import speiger.src.collections.PACKAGE.maps.interfaces.ORDERED_MAP;
@SuppressWarnings("javadoc")
public interface TEST_ORDERED_MAP_GENERATOR KEY_VALUE_GENERIC_TYPE extends TEST_MAP_GENERATOR KEY_VALUE_GENERIC_TYPE
{
@Override
default ORDERED_MAP KEY_VALUE_GENERIC_TYPE create(Object... elements) { return (ORDERED_MAP KEY_VALUE_GENERIC_TYPE) TEST_MAP_GENERATOR.super.create(elements); }
@Override
ORDERED_MAP KEY_VALUE_GENERIC_TYPE create(MAP.Entry KEY_VALUE_GENERIC_TYPE... elements);
}
@@ -0,0 +1,25 @@
package speiger.src.testers.PACKAGE.generators.maps;
import com.google.common.collect.testing.TestSortedMapGenerator;
import speiger.src.collections.PACKAGE.maps.interfaces.MAP;
import speiger.src.collections.PACKAGE.maps.interfaces.MAP.Entry;
import speiger.src.collections.PACKAGE.maps.interfaces.SORTED_MAP;
@SuppressWarnings("javadoc")
public interface TEST_SORTED_MAP_GENERATOR KEY_VALUE_GENERIC_TYPE extends TEST_MAP_GENERATOR KEY_VALUE_GENERIC_TYPE, TestSortedMapGenerator<CLASS_TYPE, CLASS_VALUE_TYPE>
{
@Override
default SORTED_MAP KEY_VALUE_GENERIC_TYPE create(Object... elements) { return (SORTED_MAP KEY_VALUE_GENERIC_TYPE) TEST_MAP_GENERATOR.super.create(elements); }
@Override
SORTED_MAP KEY_VALUE_GENERIC_TYPE create(MAP.Entry KEY_VALUE_GENERIC_TYPE... elements);
@Override
Entry KEY_VALUE_GENERIC_TYPE belowSamplesLesser();
@Override
Entry KEY_VALUE_GENERIC_TYPE belowSamplesGreater();
@Override
Entry KEY_VALUE_GENERIC_TYPE aboveSamplesLesser();
@Override
Entry KEY_VALUE_GENERIC_TYPE aboveSamplesGreater();
}