Compression unit test data "easy case"
A few thoughts:

1. Don't use C-style casts

Here

 data.push_back((unsigned char)(rand(mt) * 256)); 
             // ^^^^^^^^^^^^^^^


and here 

 unsigned int count = (unsigned int)(rand(mt) * (data.size() / 2) + 1);
                   // ^^^^^^^^^^^^^^


you use (unchecked) C-style cast operations. I C++ all casts should be either checked, or explicitly a reinterpret_cast (which is merely the same, but clearly shows intention).

In your cases a static_cast&lt;unsigned char&gt; and a static_cast&lt;unsigned int&gt; seems to be more appropriate for me.

2. If you're dealing with plain integer numbers prefer using std::uniform_int_distribution

You are using std::uniform_real_distribution&lt;double&gt;

std::uniform_real_distribution&lt;double&gt; rand(0.0, std::nextafter(1.0, DBL_MAX));


to finally generate integer types (done through implicit conversion).

It would seem more appropriate to use 

 std::uniform_int_distribution&lt;unsigned int&gt; rand(0, std::nextafter(1, UINT_MAX) /* intentional ?? */ );


or even better simply

std::uniform_int_distribution&lt;unsigned int&gt; rand();


and 

data.push_back(static_cast&lt;unsigned char&gt;
    (rand(mt) % std::numeric_limits&lt;unsigned char&gt;::max()); 
// ...
unsigned int count = rand(mt) * (data.size() / 2) + 1;


Floating point conversions and calculations may cause unnecessary overhead in the emitted assembly instructions.

3. Prefer std::numeric_limits over the C-style macro definitions

In C++ you should prefer using std::numeric_limits&lt;double&gt;::max() over the DBL_MAX C-style macro.

At least with GCC I always get compiler errors using these constants (even though &lt;cstdint&gt; was included).

4. Modularize your code to be resuable

As you tagged this with unit-testing I would consider to create a little helper library API that can be used with the unit tests, without calling a separate program.

Instead of the int main(int argc, char* argv[]) entry point, refactor your code (including the stuff from Create 'worst case test' data for compression test) to a helper function API, that can be used easily with the various unit tests:

 namespace Test7ZipData {
     int create_worst_compressible_data(const char* filename);
     int create_easily_compressible_data(const char* filename);
     // int create_average_compressible_data(const char* filename); ????
 }


Compile these into a library, that will be linked with you unit tests.

5. Prefer using raw string literals instead of escaping special characters

Instead of 

const char* filename = "c:\\_Test\\easy.dat";


you can provide a raw string literal

const char* filename = R"(c:\_Test\easy.dat)";


That enhances readability of the literal text.