@@ -0,0 +1,2906 @@
+/*%0A * Copyright %C2%A9 2014 %3Ccode@io7m.com%3E http://io7m.com%0A * %0A * Permission to use, copy, modify, and/or distribute this software for any%0A * purpose with or without fee is hereby granted, provided that the above%0A * copyright notice and this permission notice appear in all copies.%0A * %0A * THE SOFTWARE IS PROVIDED %22AS IS%22 AND THE AUTHOR DISCLAIMS ALL WARRANTIES%0A * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF%0A * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY%0A * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES%0A * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN%0A * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR%0A * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.%0A */%0A%0Apackage com.io7m.jfunctional.tests;%0A%0Aimport java.lang.reflect.Modifier;%0Aimport java.util.LinkedList;%0Aimport java.util.List;%0Aimport java.util.Set;%0A%0Aimport org.junit.Assert;%0Aimport org.junit.Test;%0Aimport org.reflections.Reflections;%0Aimport org.reflections.scanners.ResourcesScanner;%0Aimport org.reflections.scanners.SubTypesScanner;%0Aimport org.reflections.util.ClasspathHelper;%0Aimport org.reflections.util.ConfigurationBuilder;%0Aimport org.reflections.util.FilterBuilder;%0A%0Aimport com.io7m.jequality.annotations.EqualityReference;%0Aimport com.io7m.jequality.validator.AnnotationRequirement;%0Aimport com.io7m.jequality.validator.EqualityValidator;%0Aimport com.io7m.jequality.validator.ValidatorResult;%0A%0A@SuppressWarnings(%22static-method%22) @EqualityReference public final class EqualityTest%0A%7B%0A  private static Reflections setupReflections()%0A  %7B%0A    final List%3CClassLoader%3E classLoadersList = new LinkedList%3CClassLoader%3E();%0A    classLoadersList.add(ClasspathHelper.contextClassLoader());%0A    classLoadersList.add(ClasspathHelper.staticClassLoader());%0A%0A    return new Reflections(new ConfigurationBuilder()%0A      .setScanners(%0A        new SubTypesScanner(false /* don't exclude Object.class */),%0A        new ResourcesScanner())%0A      .setUrls(%0A        ClasspathHelper.forClassLoader(classLoadersList%0A          .toArray(new ClassLoader%5B0%5D)))%0A      .filterInputsBy(%0A        new FilterBuilder().include(FilterBuilder%0A          .prefix(%22com.io7m.jfunctional%22))));%0A  %7D%0A%0A  @Test public void testEqualites()%0A  %7B%0A    final Reflections ref = EqualityTest.setupReflections();%0A    final Set%3CClass%3C? extends Object%3E%3E types =%0A      ref.getSubTypesOf(Object.class);%0A%0A    for (final Class%3C? extends Object%3E c : types) %7B%0A      assert c != null;%0A%0A      System.out.printf(%22Checking %25s%5Cn%22, c.getCanonicalName());%0A      System.out.flush();%0A%0A      if (Modifier.isInterface(c.getModifiers())) %7B%0A        continue;%0A      %7D%0A      if (c.isAnonymousClass()) %7B%0A        continue;%0A      %7D%0A%0A      Assert.assertEquals(ValidatorResult.VALIDATION_OK, EqualityValidator%0A        .validateClass(c, AnnotationRequirement.ANNOTATIONS_REQUIRED, true));%0A    %7D%0A  %7D%0A%7D%0A

Add missing equality test