public void AllFloats_Dynamic() { var e = _AllFloats(); var partitioner = new _AllFloatsPartitioner(e); var options = new ParallelOptions(); options.MaxDegreeOfParallelism = Environment.ProcessorCount - 1; Parallel.ForEach( partitioner, options, part => { try { DeserializeDynamicTests.CheckFloat(part); } catch (Exception x) { throw new Exception(part.AsString, x); } } ); }
static IEnumerable <DeserializeDynamicTests._AllFloatsStruct> _AllFloats() { var byteArr = new byte[4]; for (ulong i = 0; i <= uint.MaxValue; i++) { var f = DeserializeDynamicTests.ULongToFloat(i, byteArr); if (float.IsNaN(f) || float.IsInfinity(f)) { continue; } for (var j = 0; j < _AllFloatsFormats.Length; j++) { var format = _AllFloatsFormats[j]; var asStr = f.ToString(format); yield return(new DeserializeDynamicTests._AllFloatsStruct { AsString = asStr, Float = f, Format = format, I = (uint)i }); } } }