You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by gg...@apache.org on 2019/05/19 22:55:25 UTC
[commons-csv] branch master updated: Sort methods.
This is an automated email from the ASF dual-hosted git repository.
ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-csv.git
The following commit(s) were added to refs/heads/master by this push:
new 9dcad06 Sort methods.
9dcad06 is described below
commit 9dcad06c005a29085d9d26e4e54bc7c9bdb9bd5a
Author: Gary Gregory <ga...@gmail.com>
AuthorDate: Sun May 19 18:55:22 2019 -0400
Sort methods.
---
.../java/org/apache/commons/csv/CSVParserTest.java | 204 ++++++++++-----------
1 file changed, 102 insertions(+), 102 deletions(-)
diff --git a/src/test/java/org/apache/commons/csv/CSVParserTest.java b/src/test/java/org/apache/commons/csv/CSVParserTest.java
index 0802078..a5539f6 100644
--- a/src/test/java/org/apache/commons/csv/CSVParserTest.java
+++ b/src/test/java/org/apache/commons/csv/CSVParserTest.java
@@ -82,6 +82,12 @@ public class CSVParserTest {
return new BOMInputStream(url.openStream());
}
+ private void parseFully(final CSVParser parser) {
+ for (final Iterator<CSVRecord> records = parser.iterator(); records.hasNext(); ) {
+ records.next();
+ }
+ }
+
@Test
public void testBackslashEscaping() throws IOException {
@@ -183,9 +189,9 @@ public class CSVParserTest {
}
@Test
- public void testBOMInputStream_ParserWithReader() throws IOException {
- try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME);
- final CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL.withHeader())) {
+ public void testBOMInputStream_ParserWithInputStream() throws IOException {
+ try (final BOMInputStream inputStream = createBOMInputStream("CSVFileParser/bom.csv");
+ final CSVParser parser = CSVParser.parse(inputStream, UTF_8, CSVFormat.EXCEL.withHeader())) {
for (final CSVRecord record : parser) {
final String string = record.get("Date");
Assert.assertNotNull(string);
@@ -195,9 +201,9 @@ public class CSVParserTest {
}
@Test
- public void testBOMInputStream_parseWithReader() throws IOException {
+ public void testBOMInputStream_ParserWithReader() throws IOException {
try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME);
- final CSVParser parser = CSVParser.parse(reader, CSVFormat.EXCEL.withHeader())) {
+ final CSVParser parser = new CSVParser(reader, CSVFormat.EXCEL.withHeader())) {
for (final CSVRecord record : parser) {
final String string = record.get("Date");
Assert.assertNotNull(string);
@@ -207,9 +213,9 @@ public class CSVParserTest {
}
@Test
- public void testBOMInputStream_ParserWithInputStream() throws IOException {
- try (final BOMInputStream inputStream = createBOMInputStream("CSVFileParser/bom.csv");
- final CSVParser parser = CSVParser.parse(inputStream, UTF_8, CSVFormat.EXCEL.withHeader())) {
+ public void testBOMInputStream_parseWithReader() throws IOException {
+ try (final Reader reader = new InputStreamReader(createBOMInputStream("CSVFileParser/bom.csv"), UTF_8_NAME);
+ final CSVParser parser = CSVParser.parse(reader, CSVFormat.EXCEL.withHeader())) {
for (final CSVRecord record : parser) {
final String string = record.get("Date");
Assert.assertNotNull(string);
@@ -236,36 +242,6 @@ public class CSVParserTest {
}
}
- @Test
- public void testFirstEndOfLineCrLf() throws IOException {
- final String data = "foo\r\nbaar,\r\nhello,world\r\n,kanu";
- try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) {
- final List<CSVRecord> records = parser.getRecords();
- assertEquals(4, records.size());
- assertEquals("\r\n", parser.getFirstEndOfLine());
- }
- }
-
- @Test
- public void testFirstEndOfLineLf() throws IOException {
- final String data = "foo\nbaar,\nhello,world\n,kanu";
- try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) {
- final List<CSVRecord> records = parser.getRecords();
- assertEquals(4, records.size());
- assertEquals("\n", parser.getFirstEndOfLine());
- }
- }
-
- @Test
- public void testFirstEndOfLineCr() throws IOException {
- final String data = "foo\rbaar,\rhello,world\r,kanu";
- try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) {
- final List<CSVRecord> records = parser.getRecords();
- assertEquals(4, records.size());
- assertEquals("\r", parser.getFirstEndOfLine());
- }
- }
-
@Test(expected = NoSuchElementException.class)
public void testClose() throws Exception {
final Reader in = new StringReader("# comment\na,b,c\n1,2,3\nx,y,z");
@@ -446,6 +422,36 @@ public class CSVParserTest {
}
@Test
+ public void testFirstEndOfLineCr() throws IOException {
+ final String data = "foo\rbaar,\rhello,world\r,kanu";
+ try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) {
+ final List<CSVRecord> records = parser.getRecords();
+ assertEquals(4, records.size());
+ assertEquals("\r", parser.getFirstEndOfLine());
+ }
+ }
+
+ @Test
+ public void testFirstEndOfLineCrLf() throws IOException {
+ final String data = "foo\r\nbaar,\r\nhello,world\r\n,kanu";
+ try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) {
+ final List<CSVRecord> records = parser.getRecords();
+ assertEquals(4, records.size());
+ assertEquals("\r\n", parser.getFirstEndOfLine());
+ }
+ }
+
+ @Test
+ public void testFirstEndOfLineLf() throws IOException {
+ final String data = "foo\nbaar,\nhello,world\n,kanu";
+ try (final CSVParser parser = CSVParser.parse(data, CSVFormat.DEFAULT)) {
+ final List<CSVRecord> records = parser.getRecords();
+ assertEquals(4, records.size());
+ assertEquals("\n", parser.getFirstEndOfLine());
+ }
+ }
+
+ @Test
public void testForEach() throws Exception {
final List<CSVRecord> records = new ArrayList<>();
try (final Reader in = new StringReader("a,b,c\n1,2,3\nx,y,z")) {
@@ -730,6 +736,62 @@ public class CSVParserTest {
}
@Test
+ public void testIteratorSequenceBreaking() throws IOException {
+ final String fiveRows = "1\n2\n3\n4\n5\n";
+
+ // Iterator hasNext() shouldn't break sequence
+ CSVParser parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows));
+ int recordNumber = 0;
+ Iterator<CSVRecord> iter = parser.iterator();
+ recordNumber = 0;
+ while (iter.hasNext()) {
+ CSVRecord record = iter.next();
+ recordNumber++;
+ assertEquals(String.valueOf(recordNumber), record.get(0));
+ if (recordNumber >= 2) {
+ break;
+ }
+ }
+ iter.hasNext();
+ while (iter.hasNext()) {
+ CSVRecord record = iter.next();
+ recordNumber++;
+ assertEquals(String.valueOf(recordNumber), record.get(0));
+ }
+
+ // Consecutive enhanced for loops shouldn't break sequence
+ parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows));
+ recordNumber = 0;
+ for (CSVRecord record : parser) {
+ recordNumber++;
+ assertEquals(String.valueOf(recordNumber), record.get(0));
+ if (recordNumber >= 2) {
+ break;
+ }
+ }
+ for (CSVRecord record : parser) {
+ recordNumber++;
+ assertEquals(String.valueOf(recordNumber), record.get(0));
+ }
+
+ // Consecutive enhanced for loops with hasNext() peeking shouldn't break sequence
+ parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows));
+ recordNumber = 0;
+ for (CSVRecord record : parser) {
+ recordNumber++;
+ assertEquals(String.valueOf(recordNumber), record.get(0));
+ if (recordNumber >= 2) {
+ break;
+ }
+ }
+ parser.iterator().hasNext();
+ for (CSVRecord record : parser) {
+ recordNumber++;
+ assertEquals(String.valueOf(recordNumber), record.get(0));
+ }
+ }
+
+ @Test
public void testLineFeedEndings() throws IOException {
final String code = "foo\nbaar,\nhello,world\n,kanu";
try (final CSVParser parser = CSVParser.parse(code, CSVFormat.DEFAULT)) {
@@ -737,7 +799,7 @@ public class CSVParserTest {
assertEquals(4, records.size());
}
}
-
+
@Test
public void testMappedButNotSetAsOutlook2007ContactExport() throws Exception {
final Reader in = new StringReader("a,b,c\n1,2\nx,y,z");
@@ -791,7 +853,7 @@ public class CSVParserTest {
assertEquals("f", second.get(2));
}
}
-
+
@Test
// TODO this may lead to strange behavior, throw an exception if iterator() has already been called?
public void testMultipleIterators() throws Exception {
@@ -864,12 +926,6 @@ public class CSVParserTest {
}
}
- private void parseFully(final CSVParser parser) {
- for (final Iterator<CSVRecord> records = parser.iterator(); records.hasNext(); ) {
- records.next();
- }
- }
-
@Test(expected = IllegalArgumentException.class)
public void testParseFileNullFormat() throws Exception {
try (final CSVParser parser = CSVParser.parse(new File("CSVFileParser/test.csv"), Charset.defaultCharset(), null)) {
@@ -1066,62 +1122,6 @@ public class CSVParserTest {
Assert.assertEquals(3, record.size());
}
- @Test
- public void testIteratorSequenceBreaking() throws IOException {
- final String fiveRows = "1\n2\n3\n4\n5\n";
-
- // Iterator hasNext() shouldn't break sequence
- CSVParser parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows));
- int recordNumber = 0;
- Iterator<CSVRecord> iter = parser.iterator();
- recordNumber = 0;
- while (iter.hasNext()) {
- CSVRecord record = iter.next();
- recordNumber++;
- assertEquals(String.valueOf(recordNumber), record.get(0));
- if (recordNumber >= 2) {
- break;
- }
- }
- iter.hasNext();
- while (iter.hasNext()) {
- CSVRecord record = iter.next();
- recordNumber++;
- assertEquals(String.valueOf(recordNumber), record.get(0));
- }
-
- // Consecutive enhanced for loops shouldn't break sequence
- parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows));
- recordNumber = 0;
- for (CSVRecord record : parser) {
- recordNumber++;
- assertEquals(String.valueOf(recordNumber), record.get(0));
- if (recordNumber >= 2) {
- break;
- }
- }
- for (CSVRecord record : parser) {
- recordNumber++;
- assertEquals(String.valueOf(recordNumber), record.get(0));
- }
-
- // Consecutive enhanced for loops with hasNext() peeking shouldn't break sequence
- parser = CSVFormat.DEFAULT.parse(new StringReader(fiveRows));
- recordNumber = 0;
- for (CSVRecord record : parser) {
- recordNumber++;
- assertEquals(String.valueOf(recordNumber), record.get(0));
- if (recordNumber >= 2) {
- break;
- }
- }
- parser.iterator().hasNext();
- for (CSVRecord record : parser) {
- recordNumber++;
- assertEquals(String.valueOf(recordNumber), record.get(0));
- }
- }
-
private void validateLineNumbers(final String lineSeparator) throws IOException {
try (final CSVParser parser = CSVParser.parse("a" + lineSeparator + "b" + lineSeparator + "c",
CSVFormat.DEFAULT.withRecordSeparator(lineSeparator))) {