Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
parse_csv_test.cc File Reference

Comprehensive test suite for parse-csv.H - CSV parsing utilities. More...

#include <gtest/gtest.h>
#include <sstream>
#include <fstream>
#include <cstdio>
#include <parse-csv.H>
Include dependency graph for parse_csv_test.cc:

Go to the source code of this file.

Classes

class  CsvReadRowStreamTest
 
class  CsvReadRowStringTest
 
class  CsvReadAllTest
 
class  CsvEscapeTest
 
class  CsvWriteRowTest
 
class  CsvWriteAllTest
 
class  CsvFileTest
 
class  CsvNumColumnsTest
 
class  CsvIsRectangularTest
 
class  CsvGetColumnTest
 
class  CsvToNumberTest
 
class  CsvRoundTripTest
 
class  CsvEdgeCasesTest
 
class  CsvRowTest
 
class  CsvReaderTest
 
class  CsvFilterTest
 
class  CsvStatisticsTest
 
class  CsvTransformationTest
 
class  CsvUtilityTest
 
class  CsvJoinTest
 

Functions

 TEST_F (CsvReadRowStreamTest, SimpleRow)
 
 TEST_F (CsvReadRowStreamTest, SingleField)
 
 TEST_F (CsvReadRowStreamTest, EmptyFields)
 
 TEST_F (CsvReadRowStreamTest, QuotedField)
 
 TEST_F (CsvReadRowStreamTest, QuotedFieldWithDelimiter)
 
 TEST_F (CsvReadRowStreamTest, EscapedQuotes)
 
 TEST_F (CsvReadRowStreamTest, QuotedFieldWithNewline)
 
 TEST_F (CsvReadRowStreamTest, CRLFLineEnding)
 
 TEST_F (CsvReadRowStreamTest, NoTrailingNewline)
 
 TEST_F (CsvReadRowStreamTest, CustomDelimiter)
 
 TEST_F (CsvReadRowStreamTest, TabDelimiter)
 
 TEST_F (CsvReadRowStreamTest, MultipleRows)
 
 TEST_F (CsvReadRowStreamTest, EmptyStream)
 
 TEST_F (CsvReadRowStreamTest, WhitespacePreserved)
 
 TEST_F (CsvReadRowStringTest, SimpleRow)
 
 TEST_F (CsvReadRowStringTest, QuotedFieldInString)
 
 TEST_F (CsvReadRowStringTest, EscapedQuotesInString)
 
 TEST_F (CsvReadAllTest, MultipleRows)
 
 TEST_F (CsvReadAllTest, SingleRow)
 
 TEST_F (CsvReadAllTest, NoTrailingNewline)
 
 TEST_F (CsvReadAllTest, EmptyStream)
 
 TEST_F (CsvReadAllTest, RowsWithDifferentLengths)
 
 TEST_F (CsvReadAllTest, CustomDelimiter)
 
 TEST_F (CsvEscapeTest, NoEscapingNeeded)
 
 TEST_F (CsvEscapeTest, EscapeDelimiter)
 
 TEST_F (CsvEscapeTest, EscapeQuotes)
 
 TEST_F (CsvEscapeTest, EscapeNewline)
 
 TEST_F (CsvEscapeTest, EscapeCarriageReturn)
 
 TEST_F (CsvEscapeTest, EscapeMultipleSpecialChars)
 
 TEST_F (CsvEscapeTest, CustomDelimiter)
 
 TEST_F (CsvWriteRowTest, SimpleRow)
 
 TEST_F (CsvWriteRowTest, RowWithQuotedFields)
 
 TEST_F (CsvWriteRowTest, RowWithQuotesInField)
 
 TEST_F (CsvWriteRowTest, EmptyRow)
 
 TEST_F (CsvWriteRowTest, SingleField)
 
 TEST_F (CsvWriteRowTest, CustomDelimiter)
 
 TEST_F (CsvWriteRowTest, CustomLineEnding)
 
 TEST_F (CsvWriteAllTest, MultipleRows)
 
 TEST_F (CsvWriteAllTest, EmptyData)
 
 TEST_F (CsvFileTest, WriteAndReadFile)
 
 TEST_F (CsvFileTest, ReadNonExistentFile)
 
 TEST_F (CsvFileTest, WriteToInvalidPath)
 
 TEST_F (CsvFileTest, WriteAndReadWithSpecialCharacters)
 
 TEST_F (CsvNumColumnsTest, BasicUsage)
 
 TEST_F (CsvNumColumnsTest, EmptyRow)
 
 TEST_F (CsvNumColumnsTest, SingleColumn)
 
 TEST_F (CsvIsRectangularTest, EmptyData)
 
 TEST_F (CsvIsRectangularTest, RectangularData)
 
 TEST_F (CsvIsRectangularTest, NonRectangularData)
 
 TEST_F (CsvIsRectangularTest, SingleRow)
 
 TEST_F (CsvGetColumnTest, BasicColumn)
 
 TEST_F (CsvGetColumnTest, SecondColumn)
 
 TEST_F (CsvGetColumnTest, OutOfRangeColumn)
 
 TEST_F (CsvGetColumnTest, EmptyData)
 
 TEST_F (CsvToNumberTest, ConvertToInt)
 
 TEST_F (CsvToNumberTest, ConvertToLong)
 
 TEST_F (CsvToNumberTest, ConvertToDouble)
 
 TEST_F (CsvToNumberTest, ConvertToFloat)
 
 TEST_F (CsvToNumberTest, InvalidIntConversion)
 
 TEST_F (CsvToNumberTest, InvalidDoubleConversion)
 
 TEST_F (CsvToNumberTest, ConvertWithWhitespace)
 
 TEST_F (CsvRoundTripTest, SimpleDataRoundTrip)
 
 TEST_F (CsvRoundTripTest, ComplexDataRoundTrip)
 
 TEST_F (CsvEdgeCasesTest, OnlyNewlines)
 
 TEST_F (CsvEdgeCasesTest, OnlyDelimiters)
 
 TEST_F (CsvEdgeCasesTest, EmptyQuotedField)
 
 TEST_F (CsvEdgeCasesTest, QuotedFieldWithOnlyQuotes)
 
 TEST_F (CsvEdgeCasesTest, VeryLongField)
 
 TEST_F (CsvEdgeCasesTest, ManyColumns)
 
 TEST_F (CsvEdgeCasesTest, UnicodeContent)
 
 TEST (CsvIntegrationTest, TypicalWorkflow)
 
 TEST (CsvTypeTraits, NoDiscardAttribute)
 
 TEST_F (CsvRowTest, IndexAccess)
 
 TEST_F (CsvRowTest, HeaderAccess)
 
 TEST_F (CsvRowTest, HeaderAccessThrowsWithoutHeader)
 
 TEST_F (CsvRowTest, HeaderAccessThrowsForUnknownColumn)
 
 TEST_F (CsvRowTest, HasColumn)
 
 TEST_F (CsvRowTest, GetNumeric)
 
 TEST_F (CsvRowTest, SizeAndEmpty)
 
 TEST_F (CsvReaderTest, ReadWithHeader)
 
 TEST_F (CsvReaderTest, ReadRows)
 
 TEST_F (CsvReaderTest, Skip)
 
 TEST_F (CsvReaderTest, RowsRead)
 
 TEST_F (CsvReaderTest, RangeBasedFor)
 
 TEST_F (CsvReaderTest, FromStream)
 
 TEST_F (CsvFilterTest, FilterByPredicate)
 
 TEST_F (CsvFilterTest, FilterByValue)
 
 TEST_F (CsvFilterTest, SelectColumns)
 
 TEST_F (CsvFilterTest, SkipRows)
 
 TEST_F (CsvFilterTest, TakeRows)
 
 TEST_F (CsvStatisticsTest, CountRows)
 
 TEST_F (CsvStatisticsTest, CountEmpty)
 
 TEST_F (CsvStatisticsTest, CountIf)
 
 TEST_F (CsvStatisticsTest, FindRow)
 
 TEST_F (CsvStatisticsTest, FindByValue)
 
 TEST_F (CsvStatisticsTest, FindNotFound)
 
 TEST_F (CsvStatisticsTest, Distinct)
 
 TEST_F (CsvTransformationTest, Transpose)
 
 TEST_F (CsvTransformationTest, SortByColumn)
 
 TEST_F (CsvTransformationTest, SortByColumnNumeric)
 
 TEST_F (CsvTransformationTest, Unique)
 
 TEST_F (CsvTransformationTest, Transform)
 
 TEST_F (CsvTransformationTest, AddColumn)
 
 TEST_F (CsvTransformationTest, RenameColumn)
 
 TEST_F (CsvUtilityTest, SkipBom)
 
 TEST_F (CsvUtilityTest, SkipBomNotPresent)
 
 TEST_F (CsvUtilityTest, TrimFields)
 
 TEST_F (CsvUtilityTest, FillEmpty)
 
 TEST_F (CsvJoinTest, JoinHorizontal)
 
 TEST_F (CsvJoinTest, JoinVertical)
 
 TEST_F (CsvJoinTest, InnerJoin)
 
 TEST_F (CsvJoinTest, GroupBy)
 
