class A { void foo() { float f1 = 0.1f; float f2 = 0.1f; int i = 1; if(f1 == f2) {} // Noncompliant [[sc=11;ec=13]] {{Equality tests should not be made with floating point values.}} if( f1 != f2 ){}// Noncompliant {{Equality tests should not be made with floating point values.}} if( f1 == i ){}// Noncompliant {{Equality tests should not be made with floating point values.}} if( i == f1 ){}// Noncompliant if(f1 != f1){} //compliant NaN test double a = 0.1d; double c = 0.1d; if( a == c ) {} // Noncompliant if( a != c ){}// Noncompliant if( a == i ){}// Noncompliant if( i == a ){}// Noncompliant if( a != a ){} //compliant NaN test if(c <= a && a <= c) {} // Noncompliant if(a <= c && c <= a) {} // Noncompliant if(c <= a && c >= a) {} // Noncompliant if(c >= a && c <= a) {} // Noncompliant if(a >= c && a <= c) {} // Noncompliant if(a <= c && a >= c) {} // Noncompliant if(a >= c && c >= a) {} // Noncompliant if(c >= a && a >= c) {} // Noncompliant if(c < a || a < c) {} // Noncompliant if(a < c || c < a) {} // Noncompliant if(c < a || c > a) {} // Noncompliant if(c > a || c < a) {} // Noncompliant if(a > c || a < c) {} // Noncompliant if(a < c || a > c) {} // Noncompliant if(a > c || c > a) {} // Noncompliant if(c > a || a > c) {} // Noncompliant if(c < a || a > c) {} //Compliant if(c > a || a < c) {} //Compliant } }