Giter Site home page Giter Site logo

test code about fast-cpp-csv-parser HOT 5 CLOSED

ben-strasser avatar ben-strasser commented on July 2, 2024
test code

from fast-cpp-csv-parser.

Comments (5)

ben-strasser avatar ben-strasser commented on July 2, 2024

I was wondering if you had any test code/benchmarking code ?

None that is in a state that I'd put it in a public repro. ;)

I add some CMake logic to easily add bunches of gtest tests...

I would really prefer not to add further dependencies just for tests. Currently neither cmake nor gtest is needed.

I would like to add an istream interface to LineReader,

Newest version has support for this.

from fast-cpp-csv-parser.

jkhoogland avatar jkhoogland commented on July 2, 2024

well :) that sounds great!

Regarding tests, cmake and gtest.
This is just something that is orthogonal to the library.

Usage of the library doesn't require any dependency.

I will push an example up to my fork.

from fast-cpp-csv-parser.

jkhoogland avatar jkhoogland commented on July 2, 2024

https://github.com/jkhoogland/fast-cpp-csv-parser

has an example of how this could work.

  • orthogonal to your lib
  • automatically downloads gtest
  • automatically picks up new test files

from fast-cpp-csv-parser.

ben-strasser avatar ben-strasser commented on July 2, 2024

My current cmake is older than the required 3.0 so I cannot run your script. Perhaps I should finally get around upgrading my distro. However, I'm not going to do this because of some csv test set.

Also I'm not convinced that gtest is superior for this particular application to a simple:

template<class A, class B>
inline expect_eq_check(const A&a, const B&b, const char*a_label, const char*b_label,int line_num){
    if(a != b){
        cout << "line " << line_num << " : " << a_label << " != "<< b_label << endl
            << "value of left side : " << (a) << endl
            << "value of right side : " << (b) << endl;
    }
}

#define EXPECT_EQ2(a,b,a_label,b_label, line_num) \
    expect_eq_check(a, b, a_label, b_label, line_num)

#define EXPECT_EQ(a, b) \
    EXPECT_EQ2(a,b,#a, #b, __LINE__)
int main(){
  // my tests
}

For a large software project with thousands of tests I buy that gtest has its advantages as for example testing does not abort at the first error but to test a single 1200 line header file...

from fast-cpp-csv-parser.

jkhoogland avatar jkhoogland commented on July 2, 2024

sure, you don't have to use gtest at all.
It is just what i tend to use for my stuff. It can be discarded if you want.
The benefit I like is that I can add a new test by adding

TEST( And, AnotherTest )
{
  // test code... 
}

CMake will pick up the test when regenerating the make file
and I can use gtest to handle the main, it will register the new test.

from fast-cpp-csv-parser.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.