// Path: src/main/java/org/junit/Assert.java
// public static void assertEquals(String message, Object expected,
//         Object actual) {
//     if (equalsRegardingNull(expected, actual)) {
//         return;
//     }
//     if (expected instanceof String && actual instanceof String) {
//         String cleanMessage = message == null ? "" : message;
//         throw new ComparisonFailure(cleanMessage, (String) expected,
//                 (String) actual);
//     } else {
//         failNotEquals(message, expected, actual);
//     }
// }


import static org.junit.Assert.assertEquals;
import static org.junit.tests.experimental.theories.TheoryTestUtils.potentialAssignments;
import org.junit.Test;
import org.junit.experimental.theories.DataPoint;
import org.junit.experimental.theories.Theories;
import org.junit.runner.RunWith;
package org.junit.tests.experimental.theories.runner;


public class WithAutoGeneratedDataPoints {

    private enum ENUM { VALUE, OTHER_VALUE, THIRD_VALUE }
    
    @RunWith(Theories.class)
    public static class TheoryTestClassWithAutogeneratedParameterValues {
        
        public void theory(ENUM e) {
        }
        
        public void theory(boolean b) {
        }
        
    }
    
    @Test
    public void shouldAutomaticallyGenerateEnumDataPoints() throws Throwable {
// Path: src/main/java/org/junit/Assert.java
// public static void assertEquals(String message, Object expected,
//         Object actual) {
//     if (equalsRegardingNull(expected, actual)) {
//         return;
//     }
//     if (expected instanceof String && actual instanceof String) {
//         String cleanMessage = message == null ? "" : message;
//         throw new ComparisonFailure(cleanMessage, (String) expected,
//                 (String) actual);
//     } else {
//         failNotEquals(message, expected, actual);
//     }
// }


// Path: src/test/java/org/junit/tests/experimental/theories/runner/WithAutoGeneratedDataPoints.java
import static org.junit.Assert.assertEquals;
import static org.junit.tests.experimental.theories.TheoryTestUtils.potentialAssignments;
import org.junit.Test;
import org.junit.experimental.theories.DataPoint;
import org.junit.experimental.theories.Theories;
import org.junit.runner.RunWith;

package org.junit.tests.experimental.theories.runner;


public class WithAutoGeneratedDataPoints {

    private enum ENUM { VALUE, OTHER_VALUE, THIRD_VALUE }
    
    @RunWith(Theories.class)
    public static class TheoryTestClassWithAutogeneratedParameterValues {
        
        public void theory(ENUM e) {
        }
        
        public void theory(boolean b) {
        }
        
    }
    
    @Test
    public void shouldAutomaticallyGenerateEnumDataPoints() throws Throwable {
        assertEquals(ENUM.values().length, potentialAssignments(