public void AllFloats_Static() { var e = _AllFloats(); var partitioner = new _AllFloatsPartitioner(e); var options = new ParallelOptions(); options.MaxDegreeOfParallelism = Environment.ProcessorCount - 1; Parallel.ForEach( partitioner, options, part => { try { var i = part.I; var format = part.Format; var asStr = part.AsString; var res = JSON.Deserialize <float>(asStr); var reStr = res.ToString(format); var delta = Math.Abs((float.Parse(asStr) - float.Parse(reStr))); var closeEnough = asStr == reStr || delta <= float.Epsilon; Assert.True(closeEnough, "For i=" + i + " format=" + format + " delta=" + delta + " epsilon=" + float.Epsilon); } catch (Exception x) { throw new Exception(part.AsString, x); } } ); }
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); } } ); }