Just as a small training for implementing specifications, I implemented the Base64 part of the RFC 4648 completely.

By importing the complete PDF into Microsoft Word and marking requirement-relevant information with background color, I created a unit tests for the necessary chapters.

e.g. https://github.com/mbrenn/burnsystems.base64/blob/master/src/BurnSystems.Base64.Tests/EncoderTests.cs

Each unit test is green and code coverage for unit tests is about 100%.

Why did I create such a library, even though Base64 is directly supported by .Net Standard 1.0 and therefore each .Net implementation like .Net Framework or .Net Core?

As mentioned: I wanted to implement the RFC as strict as possible, which is not given by the .Net Framework (some exception handling deviates) and in addition it was given as a training how to implement RFC requirement documents and somehow get a tracing between the specification and implementation. More work will follow!

And… because I can!

(Source: http://sdtimes.com/fifteen-catty-programmers/)

The complete source code is available at GitHub: