C# managed library for generating data, e.g. JSON and CSV/TSV files
Because there are situations where I have to generate data for testing, so it is better to have a tool for that.
Current nuget release is 0.9.1-git-8fd607a
- Build .dll or include lib folder in your project
- Use code like (you can test this example in DotnetFiddle )
// Arrange
GenerateData generateData = new GenerateData();
RunningNumberGenerator runningNumberGenerator = new RunningNumberGenerator();
runningNumberGenerator.Init(null, seed: 1337);
generateData.AddGeneratorToChain(runningNumberGenerator);
NameGenerator nameGenerator = new NameGenerator();
nameGenerator.Init(null, seed: 1337);
generateData.AddGeneratorToChain(nameGenerator);
generateData.AddWantedElement(("Id", runningNumberGenerator, null, typeof(int), null));
generateData.AddWantedElement(("Firstname", nameGenerator, "firstname", typeof(string), null));
generateData.AddWantedElement(("Lastname", nameGenerator, "lastname", typeof(string), null));
SomeSeparatedValueOutput outCSV = new SomeSeparatedValueOutput();
generateData.output = outCSV;
MemoryStream ms = new MemoryStream();
// Act
generateData.Generate(ms);
string result = Encoding.UTF8.GetString(ms.ToArray());
to generate data like
Id,Firstname,Lastname
0,Jacob,Smith
1,Sophia,Johnson
2,Mason,Williams
3,Isabella,Brown
4,William,Jones
5,Emma,Garcia
6,Jayden,Miller
7,Olivia,Davis
8,Noah,Rodriguez
9,Ava,Martinez
all features are under DatagenSharp namespace
- Create instance of GenerateData
- Add all generators
- Add all wanted elements to (use generators given in step 2.)
- Add output
- Generate
- One generator can be used by multiple chains
- Chain fetches data from generator and then applies mutators in order to that given data
- Generators are notified when one line/entry has been completely generated
Dotnet core 2.0 environment
Move to lib folder and run
dotnet build
Use create-nuget-debug.ps1 go generate the command, it will be something like
dotnet pack --configuration Debug /p:InformationalVersion="07/21/2018 09:10:01 8866971970797f9d9300438f31bd8712b0defae4" --version-suffix 8866971
(this will be improved in future!)
Move to tests folder if you aren't there yet
- nunit
- NUnit3TestAdapter
- Microsoft.NET.Test.Sdk
- Newtonsoft.Json
All requirements are restored when you run
dotnet restore
Just call
dotnet test
- Running number generator
- Name generator (supports English-US and Finnish names)
- Basic CSV/TSV output
- Basic JSON output
- Few test cases
- Random null mutator
- Email mutator
- Boolean generator
- Boolean mutator
- Guid generator
- Integer generator
- IPv4 generator
- Bitcoin address generator
- More generators
- More mutators
- More test cases
- Benchmarks
- Better help messages
All code is released under "Do whatever you want" license aka Unlicense