private void ValidateFloat(JsonSchemaModel schema)
{
if (schema == null)
{
return;
}
if (!this.TestType(schema, JsonSchemaType.Float))
{
return;
}
this.ValidateNotDisallowed(schema);
double num = Convert.ToDouble(this._reader.Value, CultureInfo.InvariantCulture);
if (schema.Maximum.HasValue)
{
double num2 = num;
double?maximum = schema.Maximum;
if (num2 > maximum.GetValueOrDefault() && maximum.HasValue)
{
this.RaiseError("Float {0} exceeds maximum value of {1}.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.Maximum), schema);
}
if (schema.ExclusiveMaximum)
{
double num3 = num;
double?maximum2 = schema.Maximum;
if (num3 == maximum2.GetValueOrDefault() && maximum2.HasValue)
{
this.RaiseError("Float {0} equals maximum value of {1} and exclusive maximum is true.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.Maximum), schema);
}
}
}
if (schema.Minimum.HasValue)
{
double num4 = num;
double?minimum = schema.Minimum;
if (num4 < minimum.GetValueOrDefault() && minimum.HasValue)
{
this.RaiseError("Float {0} is less than minimum value of {1}.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.Minimum), schema);
}
if (schema.ExclusiveMinimum)
{
double num5 = num;
double?minimum2 = schema.Minimum;
if (num5 == minimum2.GetValueOrDefault() && minimum2.HasValue)
{
this.RaiseError("Float {0} equals minimum value of {1} and exclusive minimum is true.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.Minimum), schema);
}
}
}
if (schema.DivisibleBy.HasValue)
{
double value = JsonValidatingReader.FloatingPointRemainder(num, schema.DivisibleBy.Value);
if (!JsonValidatingReader.IsZero(value))
{
this.RaiseError("Float {0} is not evenly divisible by {1}.".FormatWith(CultureInfo.InvariantCulture, JsonConvert.ToString(num), schema.DivisibleBy), schema);
}
}
}