// Path: src/main/java/io/github/sskorol/model/TypeMappings.java
// @AllArgsConstructor
// public enum TypeMappings {
// 
//     COLLECTION(Collection.class, d -> StreamEx.of((Collection<?>) d)),
//     MAP(Map.class, d -> EntryStream.of((Map<?, ?>) d).mapKeyValue(AbstractMap.SimpleEntry::new)),
//     ENTRY(Map.Entry.class, d -> StreamEx.of(((Map.Entry) d).getKey(), ((Map.Entry) d).getValue())),
//     OBJECT_ARRAY(Object[].class, d -> StreamEx.of((Object[]) d)),
//     DOUBLE_ARRAY(double[].class, d -> DoubleStreamEx.of((double[]) d).boxed()),
//     INT_ARRAY(int[].class, d -> IntStreamEx.of((int[]) d).boxed()),
//     LONG_ARRAY(long[].class, d -> LongStreamEx.of((long[]) d).boxed()),
//     STREAM(Stream.class, d -> StreamEx.of((Stream<?>) d)),
//     TUPLE(Tuple.class, d -> StreamEx.of(((Tuple) d).toSeq().toJavaArray()));
// 
//     private final Class<?> typeClass;
//     private final Function<Object, StreamEx<?>> mapper;
// 
//     public boolean isInstanceOf(final Object ob) {
//         return ob != null && typeClass.isAssignableFrom(ob.getClass());
//     }
// 
//     @SuppressWarnings("unchecked")
//     public <T> StreamEx<T> streamOf(final T ob) {
//         return (StreamEx<T>) mapper.apply(ob);
//     }
// }


import io.github.sskorol.model.TypeMappings;
import io.vavr.Tuple;
import one.util.streamex.StreamEx;
import org.testng.annotations.Test;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
package io.github.sskorol.testcases;




public class TypeMappingsTests {

    @Test
    public void providedObjectsShouldMatchMappedInstances() {
// Path: src/main/java/io/github/sskorol/model/TypeMappings.java
// @AllArgsConstructor
// public enum TypeMappings {
// 
//     COLLECTION(Collection.class, d -> StreamEx.of((Collection<?>) d)),
//     MAP(Map.class, d -> EntryStream.of((Map<?, ?>) d).mapKeyValue(AbstractMap.SimpleEntry::new)),
//     ENTRY(Map.Entry.class, d -> StreamEx.of(((Map.Entry) d).getKey(), ((Map.Entry) d).getValue())),
//     OBJECT_ARRAY(Object[].class, d -> StreamEx.of((Object[]) d)),
//     DOUBLE_ARRAY(double[].class, d -> DoubleStreamEx.of((double[]) d).boxed()),
//     INT_ARRAY(int[].class, d -> IntStreamEx.of((int[]) d).boxed()),
//     LONG_ARRAY(long[].class, d -> LongStreamEx.of((long[]) d).boxed()),
//     STREAM(Stream.class, d -> StreamEx.of((Stream<?>) d)),
//     TUPLE(Tuple.class, d -> StreamEx.of(((Tuple) d).toSeq().toJavaArray()));
// 
//     private final Class<?> typeClass;
//     private final Function<Object, StreamEx<?>> mapper;
// 
//     public boolean isInstanceOf(final Object ob) {
//         return ob != null && typeClass.isAssignableFrom(ob.getClass());
//     }
// 
//     @SuppressWarnings("unchecked")
//     public <T> StreamEx<T> streamOf(final T ob) {
//         return (StreamEx<T>) mapper.apply(ob);
//     }
// }


// Path: src/test/java/io/github/sskorol/testcases/TypeMappingsTests.java
import io.github.sskorol.model.TypeMappings;
import io.vavr.Tuple;
import one.util.streamex.StreamEx;
import org.testng.annotations.Test;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;

package io.github.sskorol.testcases;




public class TypeMappingsTests {

    @Test
    public void providedObjectsShouldMatchMappedInstances() {
        assertThat(TypeMappings.COLLECTION.isInstanceOf(List.of("data1", "data2"))).as("Collection").isTrue();