public void construct_valid_cache_for_any_combination_of_params()
        {
            var rnd = new Random(123987);

            for (int count = 0; count < 4096; ++count)
            {
                PTable ptable = null;
                try
                {
                    Log.Trace("Creating PTable with count {0}", count);
                    ptable = ConstructPTable(GetFilePathFor(string.Format("{0}.ptable", count)), count, rnd);

                    for (int depth = 0; depth < 15; ++depth)
                    {
                        var cache = ptable.CacheMidpoints(depth);
                        ValidateCache(cache, count, depth);
                    }
                }
                finally
                {
                    if (ptable != null)
                    {
                        ptable.MarkForDestruction();
                    }
                }
            }
        }