// Path: cts-java/src/test/java/org/ga4gh/cts/api/Utils.java
// public static <T> List<T> aSingle(T s) {
//     return Collections.singletonList(s);
// }


import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multiset;
import com.google.common.collect.SetMultimap;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import ga4gh.References.ReferenceSet;
import static org.ga4gh.cts.api.Utils.aSingle;
package org.ga4gh.cts.api;






/**
 * This class defines important constants that pertain to and describe the official test data.
 * It contains no methods and you cannot instantiate it.
 *
 * @author Herb Jellinek
 */
public class TestData {

    /**
     * You can't instantiate one of these.
     */
    private TestData() {
    }

    /**
     * The default ID of the dataset that holds the test data.  We use something readable so the
     * meaning is clear, but in reality the value of this is unlikely to be human-readable.
     */
    public static final String DEFAULT_DATASET_ID = "compliance-dataset" ;

    /**
     * The name of the Java system property that sets the ID of the compliance dataset.
     */
    private static final String DATASET_PROP_NAME = "ctk.tgt.dataset_id";

    /**
     * The name of the reference in the standard test data.
     */
    public static final String REFERENCE_NAME = "ref_brca1";

    /**
     * The start of the reference data.
     */
    public static final long REFERENCE_START = 0;

    /**
     * The end of the reference data.
     */
    public static final long REFERENCE_END = 81187;

    /**
     * The name of the reference used for variant annotation in the standard test data.
     */
    public static final String VARIANT_ANNOTATION_REFERENCE_NAME = "1";


    /**
     * The names of the variant annotation sets used for variant annotation in the standard test data.
     */
    public static final List<String> VARIANT_ANNOTATION_SET_NAMES =
            Arrays.asList("WASH7P", "OR4F");

    /**
     * The names of known-good read groups.
     */
    public static final SetMultimap<String, String> EXPECTED_READGROUPSET_READGROUP_NAMES =
            HashMultimap.create();

    static {
        EXPECTED_READGROUPSET_READGROUP_NAMES.putAll("HG00096",
                                                     Arrays.asList("SRR062634",
                                                                   "SRR062635",
                                                                   "SRR062641"));
        EXPECTED_READGROUPSET_READGROUP_NAMES.putAll("HG00099",
                                                     Arrays.asList("SRR741411",
                                                                   "SRR741412"));
        //noinspection ArraysAsListWithZeroOrOneArgument
        EXPECTED_READGROUPSET_READGROUP_NAMES.putAll("HG00101",
                                                     Arrays.asList("ERR229776"));
    }

    /**
     * The names of the readgroup sets in the standard compliance dataset.
     */
    public static final Multiset<String> EXPECTED_READGROUPSETS_NAMES =
            EXPECTED_READGROUPSET_READGROUP_NAMES.keys();

    /**
     * The names of all known {@link ga4gh.Reads.ReadGroup} objects, obtained from
     * {@link #EXPECTED_READGROUPSET_READGROUP_NAMES}.
     */
    public static final List<String> EXPECTED_READGROUP_NAMES =
            new ArrayList<>(EXPECTED_READGROUPSET_READGROUP_NAMES.values());

    /**
     * The AssemblyID (really, a name) of the test {@link ReferenceSet}.
     */
    public static final String REFERENCESET_ASSEMBLY_ID = "hg37";

    /**
     * Accession "numbers" (names, really) for the test {@link ReferenceSet}.
     */
// Path: cts-java/src/test/java/org/ga4gh/cts/api/Utils.java
// public static <T> List<T> aSingle(T s) {
//     return Collections.singletonList(s);
// }


// Path: cts-java/src/test/java/org/ga4gh/cts/api/TestData.java
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multiset;
import com.google.common.collect.SetMultimap;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import ga4gh.References.ReferenceSet;
import static org.ga4gh.cts.api.Utils.aSingle;

package org.ga4gh.cts.api;






/**
 * This class defines important constants that pertain to and describe the official test data.
 * It contains no methods and you cannot instantiate it.
 *
 * @author Herb Jellinek
 */
public class TestData {

    /**
     * You can't instantiate one of these.
     */
    private TestData() {
    }

    /**
     * The default ID of the dataset that holds the test data.  We use something readable so the
     * meaning is clear, but in reality the value of this is unlikely to be human-readable.
     */
    public static final String DEFAULT_DATASET_ID = "compliance-dataset" ;

    /**
     * The name of the Java system property that sets the ID of the compliance dataset.
     */
    private static final String DATASET_PROP_NAME = "ctk.tgt.dataset_id";

    /**
     * The name of the reference in the standard test data.
     */
    public static final String REFERENCE_NAME = "ref_brca1";

    /**
     * The start of the reference data.
     */
    public static final long REFERENCE_START = 0;

    /**
     * The end of the reference data.
     */
    public static final long REFERENCE_END = 81187;

    /**
     * The name of the reference used for variant annotation in the standard test data.
     */
    public static final String VARIANT_ANNOTATION_REFERENCE_NAME = "1";


    /**
     * The names of the variant annotation sets used for variant annotation in the standard test data.
     */
    public static final List<String> VARIANT_ANNOTATION_SET_NAMES =
            Arrays.asList("WASH7P", "OR4F");

    /**
     * The names of known-good read groups.
     */
    public static final SetMultimap<String, String> EXPECTED_READGROUPSET_READGROUP_NAMES =
            HashMultimap.create();

    static {
        EXPECTED_READGROUPSET_READGROUP_NAMES.putAll("HG00096",
                                                     Arrays.asList("SRR062634",
                                                                   "SRR062635",
                                                                   "SRR062641"));
        EXPECTED_READGROUPSET_READGROUP_NAMES.putAll("HG00099",
                                                     Arrays.asList("SRR741411",
                                                                   "SRR741412"));
        //noinspection ArraysAsListWithZeroOrOneArgument
        EXPECTED_READGROUPSET_READGROUP_NAMES.putAll("HG00101",
                                                     Arrays.asList("ERR229776"));
    }

    /**
     * The names of the readgroup sets in the standard compliance dataset.
     */
    public static final Multiset<String> EXPECTED_READGROUPSETS_NAMES =
            EXPECTED_READGROUPSET_READGROUP_NAMES.keys();

    /**
     * The names of all known {@link ga4gh.Reads.ReadGroup} objects, obtained from
     * {@link #EXPECTED_READGROUPSET_READGROUP_NAMES}.
     */
    public static final List<String> EXPECTED_READGROUP_NAMES =
            new ArrayList<>(EXPECTED_READGROUPSET_READGROUP_NAMES.values());

    /**
     * The AssemblyID (really, a name) of the test {@link ReferenceSet}.
     */
    public static final String REFERENCESET_ASSEMBLY_ID = "hg37";

    /**
     * Accession "numbers" (names, really) for the test {@link ReferenceSet}.
     */
    public static final List<String> REFERENCESET_ACCESSIONS = aSingle("GA4GH_CTS_01");