int main (int argc, char **argv)
 

Detailed Description

Comprehensive test suite for parse-csv.H - CSV parsing utilities.

Tests cover:

  • csv_read_row: Basic parsing, quoted fields, escaped quotes, delimiters
  • csv_read_all: Multiple rows, empty rows, different line endings
  • csv_escape: Quoting rules, delimiter escaping, quote escaping
  • csv_write_row: Output formatting, proper escaping
  • csv_write_all: Multiple rows output
  • csv_read_file / csv_write_file: File I/O operations
  • csv_get_column: Column extraction
  • csv_to_number: Numeric conversions
  • csv_is_rectangular: Shape validation
  • Edge cases: Empty input, single field, trailing newlines

Definition in file parse_csv_test.cc.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 1517 of file parse_csv_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST() [1/2]

◆ TEST() [2/2]

TEST ( CsvTypeTraits  ,
NoDiscardAttribute   
)

◆ TEST_F() [1/110]

TEST_F ( CsvEdgeCasesTest  ,
EmptyQuotedField   
)

◆ TEST_F() [2/110]

TEST_F ( CsvEdgeCasesTest  ,
ManyColumns   
)

◆ TEST_F() [3/110]

TEST_F ( CsvEdgeCasesTest  ,
OnlyDelimiters   
)

