public virtual void test_of_simple_no_header() { using (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), false)) { assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.hasNext(), true); assertEquals(csvFile.hasNext(), true); CsvRow peeked = csvFile.peek(); CsvRow row0 = csvFile.next(); assertEquals(row0, peeked); assertEquals(row0.headers().size(), 0); assertEquals(row0.lineNumber(), 1); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "h1"); assertEquals(row0.field(1), "h2"); CsvRow row1 = csvFile.next(); assertEquals(row1.headers().size(), 0); assertEquals(row1.lineNumber(), 2); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r11"); assertEquals(row1.field(1), "r12"); CsvRow row2 = csvFile.next(); assertEquals(row2.headers().size(), 0); assertEquals(row2.lineNumber(), 3); assertEquals(row2.fieldCount(), 2); assertEquals(row2.field(0), "r21"); assertEquals(row2.field(1), "r22"); assertEquals(csvFile.hasNext(), false); assertThrows(() => csvFile.peek(), typeof(NoSuchElementException)); assertThrows(() => csvFile.peek(), typeof(NoSuchElementException)); assertThrows(() => csvFile.next(), typeof(NoSuchElementException)); assertThrows(() => csvFile.next(), typeof(NoSuchElementException)); assertThrows(() => csvFile.remove(), typeof(System.NotSupportedException)); } }
public virtual void test_of_simple_no_header_tabs() { CsvFile csvFile = CsvFile.of(CharSource.wrap(CSV1T), false, '\t'); assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.containsHeader("Foo"), false); assertEquals(csvFile.containsHeader(Pattern.compile("Foo")), false); assertEquals(csvFile.rowCount(), 3); assertEquals(csvFile.row(0).lineNumber(), 1); assertEquals(csvFile.row(1).lineNumber(), 2); assertEquals(csvFile.row(2).lineNumber(), 3); assertEquals(csvFile.row(0).headers().size(), 0); assertEquals(csvFile.row(0).fieldCount(), 2); assertEquals(csvFile.row(0).field(0), "h1"); assertEquals(csvFile.row(0).field(1), "h2"); assertEquals(csvFile.row(1).headers().size(), 0); assertEquals(csvFile.row(1).fieldCount(), 2); assertEquals(csvFile.row(1).field(0), "r11"); assertEquals(csvFile.row(1).field(1), "r12"); assertEquals(csvFile.row(2).headers().size(), 0); assertEquals(csvFile.row(2).fieldCount(), 2); assertEquals(csvFile.row(2).field(0), "r21"); assertEquals(csvFile.row(2).field(1), "r22"); }
//------------------------------------------------------------------------- public virtual void test_equalsHashCodeToString() { CsvFile a1 = CsvFile.of(CharSource.wrap(CSV1), true); CsvFile a2 = CsvFile.of(CharSource.wrap(CSV1), true); CsvFile b = CsvFile.of(CharSource.wrap(CSV2), true); CsvFile c = CsvFile.of(CharSource.wrap(CSV3), false); // file assertEquals(a1.Equals(a1), true); assertEquals(a1.Equals(a2), true); assertEquals(a1.Equals(b), false); assertEquals(a1.Equals(c), false); assertEquals(a1.Equals(null), false); assertEquals(a1.Equals(ANOTHER_TYPE), false); assertEquals(a1.GetHashCode(), a2.GetHashCode()); assertNotNull(a1.ToString()); // row assertEquals(a1.row(0).Equals(a1.row(0)), true); assertEquals(a1.row(0).Equals(a2.row(0)), true); assertEquals(a1.row(0).Equals(b.row(0)), false); assertEquals(c.row(0).Equals(c.row(1)), false); assertEquals(a1.row(0).Equals(ANOTHER_TYPE), false); assertEquals(a1.row(0).Equals(null), false); assertEquals(a1.row(0).GetHashCode(), a2.row(0).GetHashCode()); assertNotNull(a1.row(0).ToString()); }
public virtual void test_nextBatch2() { using (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"); IList <CsvRow> a = csvFile.nextBatch(3); assertEquals(a.Count, 2); CsvRow row0 = a[0]; assertEquals(row0.headers(), headers); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r11"); assertEquals(row0.field(1), "r12"); CsvRow row1 = a[1]; assertEquals(row1.headers(), headers); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); IList <CsvRow> d = csvFile.nextBatch(2); assertEquals(d.Count, 0); assertEquals(csvFile.hasNext(), false); assertEquals(csvFile.hasNext(), false); } }
public virtual void test_asStream_simple_no_header() { using (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), false)) { assertEquals(csvFile.headers().size(), 0); IList <CsvRow> rows = csvFile.asStream().collect(toList()); assertEquals(csvFile.hasNext(), false); assertEquals(rows.Count, 3); CsvRow row0 = rows[0]; assertEquals(row0.headers().size(), 0); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "h1"); assertEquals(row0.field(1), "h2"); CsvRow row1 = rows[1]; assertEquals(row1.headers().size(), 0); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r11"); assertEquals(row1.field(1), "r12"); CsvRow row2 = rows[2]; assertEquals(row2.headers().size(), 0); assertEquals(row2.fieldCount(), 2); assertEquals(row2.field(0), "r21"); assertEquals(row2.field(1), "r22"); } }
public virtual void test_of_quoting_mismatched() { assertThrowsIllegalArg(() => CsvFile.of(CharSource.wrap("\"alpha"), false), "Mismatched quotes in CSV on line 1"); assertThrowsIllegalArg(() => CsvFile.of(CharSource.wrap("\"al\"pha"), false)); assertThrowsIllegalArg(() => CsvFile.of(CharSource.wrap("\"al\"\"pha"), false)); assertThrowsIllegalArg(() => CsvFile.of(CharSource.wrap("\"al,pha"), false)); }
public virtual void test_of_simple_with_header() { using (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV1), true)) { ImmutableList <string> headers = csvFile.headers(); assertEquals(headers.size(), 2); assertEquals(csvFile.containsHeader("h1"), true); assertEquals(csvFile.containsHeader("h2"), true); assertEquals(csvFile.containsHeader("a"), false); assertEquals(csvFile.containsHeader(Pattern.compile("h.")), true); assertEquals(csvFile.containsHeader(Pattern.compile("a")), false); assertEquals(headers.get(0), "h1"); assertEquals(headers.get(1), "h2"); CsvRow peeked = csvFile.peek(); CsvRow row0 = csvFile.next(); assertEquals(row0, peeked); assertEquals(row0.headers(), headers); assertEquals(row0.lineNumber(), 2); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r11"); assertEquals(row0.field(1), "r12"); CsvRow row1 = csvFile.next(); assertEquals(row1.headers(), headers); assertEquals(row1.lineNumber(), 3); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); assertEquals(csvFile.hasNext(), false); assertThrows(() => csvFile.peek(), typeof(NoSuchElementException)); assertThrows(() => csvFile.peek(), typeof(NoSuchElementException)); assertThrows(() => csvFile.next(), typeof(NoSuchElementException)); assertThrows(() => csvFile.next(), typeof(NoSuchElementException)); assertThrows(() => csvFile.remove(), typeof(System.NotSupportedException)); } }
//------------------------------------------------------------------------- public virtual void test_toString() { using (CsvIterator test = CsvIterator.of(CharSource.wrap(CSV1), true)) { assertNotNull(test.ToString()); } }
public virtual void test_of_simple_with_header_access_by_invalid_field() { CsvFile csvFile = CsvFile.of(CharSource.wrap(CSV1), true); assertEquals(csvFile.row(0).findField("h3"), null); assertThrowsIllegalArg(() => csvFile.row(0).getField("h3")); }
//------------------------------------------------------------------------- public virtual void test_asStream_empty_no_header() { using (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(""), false)) { assertEquals(csvFile.asStream().collect(toList()).size(), 0); } }
public virtual void test_of_empty_no_header() { CsvFile csvFile = CsvFile.of(CharSource.wrap(""), false); assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.rowCount(), 0); assertEquals(csvFile.containsHeader("Foo"), false); assertEquals(csvFile.containsHeader(Pattern.compile("Foo")), false); }
public void test_parse_list_badDayMonthTenor() { CharSource source = CharSource.wrap("Reference,Sensitivity Tenor,Zero Rate Delta\n" + "GBP-LIBOR,P2M1D,1.0"); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 1); assertEquals(test.Failures.get(0).Reason, FailureReason.PARSING); assertEquals(test.Failures.get(0).Message, "CSV file could not be parsed at line 2: Invalid tenor, cannot mix years/months and days: 2M1D"); }
public void test_parse_list_unableToGetCurrency() { CharSource source = CharSource.wrap("Reference,Sensitivity Tenor,Zero Rate Delta\n" + "X,1D,1.0"); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 1); FailureItem failure0 = test.Failures.get(0); assertEquals(failure0.Reason, FailureReason.PARSING); assertEquals(failure0.Message, "CSV file could not be parsed at line 2: Unable to parse currency from reference, " + "consider adding a 'Currency' column"); }
public void test_parse_grid_neitherTenorNorDate() { CharSource source = CharSource.wrap("Sensitivity Type,Sensitivity Tenor,Sensitivity Date,GBP\n" + "ZeroRateGamma,,,1\n"); assertEquals(LOADER_DATE.isKnownFormat(source), true); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER_DATE.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 1); assertEquals(test.Value.size(), 0); FailureItem failure0 = test.Failures.get(0); assertEquals(failure0.Reason, FailureReason.PARSING); assertEquals(failure0.Message, "CSV file could not be parsed at line 2: Unable to parse tenor or date, " + "check 'Sensitivity Tenor' and 'Sensitivity Date' columns"); }
public void test_parse_grid_missingColumns() { CharSource source = CharSource.wrap("GBP\n" + "1"); assertEquals(LOADER.isKnownFormat(source), false); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 1); assertEquals(test.Value.size(), 0); FailureItem failure0 = test.Failures.get(0); assertEquals(failure0.Reason, FailureReason.PARSING); assertEquals(failure0.Message, "CSV file could not be parsed as sensitivities, invalid format"); }
public virtual void test_of_headerComment() { CsvFile csvFile = CsvFile.of(CharSource.wrap(CSV7), true); assertEquals(csvFile.rowCount(), 1); assertEquals(csvFile.row(0).lineNumber(), 3); assertEquals(csvFile.headers().size(), 2); assertEquals(csvFile.headers().get(0), "h1"); assertEquals(csvFile.headers().get(1), "h2"); assertEquals(csvFile.row(0).fieldCount(), 2); assertEquals(csvFile.row(0).field(0), "r1"); assertEquals(csvFile.row(0).field(1), "r2"); }
public void test_parse_grid_dateButTenorRequired() { CharSource source = CharSource.wrap("Sensitivity Type,Sensitivity Tenor,Sensitivity Date,GBP\n" + "ZeroRateGamma,,2018-06-30,1\n"); assertEquals(LOADER.isKnownFormat(source), true); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 1); assertEquals(test.Value.size(), 0); FailureItem failure0 = test.Failures.get(0); assertEquals(failure0.Reason, FailureReason.PARSING); assertEquals(failure0.Message, "CSV file could not be parsed at line 2: Missing value for 'Sensitivity Tenor' column"); }
//------------------------------------------------------------------------- public void test_parse_list_allRowsBadNoEmptySensitvityCreated() { CharSource source = CharSource.wrap("Reference,Sensitivity Tenor,ZeroRateDelta\n" + "GBP,XX,1\n"); assertEquals(LOADER_DATE.isKnownFormat(source), true); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER_DATE.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 1); assertEquals(test.Value.size(), 0); FailureItem failure0 = test.Failures.get(0); assertEquals(failure0.Reason, FailureReason.PARSING); assertEquals(failure0.Message, "CSV file could not be parsed at line 2: Invalid tenor 'XX', must be expressed as nD, nW, nM or nY"); }
public void test_parse_standard_dateInTenorColumn() { CharSource source = CharSource.wrap("Reference,Sensitivity Type,Sensitivity Tenor,Value\n" + "GBP,ZeroRateGamma,2018-06-30,1\n"); assertEquals(LOADER_DATE.isKnownFormat(source), true); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER_DATE.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 1); assertEquals(test.Value.size(), 0); FailureItem failure0 = test.Failures.get(0); assertEquals(failure0.Reason, FailureReason.PARSING); assertEquals(failure0.Message, "CSV file could not be parsed at line 2: Invalid tenor '2018-06-30', must be expressed as nD, nW, nM or nY"); }
public void test_parse_grid_badTenorWithValidDateColumn() { CharSource source = CharSource.wrap("Sensitivity Type,Sensitivity Tenor,Sensitivity Date,GBP\n" + "ZeroRateGamma,XXX,2018-06-30,1\n"); assertEquals(LOADER.isKnownFormat(source), true); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 1); assertEquals(test.Value.size(), 0); FailureItem failure0 = test.Failures.get(0); assertEquals(failure0.Reason, FailureReason.PARSING); assertEquals(failure0.Message, "CSV file could not be parsed at line 2: Invalid tenor 'XXX', must be expressed as nD, nW, nM or nY"); }
public virtual void test_of_empty_no_header() { using (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(), typeof(NoSuchElementException)); assertThrows(() => csvFile.next(), typeof(NoSuchElementException)); assertThrows(() => csvFile.next(), typeof(NoSuchElementException)); assertThrows(() => csvFile.remove(), typeof(System.NotSupportedException)); } }
public virtual void test_of_blank_row() { CsvFile csvFile = CsvFile.of(CharSource.wrap(CSV3), false); assertEquals(csvFile.rowCount(), 2); assertEquals(csvFile.row(0).lineNumber(), 1); assertEquals(csvFile.row(1).lineNumber(), 3); assertEquals(csvFile.row(0).fieldCount(), 2); assertEquals(csvFile.row(0).field(0), "r11"); assertEquals(csvFile.row(0).field(1), "r12"); assertEquals(csvFile.row(1).fieldCount(), 2); assertEquals(csvFile.row(1).field(0), "r21"); assertEquals(csvFile.row(1).field(1), "r22"); }
public virtual void test_of_headerComment() { using (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 virtual void test_of_quotingWithEquals() { CsvFile csvFile = CsvFile.of(CharSource.wrap(CSV4B), false); assertEquals(csvFile.rowCount(), 3); assertEquals(csvFile.row(0).fieldCount(), 2); assertEquals(csvFile.row(0).field(0), "alpha"); assertEquals(csvFile.row(0).field(1), "be, \"at\", one"); assertEquals(csvFile.row(1).fieldCount(), 2); assertEquals(csvFile.row(1).field(0), "alpha\",\"be\""); assertEquals(csvFile.row(1).field(1), "\"at\", one"); assertEquals(csvFile.row(2).fieldCount(), 2); assertEquals(csvFile.row(2).field(0), "r21"); assertEquals(csvFile.row(2).field(1), " r22 "); }
public virtual void test_of_comment_blank_no_header() { CsvFile csvFile = CsvFile.of(CharSource.wrap(CSV2), false); assertEquals(csvFile.headers().size(), 0); assertEquals(csvFile.rowCount(), 2); assertEquals(csvFile.row(0).lineNumber(), 1); assertEquals(csvFile.row(1).lineNumber(), 5); assertEquals(csvFile.row(0).fieldCount(), 2); assertEquals(csvFile.row(0).field(0), "h1"); assertEquals(csvFile.row(0).field(1), "h2"); assertEquals(csvFile.row(1).fieldCount(), 2); assertEquals(csvFile.row(1).field(0), "r21"); assertEquals(csvFile.row(1).field(1), "r22"); }
public void test_parse_list_duplicateTenor() { CharSource source = CharSource.wrap("Reference,Sensitivity Tenor,Zero Rate Delta\n" + "GBP,P1D,1\n" + "GBP,P1M,2\n" + "GBP,P1M,3\n"); ValueWithFailures <ListMultimap <string, CurveSensitivities> > test = LOADER.parse(ImmutableList.of(source)); assertEquals(test.Failures.size(), 0, test.Failures.ToString()); assertEquals(test.Value.size(), 1); IList <CurveSensitivities> list = test.Value.get(""); assertEquals(list.Count, 1); CurveSensitivities csens0 = list[0]; assertEquals(csens0.TypedSensitivities.size(), 1); assertSens(csens0, ZERO_RATE_DELTA, "GBP", GBP, "1D, 1M", 1, 5); }
public virtual void test_of_duplicate_headers() { CsvFile csvFile = CsvFile.of(CharSource.wrap(CSV5), true); assertEquals(csvFile.headers(), ImmutableList.of("a", "b", "c", "b", "c")); assertEquals(csvFile.containsHeader("Foo"), false); assertEquals(csvFile.containsHeader("a"), true); assertEquals(csvFile.row(0).getField("a"), "aa"); assertEquals(csvFile.row(0).getField("b"), "b1"); assertEquals(csvFile.row(0).getField("c"), "c1"); assertEquals(csvFile.row(0).subRow(1, 3).getField("b"), "b1"); assertEquals(csvFile.row(0).subRow(1, 3).getField("c"), "c1"); assertEquals(csvFile.row(0).subRow(3).getField("b"), "b2"); assertEquals(csvFile.row(0).subRow(3).getField("c"), "c2"); }
public virtual void test_of_blank_row() { using (CsvIterator csvFile = CsvIterator.of(CharSource.wrap(CSV3), false)) { assertEquals(csvFile.hasNext(), true); CsvRow row0 = csvFile.next(); assertEquals(row0.fieldCount(), 2); assertEquals(row0.field(0), "r11"); assertEquals(row0.field(1), "r12"); CsvRow row1 = csvFile.next(); assertEquals(row1.fieldCount(), 2); assertEquals(row1.field(0), "r21"); assertEquals(row1.field(1), "r22"); assertEquals(csvFile.hasNext(), false); } }
public virtual void test_of_comment_blank_with_header() { using (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 virtual void test_of_comment_blank_with_header() { CsvFile csvFile = CsvFile.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.rows().size(), 1); assertEquals(csvFile.rowCount(), 1); assertEquals(csvFile.row(0).lineNumber(), 5); assertEquals(csvFile.row(0).fieldCount(), 2); assertEquals(csvFile.row(0).field(0), "r21"); assertEquals(csvFile.row(0).field(1), "r22"); assertEquals(csvFile.rows().get(0), csvFile.row(0)); }