// Path: src/test/java/com/squareup/protoparser/TestUtils.java
// @SafeVarargs
// static <T> List<T> list(T... values) {
//   return Arrays.asList(values);
// }
// 
// Path: src/test/java/com/squareup/protoparser/TestUtils.java
// static Map<String, Object> map(Object... keysAndValues) {
//   Map<String, Object> result = new LinkedHashMap<>();
//   for (int i = 0; i < keysAndValues.length; i += 2) {
//     result.put((String) keysAndValues[i], keysAndValues[i + 1]);
//   }
//   return result;
// }


import java.util.List;
import java.util.Map;
import org.junit.Test;
import static com.squareup.protoparser.OptionElement.Kind.BOOLEAN;
import static com.squareup.protoparser.OptionElement.Kind.LIST;
import static com.squareup.protoparser.OptionElement.Kind.MAP;
import static com.squareup.protoparser.OptionElement.Kind.OPTION;
import static com.squareup.protoparser.OptionElement.Kind.STRING;
import static com.squareup.protoparser.TestUtils.list;
import static com.squareup.protoparser.TestUtils.map;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.data.MapEntry.entry;
import static org.junit.Assert.fail;
    assertThat(optionMap).contains( //
        entry("foo", "bar"), //
        entry("ping", list( //
            OptionElement.create("kit", STRING, "kat"), //
            OptionElement.create("tic", STRING, "tac"), //
            OptionElement.create("up", STRING, "down") //
        )), //
        entry("wire", map( //
            "omar", "little", //
            "proposition", "joe" //
        )), //
        entry("nested.option", map( //
            "one", "two", //
            "three", "four" //
        )) //
    );
  }

  @Test public void findInList() {
    OptionElement one = OptionElement.create("one", STRING, "1");
    OptionElement two = OptionElement.create("two", STRING, "2");
    OptionElement three = OptionElement.create("three", STRING, "3");
    List<OptionElement> options = list(one, two, three);
    assertThat(OptionElement.findByName(options, "one")).isSameAs(one);
    assertThat(OptionElement.findByName(options, "two")).isSameAs(two);
    assertThat(OptionElement.findByName(options, "three")).isSameAs(three);
  }

  @Test public void findInListMissing() {
    OptionElement one = OptionElement.create("one", STRING, "1");
// Path: src/test/java/com/squareup/protoparser/TestUtils.java
// @SafeVarargs
// static <T> List<T> list(T... values) {
//   return Arrays.asList(values);
// }
// 
// Path: src/test/java/com/squareup/protoparser/TestUtils.java
// static Map<String, Object> map(Object... keysAndValues) {
//   Map<String, Object> result = new LinkedHashMap<>();
//   for (int i = 0; i < keysAndValues.length; i += 2) {
//     result.put((String) keysAndValues[i], keysAndValues[i + 1]);
//   }
//   return result;
// }


// Path: src/test/java/com/squareup/protoparser/OptionElementTest.java
import java.util.List;
import java.util.Map;
import org.junit.Test;
import static com.squareup.protoparser.OptionElement.Kind.BOOLEAN;
import static com.squareup.protoparser.OptionElement.Kind.LIST;
import static com.squareup.protoparser.OptionElement.Kind.MAP;
import static com.squareup.protoparser.OptionElement.Kind.OPTION;
import static com.squareup.protoparser.OptionElement.Kind.STRING;
import static com.squareup.protoparser.TestUtils.list;
import static com.squareup.protoparser.TestUtils.map;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.data.MapEntry.entry;
import static org.junit.Assert.fail;

    assertThat(optionMap).contains( //
        entry("foo", "bar"), //
        entry("ping", list( //
            OptionElement.create("kit", STRING, "kat"), //
            OptionElement.create("tic", STRING, "tac"), //
            OptionElement.create("up", STRING, "down") //
        )), //
        entry("wire", map( //
            "omar", "little", //
            "proposition", "joe" //
        )), //
        entry("nested.option", map( //
            "one", "two", //
            "three", "four" //
        )) //
    );
  }

  @Test public void findInList() {
    OptionElement one = OptionElement.create("one", STRING, "1");
    OptionElement two = OptionElement.create("two", STRING, "2");
    OptionElement three = OptionElement.create("three", STRING, "3");
    List<OptionElement> options = list(one, two, three);
    assertThat(OptionElement.findByName(options, "one")).isSameAs(one);
    assertThat(OptionElement.findByName(options, "two")).isSameAs(two);
    assertThat(OptionElement.findByName(options, "three")).isSameAs(three);
  }

  @Test public void findInListMissing() {
    OptionElement one = OptionElement.create("one", STRING, "1");
    OptionElement two = OptionElement.create("two", STRING, "2");