◆ TEST_F() [4/110]

TEST_F ( CsvEdgeCasesTest  ,
OnlyNewlines   
)

◆ TEST_F() [5/110]

TEST_F ( CsvEdgeCasesTest  ,
QuotedFieldWithOnlyQuotes   
)

◆ TEST_F() [6/110]

TEST_F ( CsvEdgeCasesTest  ,
UnicodeContent   
)

◆ TEST_F() [7/110]

TEST_F ( CsvEdgeCasesTest  ,
VeryLongField   
)

◆ TEST_F() [8/110]

TEST_F ( CsvEscapeTest  ,
CustomDelimiter   
)

◆ TEST_F() [9/110]

TEST_F ( CsvEscapeTest  ,
EscapeCarriageReturn   
)

◆ TEST_F() [10/110]

TEST_F ( CsvEscapeTest  ,
EscapeDelimiter   
)

◆ TEST_F() [11/110]

TEST_F ( CsvEscapeTest  ,
EscapeMultipleSpecialChars   
)

◆ TEST_F() [12/110]

TEST_F ( CsvEscapeTest  ,
EscapeNewline   
)

◆ TEST_F() [13/110]

TEST_F ( CsvEscapeTest  ,
EscapeQuotes   
)

◆ TEST_F() [14/110]

TEST_F ( CsvEscapeTest  ,
NoEscapingNeeded   
)

◆ TEST_F() [15/110]

TEST_F ( CsvFileTest  ,
ReadNonExistentFile   
)

◆ TEST_F() [16/110]

◆ TEST_F() [17/110]

TEST_F ( CsvFileTest  ,
WriteAndReadWithSpecialCharacters   
)

◆ TEST_F() [18/110]

TEST_F ( CsvFileTest  ,
WriteToInvalidPath   
)

◆ TEST_F() [19/110]

TEST_F ( CsvFilterTest  ,
FilterByPredicate   
)

◆ TEST_F() [20/110]

TEST_F ( CsvFilterTest  ,
FilterByValue   
)

◆ TEST_F() [21/110]

◆ TEST_F() [22/110]

TEST_F ( CsvFilterTest  ,
SkipRows   
)

◆ TEST_F() [23/110]

TEST_F ( CsvFilterTest  ,
TakeRows   
)

◆ TEST_F() [24/110]

TEST_F ( CsvGetColumnTest  ,
BasicColumn   
)

◆ TEST_F() [25/110]

TEST_F ( CsvGetColumnTest  ,
EmptyData   
)

◆ TEST_F() [26/110]

TEST_F ( CsvGetColumnTest  ,
OutOfRangeColumn   
)

◆ TEST_F() [27/110]

TEST_F ( CsvGetColumnTest  ,
SecondColumn   
)

◆ TEST_F() [28/110]

