From 6409f1531c434a0ab76933b44dbe214074602d51 Mon Sep 17 00:00:00 2001 From: Iain Sproat Date: Thu, 27 May 2010 21:18:27 +0000 Subject: [PATCH] Re-adding guessValueType feature which was mistakenly removed in r797. git-svn-id: http://google-refine.googlecode.com/svn/trunk@873 7d457c2a-affb-35e4-300a-418c747d4874 --- .../gridworks/importers/TsvCsvImporter.java | 4 +++- .../tests/importers/TsvCsvImporterTests.java | 24 ++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/metaweb/gridworks/importers/TsvCsvImporter.java b/src/main/java/com/metaweb/gridworks/importers/TsvCsvImporter.java index fc8db04d8..1a58122a0 100644 --- a/src/main/java/com/metaweb/gridworks/importers/TsvCsvImporter.java +++ b/src/main/java/com/metaweb/gridworks/importers/TsvCsvImporter.java @@ -5,6 +5,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.io.Reader; +import java.io.Serializable; import java.util.ArrayList; import java.util.List; import java.util.Properties; @@ -112,7 +113,8 @@ public class TsvCsvImporter implements Importer { for(String s : cells){ s = s.trim(); if (ExpressionUtils.isNonBlankData(s)) { - row.cells.add(new Cell(s, null)); + Serializable value = guessValueType ? ImporterUtilities.parseCellValue(s) : s; + row.cells.add(new Cell(value, null)); }else{ row.cells.add(null); } diff --git a/tests/java/src/com/metaweb/gridworks/tests/importers/TsvCsvImporterTests.java b/tests/java/src/com/metaweb/gridworks/tests/importers/TsvCsvImporterTests.java index 90db0ccb1..a53043a34 100644 --- a/tests/java/src/com/metaweb/gridworks/tests/importers/TsvCsvImporterTests.java +++ b/tests/java/src/com/metaweb/gridworks/tests/importers/TsvCsvImporterTests.java @@ -66,7 +66,7 @@ public class TsvCsvImporterTests { Assert.assertEquals(project.columnModel.columns.get(1).getName(), "col2"); Assert.assertEquals(project.columnModel.columns.get(2).getName(), "col3"); } - + @Test(dataProvider = "CSV-or-null") public void readUnseperatedData(String sep){ String input = "value1,value2,value3"; @@ -126,6 +126,28 @@ public class TsvCsvImporterTests { Assert.assertEquals(project.rows.get(0).cells.get(2).value, "data3"); } + @Test(dataProvider = "CSV-or-null") + public void readSimpleData_CSV_1Header_1Row_GuessValues(String sep){ + String input = "col1,col2,col3\n" + + "data1,234,data3"; + LineNumberReader lnReader = new LineNumberReader(new StringReader(input)); + try { + SUT.read(lnReader, project, sep, -1, 0, 0, 1, true, true); + } catch (IOException e) { + Assert.fail(); + } + Assert.assertEquals(project.columnModel.columns.size(), 3); + Assert.assertEquals(project.columnModel.columns.get(0).getName(), "col1"); + Assert.assertEquals(project.columnModel.columns.get(1).getName(), "col2"); + Assert.assertEquals(project.columnModel.columns.get(2).getName(), "col3"); + Assert.assertEquals(project.rows.size(), 1); + Assert.assertEquals(project.rows.get(0).cells.size(), 3); + Assert.assertEquals(project.rows.get(0).cells.get(0).value, "data1"); + Assert.assertTrue(project.rows.get(0).cells.get(1).value instanceof Long); + Assert.assertEquals(project.rows.get(0).cells.get(1).value, Long.parseLong("234")); + Assert.assertEquals(project.rows.get(0).cells.get(2).value, "data3"); + } + @Test(dataProvider = "CSV-or-null") public void readSimpleData_0Header_1Row(String sep){ String input = "data1,data2,data3";