// Path: flagz-java/src/test/java/org/flagz/testclasses/SomeEnum.java
// public enum SomeEnum {
//   CRAZY,
//   WACKY,
//   NORMAL,
//   CHILLED,
// }


import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.flagz.testclasses.SomeEnum;
import org.junit.Test;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
package org.flagz;




/**
 * Tests of flags of primitive types.
 *
 * **Note:** All flags are declared in-object, and the `this` object is passed to Flagz to find these fields. We are not
 * testing the ability of Flagz to resolve fields, just value parsing.
 */
public class PrimitiveFlagFieldTest {

  public static final String[] EMPTY_ARGS = {};
  public static final List<String> EMPTY_PACKAGE_PREFIXES = ImmutableList.of();

  @Retention(RetentionPolicy.RUNTIME)
  public @interface CustomAnnotation {}

  @Retention(RetentionPolicy.RUNTIME)
  public @interface OtherCustomAnnotation {}

  @FlagInfo(name = "test_int_flag", help = "")
  final Flag<Integer> integerFlag = Flagz.valueOf(1337);

  @FlagInfo(name = "test_long_flag", help = "")
  final Flag<Long> longFlag = Flagz.valueOf(13371337L);

  @FlagInfo(name = "test_double_flag", help = "")
  final Flag<Double> doubleFlag = Flagz.valueOf(13.37);

  @FlagInfo(name = "test_float_flag", help = "")
  final Flag<Float> floatFlag = Flagz.valueOf((float) 13.37);

  @FlagInfo(name = "test_bool_flag", help = "")
  final Flag<Boolean> booleanFlag = Flagz.valueOf(false);

  @FlagInfo(name = "test_string_flag", help = "")
  final Flag<String> stringFlag = Flagz.valueOf("elite");

  @FlagInfo(name = "test_short_flag", help = "")
  final Flag<Short> shortFlag = Flagz.valueOf((short) 13);

  @FlagInfo(name = "test_byte_flag", help = "")
  final Flag<Byte> byteFlag = Flagz.valueOf((byte) 0xDD);

  @FlagInfo(name = "test_enum_flag", help = "")
// Path: flagz-java/src/test/java/org/flagz/testclasses/SomeEnum.java
// public enum SomeEnum {
//   CRAZY,
//   WACKY,
//   NORMAL,
//   CHILLED,
// }


// Path: flagz-java/src/test/java/org/flagz/PrimitiveFlagFieldTest.java
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import org.flagz.testclasses.SomeEnum;
import org.junit.Test;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

package org.flagz;




/**
 * Tests of flags of primitive types.
 *
 * **Note:** All flags are declared in-object, and the `this` object is passed to Flagz to find these fields. We are not
 * testing the ability of Flagz to resolve fields, just value parsing.
 */
public class PrimitiveFlagFieldTest {

  public static final String[] EMPTY_ARGS = {};
  public static final List<String> EMPTY_PACKAGE_PREFIXES = ImmutableList.of();

  @Retention(RetentionPolicy.RUNTIME)
  public @interface CustomAnnotation {}

  @Retention(RetentionPolicy.RUNTIME)
  public @interface OtherCustomAnnotation {}

  @FlagInfo(name = "test_int_flag", help = "")
  final Flag<Integer> integerFlag = Flagz.valueOf(1337);

  @FlagInfo(name = "test_long_flag", help = "")
  final Flag<Long> longFlag = Flagz.valueOf(13371337L);

  @FlagInfo(name = "test_double_flag", help = "")
  final Flag<Double> doubleFlag = Flagz.valueOf(13.37);

  @FlagInfo(name = "test_float_flag", help = "")
  final Flag<Float> floatFlag = Flagz.valueOf((float) 13.37);

  @FlagInfo(name = "test_bool_flag", help = "")
  final Flag<Boolean> booleanFlag = Flagz.valueOf(false);

  @FlagInfo(name = "test_string_flag", help = "")
  final Flag<String> stringFlag = Flagz.valueOf("elite");

  @FlagInfo(name = "test_short_flag", help = "")
  final Flag<Short> shortFlag = Flagz.valueOf((short) 13);

  @FlagInfo(name = "test_byte_flag", help = "")
  final Flag<Byte> byteFlag = Flagz.valueOf((byte) 0xDD);

  @FlagInfo(name = "test_enum_flag", help = "")
  final Flag<SomeEnum> enumFlag = Flagz.valueOf(SomeEnum.NORMAL);