public void test_of_empty_no_header_reader() { try (CsvIterator csvFile = CsvIterator.of(new StringReader(""), false, ',')) { assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.hasNext(), false); } }
private <T extends Trade> ValueWithFailures<List<T>> parseFile(CharSource charSource, Class<T> tradeType) { try (CsvIterator csv = CsvIterator.of(charSource, true)) { if (!csv.headers().contains(TYPE_FIELD)) { return ValueWithFailures.of( ImmutableList.of(), FailureItem.of(FailureReason.PARSING, "CSV file does not contain '{header}' header: {}", TYPE_FIELD, charSource)); } return parseFile(csv, tradeType); } catch (RuntimeException ex) { return ValueWithFailures.of( ImmutableList.of(), FailureItem.of( FailureReason.PARSING, ex, "CSV file could not be parsed: {exceptionMessage}: {}", ex.getMessage(), charSource)); } }
private <T extends Position> ValueWithFailures<List<T>> parseFile(CharSource charSource, Class<T> positionType) { try (CsvIterator csv = CsvIterator.of(charSource, true)) { if (!csv.headers().contains(TYPE_FIELD)) { return ValueWithFailures.of( ImmutableList.of(), FailureItem.of(FailureReason.PARSING, "CSV file does not contain '{header}' header: {}", TYPE_FIELD, charSource)); } return parseFile(csv, positionType); } catch (RuntimeException ex) { return ValueWithFailures.of( ImmutableList.of(), FailureItem.of( FailureReason.PARSING, ex, "CSV file could not be parsed: {exceptionMessage}: {}", ex.getMessage(), charSource)); } }
public void test_of_headerComment() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV4), true)) { assertEquals(csvFile.hasNext(), true); CsvRow row0 = csvFile.next(); assertEquals(row0.lineNumber(), 3); assertEquals(csvFile.headers().size(), 2); assertEquals(csvFile.headers().get(0), "h1"); assertEquals(csvFile.headers().get(1), "h2"); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r1"); assertEquals(row0.field(1), "r2"); } }
public void test_asStream_simple_with_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), true)) { ImmutableList<String> headers = csvFile.headers(); assertEquals(headers.size(), 2); assertEquals(headers.get(0), "h1"); assertEquals(headers.get(1), "h2"); List<CsvRow> rows = csvFile.asStream().collect(toList()); assertEquals(csvFile.hasNext(), false); assertEquals(rows.size(), 2); CsvRow row0 = rows.get(0); assertEquals(row0.headers(), headers); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r11"); assertEquals(row0.field(1), "r12"); CsvRow row1 = rows.get(1); assertEquals(row1.headers(), headers); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); } }
public void test_of_comment_blank_with_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV2), true)) { ImmutableList<String> headers = csvFile.headers(); assertEquals(headers.size(), 2); assertEquals(headers.get(0), "h1"); assertEquals(headers.get(1), "h2"); assertEquals(csvFile.hasNext(), true); CsvRow row0 = csvFile.next(); assertEquals(row0.lineNumber(), 5); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r21"); assertEquals(row0.field(1), "r22"); assertEquals(csvFile.hasNext(), false); } }
public void nextBatch_predicate() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV5GROUPED), true)) { ImmutableList<String> headers = csvFile.headers(); assertEquals(headers.size(), 2); assertEquals(headers.get(0), "id"); assertEquals(headers.get(1), "value"); int batches = 0; int total = 0; while (csvFile.hasNext()) { CsvRow first = csvFile.peek(); String id = first.getValue("id"); List<CsvRow> batch = csvFile.nextBatch(row -> row.getValue("id").equals(id)); assertEquals(batch.stream().map(row -> row.getValue("id")).distinct().count(), 1); batches++; total += batch.size(); } assertEquals(batches, 3); assertEquals(total, 6); } }
for (String header : csv.headers()) { String headerLowerCase = header.toLowerCase(Locale.ENGLISH); if (!REF_HEADERS.contains(headerLowerCase) && !resolver.isInfoColumn(headerLowerCase)) {
for (String header : csv.headers()) { String headerLowerCase = header.toLowerCase(Locale.ENGLISH); if (!TYPE_HEADERS.contains(headerLowerCase) && !resolver.isInfoColumn(headerLowerCase)) {
/** * Checks whether the source is a CSV format sensitivities file. * <p> * This parses the headers as CSV and checks that mandatory headers are present. * * @param charSource the CSV character source to check * @return true if the source is a CSV file with known headers, false otherwise */ public boolean isKnownFormat(CharSource charSource) { try (CsvIterator csv = CsvIterator.of(charSource, true)) { if (!csv.containsHeader(TENOR_HEADER) && !csv.containsHeader(DATE_HEADER)) { return false; } if (csv.containsHeader(REFERENCE_HEADER) && csv.containsHeader(TYPE_HEADER) && csv.containsHeader(VALUE_HEADER)) { return true; // standard format } else if (csv.containsHeader(REFERENCE_HEADER) || csv.containsHeader(TYPE_HEADER)) { return true; // list or grid format } else { return csv.headers().stream().anyMatch(SensitivityCsvLoader::knownReference); // implied grid format } } catch (RuntimeException ex) { return false; } }
public void test_nextBatch2() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), true)) { ImmutableList<String> headers = csvFile.headers(); assertEquals(headers.size(), 2); assertEquals(headers.get(0), "h1"); assertEquals(headers.get(1), "h2"); List<CsvRow> a = csvFile.nextBatch(3); assertEquals(a.size(), 2); CsvRow row0 = a.get(0); assertEquals(row0.headers(), headers); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r11"); assertEquals(row0.field(1), "r12"); CsvRow row1 = a.get(1); assertEquals(row1.headers(), headers); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); List<CsvRow> d = csvFile.nextBatch(2); assertEquals(d.size(), 0); assertEquals(csvFile.hasNext(), false); assertEquals(csvFile.hasNext(), false); } }
public void test_asStream_simple_no_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), false)) { assertEquals(csvFile.headers().size(), 0); List<CsvRow> rows = csvFile.asStream().collect(toList()); assertEquals(csvFile.hasNext(), false); assertEquals(rows.size(), 3); CsvRow row0 = rows.get(0); assertEquals(row0.headers().size(), 0); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "h1"); assertEquals(row0.field(1), "h2"); CsvRow row1 = rows.get(1); assertEquals(row1.headers().size(), 0); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r11"); assertEquals(row1.field(1), "r12"); CsvRow row2 = rows.get(2); assertEquals(row2.headers().size(), 0); assertEquals(row2.fieldCount(), 2); assertEquals(row2.field(0), "r21"); assertEquals(row2.field(1), "r22"); } }
public void test_nextBatch1() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), true)) { ImmutableList<String> headers = csvFile.headers(); assertEquals(headers.size(), 2); assertEquals(headers.get(0), "h1"); assertEquals(headers.get(1), "h2"); List<CsvRow> a = csvFile.nextBatch(0); assertEquals(a.size(), 0); List<CsvRow> b = csvFile.nextBatch(1); assertEquals(b.size(), 1); CsvRow row0 = b.get(0); assertEquals(row0.headers(), headers); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r11"); assertEquals(row0.field(1), "r12"); List<CsvRow> c = csvFile.nextBatch(2); assertEquals(c.size(), 1); CsvRow row1 = c.get(0); assertEquals(row1.headers(), headers); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); List<CsvRow> d = csvFile.nextBatch(2); assertEquals(d.size(), 0); assertEquals(csvFile.hasNext(), false); } }
public void test_of_comment_blank_no_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV2), false)) { assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.hasNext(), true); CsvRow row0 = csvFile.next(); assertEquals(row0.lineNumber(), 1); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "h1"); assertEquals(row0.field(1), "h2"); CsvRow row1 = csvFile.next(); assertEquals(row1.lineNumber(), 5); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); assertEquals(csvFile.hasNext(), false); } }
public void test_of_empty_no_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(""), false)) { assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.containsHeader("a"), false); assertEquals(csvFile.hasNext(), false); assertEquals(csvFile.hasNext(), false); assertThrows(() -> csvFile.peek(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.remove(), UnsupportedOperationException.class); } }
public void test_of_simple_with_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), true)) { ImmutableList<String> headers = csvFile.headers(); assertEquals(headers.size(), 2); assertEquals(csvFile.containsHeader("h1"), true);
public void test_of_simple_no_header_tabs() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1T), false, '\t')) { assertEquals(csvFile.headers().size(), 0); CsvRow row0 = csvFile.next(); assertEquals(row0.headers().size(), 0); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "h1"); assertEquals(row0.field(1), "h2"); assertEquals(csvFile.hasNext(), true); CsvRow row1 = csvFile.next(); assertEquals(row1.headers().size(), 0); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r11"); assertEquals(row1.field(1), "r12"); assertEquals(csvFile.hasNext(), true); CsvRow row2 = csvFile.next(); assertEquals(row2.headers().size(), 0); assertEquals(row2.fieldCount(), 2); assertEquals(row2.field(0), "r21"); assertEquals(row2.field(1), "r22"); assertEquals(csvFile.hasNext(), false); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.next(), NoSuchElementException.class); assertThrows(() -> csvFile.remove(), UnsupportedOperationException.class); } }
public void test_of_simple_no_header() { try (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), false)) { assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.hasNext(), true); assertEquals(csvFile.hasNext(), true);