TEST_F ( CsvIsRectangularTest  ,
EmptyData   
)

◆ TEST_F() [29/110]

TEST_F ( CsvIsRectangularTest  ,
NonRectangularData   
)

◆ TEST_F() [30/110]

TEST_F ( CsvIsRectangularTest  ,
RectangularData   
)

◆ TEST_F() [31/110]

◆ TEST_F() [32/110]

◆ TEST_F() [33/110]

◆ TEST_F() [34/110]

TEST_F ( CsvJoinTest  ,
JoinHorizontal   
)

◆ TEST_F() [35/110]

TEST_F ( CsvJoinTest  ,
JoinVertical   
)

◆ TEST_F() [36/110]

TEST_F ( CsvNumColumnsTest  ,
BasicUsage   
)

◆ TEST_F() [37/110]

TEST_F ( CsvNumColumnsTest  ,
EmptyRow   
)

◆ TEST_F() [38/110]

TEST_F ( CsvNumColumnsTest  ,
SingleColumn   
)

◆ TEST_F() [39/110]

TEST_F ( CsvReadAllTest  ,
CustomDelimiter   
)

◆ TEST_F() [40/110]

TEST_F ( CsvReadAllTest  ,
EmptyStream   
)

◆ TEST_F() [41/110]

TEST_F ( CsvReadAllTest  ,
MultipleRows   
)

◆ TEST_F() [42/110]

TEST_F ( CsvReadAllTest  ,
NoTrailingNewline   
)

◆ TEST_F() [43/110]

TEST_F ( CsvReadAllTest  ,
RowsWithDifferentLengths   
)

◆ TEST_F() [44/110]

◆ TEST_F() [45/110]

TEST_F ( CsvReaderTest  ,
FromStream   
)

Definition at line 1151 of file parse_csv_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [46/110]

TEST_F ( CsvReaderTest  ,
RangeBasedFor   
)

Definition at line 1136 of file parse_csv_test.cc.

References Aleph::count(), and Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [47/110]

TEST_F ( CsvReaderTest  ,
ReadRows   
)

Definition at line 1094 of file parse_csv_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [48/110]

TEST_F ( CsvReaderTest  ,
ReadWithHeader   
)

Definition at line 1084 of file parse_csv_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [49/110]

TEST_F ( CsvReaderTest  ,
RowsRead   
)

Definition at line 1124 of file parse_csv_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [50/110]

TEST_F ( CsvReaderTest  ,
Skip   
)

Definition at line 1114 of file parse_csv_test.cc.

References Aleph::divide_and_conquer_partition_dp().

◆ TEST_F() [51/110]

TEST_F ( CsvReadRowStreamTest  ,
CRLFLineEnding   
)

◆ TEST_F() [52/110]

TEST_F ( CsvReadRowStreamTest  ,
CustomDelimiter   
)

◆ TEST_F() [53/110]

TEST_F ( CsvReadRowStreamTest  ,
EmptyFields   
)

◆ TEST_F() [54/110]

TEST_F ( CsvReadRowStreamTest  ,
EmptyStream   
)

◆ TEST_F() [55/110]

TEST_F ( CsvReadRowStreamTest  ,
EscapedQuotes   
)

◆ TEST_F() [56/110]

TEST_F ( CsvReadRowStreamTest  ,
MultipleRows   
)

◆ TEST_F() [57/110]

TEST_F ( CsvReadRowStreamTest  ,
NoTrailingNewline   
)

◆ TEST_F() [58/110]

TEST_F ( CsvReadRowStreamTest  ,
QuotedField   
)

◆ TEST_F() [59/110]

TEST_F ( CsvReadRowStreamTest  ,
QuotedFieldWithDelimiter   
)

◆ TEST_F() [60/110]

TEST_F ( CsvReadRowStreamTest  ,
QuotedFieldWithNewline   
)

◆ TEST_F() [61/110]

◆ TEST_F() [62/110]

TEST_F ( CsvReadRowStreamTest  ,
SingleField   
)

◆ TEST_F() [63/110]

TEST_F ( CsvReadRowStreamTest  ,
TabDelimiter   
)

◆ TEST_F() [64/110]

TEST_F ( CsvReadRowStreamTest  ,
WhitespacePreserved   
)

◆ TEST_F() [65/110]

TEST_F ( CsvReadRowStringTest  ,
EscapedQuotesInString   
)

◆ TEST_F() [66/110]

TEST_F ( CsvReadRowStringTest  ,
QuotedFieldInString   
)

