<commit_before>bandit
======

A BDD style unit testing framework for C++11

This is still an experiment in using C++11. I ended up with a framework similar
to [RSpec](https://github.com/joakimkarlsson/snowhouse.git), [Mocha](http://visionmedia.github.io/mocha/) or [Jasmine](http://pivotal.github.io/jasmine/) from other environments.

bandit is a test framework. It is (going to be) agnostic of the assertion 
framework to use. Right now it uses [snowhouse](https://github.com/joakimkarlsson/snowhouse) for its internal testing. [Snowhouse](https://github.com/joakimkarlsson/snowhouse) is the assertion framework used by [igloo](https://github.com/joakimkarlsson/igloo).

As bandit makes heavy use of lambdas it does not have to do a whole lot of preprocessor magic to get things done. The only macro
right now is the go_bandit() construct which is used to register which specs to run.

This is a complete test application written in bandit:

```cpp
#include <bandit/bandit.h>
using namespace bandit;

#include <snowhouse/snowhouse.h>
using namespace snowhouse;

go_bandit([](){

    describe("fuzzbox:", [](){
      guitar_ptr guitar;
      fuzzbox_ptr fuzzbox;

      before_each([&](){
        guitar = guitar_ptr(new struct guitar());
        fuzzbox = fuzzbox_ptr(new struct fuzzbox());
      });

      before_each([&](){
        guitar->add_effect(fuzzbox.get());<commit_msg>README: Removed inclusion of snowhouse for now<commit_after>bandit
======

A BDD style unit testing framework for C++11

This is still an experiment in using C++11. I ended up with a framework similar
to [RSpec](https://github.com/joakimkarlsson/snowhouse.git), [Mocha](http://visionmedia.github.io/mocha/) or [Jasmine](http://pivotal.github.io/jasmine/) from other environments.

bandit is a test framework. It is (going to be) agnostic of the assertion 
framework to use. Right now it uses [snowhouse](https://github.com/joakimkarlsson/snowhouse) for its internal testing. [Snowhouse](https://github.com/joakimkarlsson/snowhouse) is the assertion framework used by [igloo](https://github.com/joakimkarlsson/igloo).

As bandit makes heavy use of lambdas it does not have to do a whole lot of preprocessor magic to get things done. The only macro
right now is the go_bandit() construct which is used to register which specs to run.

This is a complete test application written in bandit:

```cpp
#include <bandit/bandit.h>
using namespace bandit;

go_bandit([](){

    describe("fuzzbox:", [](){
      guitar_ptr guitar;
      fuzzbox_ptr fuzzbox;

      before_each([&](){
        guitar = guitar_ptr(new struct guitar());
        fuzzbox = fuzzbox_ptr(new struct fuzzbox());
      });

      before_each([&](){
        guitar->add_effect(fuzzbox.get());
{'fraction_non_alphanumeric': 0.11504747991234478, 'fraction_numerical': 0.0029218407596785976, 'mean_word_length': 4.177693761814745, 'pattern_counts': {'":': 0, '<': 6, '<?xml version=': 0, '>': 8, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1104230', 'n_tokens_mistral': 874, 'n_tokens_neox': 847, 'n_words': 288}