/*****************************************************************************
* Limpet - the Lightweight InforMation ProcEssing Toolkit
* http://limpet.info
*
* (C) 2015-2016, Deep Blue C Technologies Ltd
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Eclipse Public License v1.0
* (http://www.eclipse.org/legal/epl-v10.html)
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*****************************************************************************/
package info.limpet.data;
import info.limpet.ICollection;
import info.limpet.IStoreItem;
import info.limpet.data.csv.CsvParser;
import info.limpet.data.store.StoreGroup;
import java.io.File;
import java.util.List;
import junit.framework.TestCase;
public class TestCsvParser extends TestCase
{
public void testIntervals() throws Exception
{
File file = getDataFile("data/intervals.csv");
assertTrue(file.isFile());
List<IStoreItem> items = new CsvParser().parse(file.getAbsolutePath());
assertTrue(items.size() == 1);
ICollection firstColl = (ICollection) items.get(0);
assertEquals("correct num rows", 69, firstColl.getValuesCount());
}
public void testFrequencs() throws Exception
{
File file = getDataFile("data/frequences.csv");
assertTrue(file.isFile());
List<IStoreItem> items = new CsvParser().parse(file.getAbsolutePath());
assertTrue(items.size() == 1);
ICollection firstColl = (ICollection) items.get(0);
assertEquals("correct num rows", 11, firstColl.getValuesCount());
}
public void testMultiColumn() throws Exception
{
File file = getDataFile("data/track_one.csv");
assertTrue(file.isFile());
CsvParser parser = new CsvParser();
List<IStoreItem> items = parser.parse(file.getAbsolutePath());
assertEquals("correct group", 1, items.size());
StoreGroup group = (StoreGroup) items.get(0);
assertEquals("correct num collections", 6, group.size());
ICollection firstColl = (ICollection) group.get(0);
assertEquals("correct num rows", 69, firstColl.getValuesCount());
}
public void testMultiColumnUSA() throws Exception
{
File file = getDataFile("americas_cup/usa.csv");
assertTrue(file.isFile());
CsvParser parser = new CsvParser();
List<IStoreItem> items = parser.parse(file.getAbsolutePath());
assertEquals("correct group", 1, items.size());
StoreGroup group = (StoreGroup) items.get(0);
assertEquals("correct num collections", 3, group.size());
ICollection firstColl = (ICollection) group.get(0);
assertEquals("correct num rows", 1708, firstColl.getValuesCount());
}
public static File getDataFile(String name)
{
File file = new File(getFileName(name));
return file;
}
public static String getFileName(String name)
{
StringBuilder builder = new StringBuilder();
builder.append("..");
builder.append(File.separator);
builder.append("info.limpet.sample_data");
builder.append(File.separator);
builder.append(name);
return builder.toString();
}
}