◆ TEST_F() [67/110]

◆ TEST_F() [68/110]

◆ TEST_F() [69/110]

TEST_F ( CsvRoundTripTest  ,
SimpleDataRoundTrip   
)

◆ TEST_F() [70/110]

TEST_F ( CsvRowTest  ,
GetNumeric   
)

◆ TEST_F() [71/110]

◆ TEST_F() [72/110]

TEST_F ( CsvRowTest  ,
HeaderAccess   
)

◆ TEST_F() [73/110]

TEST_F ( CsvRowTest  ,
HeaderAccessThrowsForUnknownColumn   
)

◆ TEST_F() [74/110]

TEST_F ( CsvRowTest  ,
HeaderAccessThrowsWithoutHeader   
)

◆ TEST_F() [75/110]

TEST_F ( CsvRowTest  ,
IndexAccess   
)

◆ TEST_F() [76/110]

TEST_F ( CsvRowTest  ,
SizeAndEmpty   
)

◆ TEST_F() [77/110]

TEST_F ( CsvStatisticsTest  ,
CountEmpty   
)

◆ TEST_F() [78/110]

◆ TEST_F() [79/110]

TEST_F ( CsvStatisticsTest  ,
CountRows   
)

◆ TEST_F() [80/110]

◆ TEST_F() [81/110]

TEST_F ( CsvStatisticsTest  ,
FindByValue   
)

◆ TEST_F() [82/110]

TEST_F ( CsvStatisticsTest  ,
FindNotFound   
)

◆ TEST_F() [83/110]

◆ TEST_F() [84/110]

TEST_F ( CsvToNumberTest  ,
ConvertToDouble   
)

◆ TEST_F() [85/110]

TEST_F ( CsvToNumberTest  ,
ConvertToFloat   
)

◆ TEST_F() [86/110]

TEST_F ( CsvToNumberTest  ,
ConvertToInt   
)

◆ TEST_F() [87/110]

TEST_F ( CsvToNumberTest  ,
ConvertToLong   
)

◆ TEST_F() [88/110]

TEST_F ( CsvToNumberTest  ,
ConvertWithWhitespace   
)

◆ TEST_F() [89/110]

TEST_F ( CsvToNumberTest  ,
InvalidDoubleConversion   
)

◆ TEST_F() [90/110]

TEST_F ( CsvToNumberTest  ,
InvalidIntConversion   
)

◆ TEST_F() [91/110]

◆ TEST_F() [92/110]

TEST_F ( CsvTransformationTest  ,
RenameColumn   
)

◆ TEST_F() [93/110]

◆ TEST_F() [94/110]

TEST_F ( CsvTransformationTest  ,
SortByColumnNumeric   
)

◆ TEST_F() [95/110]

TEST_F ( CsvTransformationTest  ,
Transform   
)

◆ TEST_F() [96/110]

TEST_F ( CsvTransformationTest  ,
Transpose   
)

◆ TEST_F() [97/110]

◆ TEST_F() [98/110]

TEST_F ( CsvUtilityTest  ,
FillEmpty   
)

◆ TEST_F() [99/110]

TEST_F ( CsvUtilityTest  ,
SkipBom   
)

◆ TEST_F() [100/110]

TEST_F ( CsvUtilityTest  ,
SkipBomNotPresent   
)

◆ TEST_F() [101/110]

TEST_F ( CsvUtilityTest  ,
TrimFields   
)

◆ TEST_F() [102/110]

TEST_F ( CsvWriteAllTest  ,
EmptyData   
)

◆ TEST_F() [103/110]

TEST_F ( CsvWriteAllTest  ,
MultipleRows   
)

◆ TEST_F() [104/110]

TEST_F ( CsvWriteRowTest  ,
CustomDelimiter   
)

◆ TEST_F() [105/110]

TEST_F ( CsvWriteRowTest  ,
CustomLineEnding   
)

◆ TEST_F() [106/110]

TEST_F ( CsvWriteRowTest  ,
EmptyRow   
)

◆ TEST_F() [107/110]

TEST_F ( CsvWriteRowTest  ,
RowWithQuotedFields   
)

◆ TEST_F() [108/110]

TEST_F ( CsvWriteRowTest  ,
RowWithQuotesInField   
)

◆ TEST_F() [109/110]

TEST_F ( CsvWriteRowTest  ,
SimpleRow   
)

◆ TEST_F() [110/110]

TEST_F ( CsvWriteRowTest  ,
SingleField   
)