package com.caseystella.type;
import com.google.common.collect.ImmutableList;
import org.junit.Assert;
import org.junit.Test;
public class TypeImputerTest {
@Test
public void testIntegralTypes() {
Assert.assertEquals(ValueSummary.of(7l, TypeInference.Type.INTEGRAL, TypeInference.Modifier.VALID)
,TypeInference.Type.infer(7)
);
Assert.assertEquals(ValueSummary.of(7l, TypeInference.Type.INTEGRAL, TypeInference.Modifier.VALID)
,TypeInference.Type.infer("7")
);
Assert.assertEquals(ValueSummary.of(7l, TypeInference.Type.INTEGRAL, TypeInference.Modifier.VALID)
,TypeInference.Type.infer("7 ")
);
}
@Test
public void testFloatTypes() {
Assert.assertEquals(ValueSummary.of(7.2d, TypeInference.Type.FLOAT, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(7.2)
);
Assert.assertEquals(ValueSummary.of(7.2d, TypeInference.Type.FLOAT, TypeInference.Modifier.VALID)
, TypeInference.Type.infer("7.2")
);
Assert.assertEquals(ValueSummary.of(Double.NaN, TypeInference.Type.FLOAT, TypeInference.Modifier.MISSING)
, TypeInference.Type.infer("NaN")
);
}
/*
@Test
public void testDateTypes() {
{
String date = "00.0-00.0";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.STRING, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "0.0-00.0";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.STRING, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "00.0-000.0";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.STRING, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "0.0-00";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.STRING, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "20120";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.INTEGRAL, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "2012";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.INTEGRAL, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "201.2";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.FLOAT, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "201.22";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.FLOAT, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "2010.2";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.FLOAT, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "2014.01.02";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.DATE, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "2014/01/02";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.DATE, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "2014-01-02";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.DATE, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "July 01, 1994";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.DATE, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "Jul 01, 1994";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.DATE, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
{
String date = "Jul-01-1994";
Assert.assertEquals(ValueSummary.of(date, TypeInference.Type.DATE, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(date)
);
}
}*/
@Test
public void testStringTypes() {
Assert.assertEquals(ValueSummary.of("", TypeInference.Type.STRING, TypeInference.Modifier.MISSING)
, TypeInference.Type.infer("")
);
Assert.assertEquals(ValueSummary.of("foo", TypeInference.Type.STRING, TypeInference.Modifier.VALID)
, TypeInference.Type.infer("foo")
);
Assert.assertEquals(ValueSummary.of("2014-foo-bar", TypeInference.Type.STRING, TypeInference.Modifier.VALID)
, TypeInference.Type.infer("2014-foo-bar")
);
Assert.assertEquals(ValueSummary.of("182 1994", TypeInference.Type.STRING, TypeInference.Modifier.VALID)
, TypeInference.Type.infer("182 1994")
);
}
@Test
public void testInvalidTypes() {
Assert.assertEquals(ValueSummary.of(null, TypeInference.Type.UNKNOWN, TypeInference.Modifier.MISSING)
, TypeInference.Type.infer(null)
);
Assert.assertEquals(ValueSummary.of(ImmutableList.of("foo", "bar"), TypeInference.Type.UNKNOWN, TypeInference.Modifier.VALID)
, TypeInference.Type.infer(ImmutableList.of("foo", "bar"))
);
}
}