// Path: gsonvalue/src/test/java/me/tatarka/gsonvalue/model/adapterfactory/MyTypeAdapterFactory.java
// @GsonValueTypeAdapterFactory
// public abstract class MyTypeAdapterFactory implements TypeAdapterFactory {
// 
//     public static MyTypeAdapterFactory create() {
//         return new GsonValue_MyTypeAdapterFactory();
//     }
// }
// 
// Path: gsonvalue/src/test/java/me/tatarka/gsonvalue/model/roundtrip/Subclass.java
// public class Subclass {
// 
//     public static class Parent {
//         private final String foo;
// 
//         public Parent(String foo) {
//             this.foo = foo;
//         }
// 
//         public String foo() {
//             return foo;
//         }
//     }
// 
//     public static class Child extends Parent {
//         private final String bar;
// 
//         @GsonConstructor
//         public Child(String foo, String bar) {
//             super(foo);
//             this.bar = bar;
//         }
// 
//         @Override
//         public String foo() {
//             return super.foo();
//         }
// 
//         public String bar() {
//             return bar;
//         }
//     }
// }


import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import me.tatarka.gsonvalue.model.adapterfactory.MyTypeAdapterFactory;
import me.tatarka.gsonvalue.model.deserialize.*;
import me.tatarka.gsonvalue.model.roundtrip.Subclass;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.*;
package me.tatarka.gsonvalue;




@RunWith(Parameterized.class)
public class GsonValueDeserializeTest {

    @Parameterized.Parameters(name = "{0}")
    public static Collection<Object[]> params() {
// Path: gsonvalue/src/test/java/me/tatarka/gsonvalue/model/adapterfactory/MyTypeAdapterFactory.java
// @GsonValueTypeAdapterFactory
// public abstract class MyTypeAdapterFactory implements TypeAdapterFactory {
// 
//     public static MyTypeAdapterFactory create() {
//         return new GsonValue_MyTypeAdapterFactory();
//     }
// }
// 
// Path: gsonvalue/src/test/java/me/tatarka/gsonvalue/model/roundtrip/Subclass.java
// public class Subclass {
// 
//     public static class Parent {
//         private final String foo;
// 
//         public Parent(String foo) {
//             this.foo = foo;
//         }
// 
//         public String foo() {
//             return foo;
//         }
//     }
// 
//     public static class Child extends Parent {
//         private final String bar;
// 
//         @GsonConstructor
//         public Child(String foo, String bar) {
//             super(foo);
//             this.bar = bar;
//         }
// 
//         @Override
//         public String foo() {
//             return super.foo();
//         }
// 
//         public String bar() {
//             return bar;
//         }
//     }
// }


// Path: gsonvalue/src/test/java/me/tatarka/gsonvalue/GsonValueDeserializeTest.java
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.TypeAdapterFactory;
import com.google.gson.reflect.TypeToken;
import me.tatarka.gsonvalue.model.adapterfactory.MyTypeAdapterFactory;
import me.tatarka.gsonvalue.model.deserialize.*;
import me.tatarka.gsonvalue.model.roundtrip.Subclass;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.*;

package me.tatarka.gsonvalue;




@RunWith(Parameterized.class)
public class GsonValueDeserializeTest {

    @Parameterized.Parameters(name = "{0}")
    public static Collection<Object[]> params() {
        return Arrays.asList(new Object[]{new ValueTypeAdapterFactory()}, new Object[]{MyTypeAdapterFactory.create()});