File tree Expand file tree Collapse file tree 3 files changed +12
-11
lines changed Expand file tree Collapse file tree 3 files changed +12
-11
lines changed Original file line number Diff line number Diff line change @@ -553,9 +553,12 @@ class LIBSCRATCHCPP_EXPORT Value
553
553
return doubleToString (d1) == v2.toString ();
554
554
else
555
555
return stringsEqual (v1.toUtf16 (), v2.toUtf16 ());
556
- } else if (v1.isNumber () || v2.isNumber ())
557
- return v1.toDouble () == v2.toDouble ();
558
- else if (v1.isBool () || v2.isBool ())
556
+ } else if (v1.isNumber () || v2.isNumber ()) {
557
+ if (static_cast <int >(v1.m_type ) < 0 || static_cast <int >(v2.m_type ) < 0 )
558
+ return false ;
559
+ else
560
+ return v1.toDouble () == v2.toDouble ();
561
+ } else if (v1.isBool () || v2.isBool ())
559
562
return ((v1.m_type != Type::NaN && v2.m_type != Type::NaN) && (v1.toBool () == v2.toBool ()));
560
563
else
561
564
return false ;
Original file line number Diff line number Diff line change @@ -257,7 +257,7 @@ unsigned int OperatorBlocks::op_ln(VirtualMachine *vm)
257
257
const Value &v = *vm->getInput (0 , 1 );
258
258
if (v < 0 )
259
259
vm->replaceReturnValue (Value (Value::SpecialValue::NaN), 1 );
260
- else if (v == 0 )
260
+ else if (v == 0 || v. isNaN () )
261
261
vm->replaceReturnValue (Value (Value::SpecialValue::NegativeInfinity), 1 );
262
262
else if (!v.isInfinity ())
263
263
vm->replaceReturnValue (std::log (v.toDouble ()), 1 );
@@ -269,7 +269,7 @@ unsigned int OperatorBlocks::op_log(VirtualMachine *vm)
269
269
const Value &v = *vm->getInput (0 , 1 );
270
270
if (v < 0 )
271
271
vm->replaceReturnValue (Value (Value::SpecialValue::NaN), 1 );
272
- else if (v == 0 )
272
+ else if (v == 0 || v. isNaN () )
273
273
vm->replaceReturnValue (Value (Value::SpecialValue::NegativeInfinity), 1 );
274
274
else if (!v.isInfinity ())
275
275
vm->replaceReturnValue (std::log10 (v.toDouble ()), 1 );
Original file line number Diff line number Diff line change @@ -1873,9 +1873,8 @@ TEST(ValueTest, EqualityOperators)
1873
1873
ASSERT_FALSE (v1 == v5);
1874
1874
ASSERT_TRUE (v1 != v5);
1875
1875
1876
- // TODO: Enable this after #198 is fixed
1877
- /* ASSERT_FALSE(v2 == v5);
1878
- ASSERT_TRUE(v2 != v5);*/
1876
+ ASSERT_FALSE (v2 == v5);
1877
+ ASSERT_TRUE (v2 != v5);
1879
1878
}
1880
1879
1881
1880
{
@@ -2042,8 +2041,7 @@ TEST(ValueTest, EqualityOperators)
2042
2041
ASSERT_FALSE (v3 == v7);
2043
2042
ASSERT_TRUE (v3 != v7);
2044
2043
2045
- // TODO: Enable this after #198 is fixed
2046
- /* ASSERT_FALSE(v4 == v7);
2047
- ASSERT_TRUE(v4 != v7);*/
2044
+ ASSERT_FALSE (v4 == v7);
2045
+ ASSERT_TRUE (v4 != v7);
2048
2046
}
2049
2047
}
You can’t perform that action at this time.
0 commit comments