@@ -412,7 +412,11 @@ TEST(VirtualMachineTest, OP_RANDOM)
412412 static unsigned int bytecode2[] = { OP_START , OP_CONST , 1 , OP_CONST , 2 , OP_RANDOM , OP_HALT };
413413 static unsigned int bytecode3[] = { OP_START , OP_CONST , 3 , OP_CONST , 0 , OP_RANDOM , OP_HALT };
414414 static unsigned int bytecode4[] = { OP_START , OP_CONST , 2 , OP_CONST , 3 , OP_RANDOM , OP_HALT };
415- static Value constValues[] = { -45 , 12 , 6.05 , -78.686 };
415+ static unsigned int bytecode5[] = { OP_START , OP_CONST , 4 , OP_CONST , 5 , OP_RANDOM , OP_HALT };
416+ static unsigned int bytecode6[] = { OP_START , OP_CONST , 5 , OP_CONST , 6 , OP_RANDOM , OP_HALT };
417+ static unsigned int bytecode7[] = { OP_START , OP_CONST , 7 , OP_CONST , 4 , OP_RANDOM , OP_HALT };
418+ static unsigned int bytecode8[] = { OP_START , OP_CONST , 6 , OP_CONST , 7 , OP_RANDOM , OP_HALT };
419+ static Value constValues[] = { -45 , 12 , 6.05 , -78.686 , " -45" , " 12" , " 6.05" , " -78.686" };
416420
417421 VirtualMachinePrivate vm (nullptr , nullptr , nullptr , nullptr );
418422 vm.constValues = constValues;
@@ -455,6 +459,42 @@ TEST(VirtualMachineTest, OP_RANDOM)
455459
456460 ASSERT_EQ (vm.regCount , 1 );
457461 ASSERT_EQ (vm.regs [vm.regCount - 1 ]->toDouble (), -28.648764 );
462+
463+ EXPECT_CALL (rng, randint (-45 , 12 )).WillOnce (Return (-18 ));
464+ vm.bytecode = bytecode5;
465+ vm.pos = bytecode5;
466+ vm.regCount = 0 ;
467+ vm.run (vm.pos );
468+
469+ ASSERT_EQ (vm.regCount , 1 );
470+ ASSERT_EQ (vm.regs [vm.regCount - 1 ]->toDouble (), -18 );
471+
472+ EXPECT_CALL (rng, randintDouble (12 , 6.05 )).WillOnce (Return (3.486789 ));
473+ vm.bytecode = bytecode6;
474+ vm.pos = bytecode6;
475+ vm.regCount = 0 ;
476+ vm.run (vm.pos );
477+
478+ ASSERT_EQ (vm.regCount , 1 );
479+ ASSERT_EQ (vm.regs [vm.regCount - 1 ]->toDouble (), 3.486789 );
480+
481+ EXPECT_CALL (rng, randintDouble (-78.686 , -45 )).WillOnce (Return (-59.468873 ));
482+ vm.bytecode = bytecode7;
483+ vm.pos = bytecode7;
484+ vm.regCount = 0 ;
485+ vm.run (vm.pos );
486+
487+ ASSERT_EQ (vm.regCount , 1 );
488+ ASSERT_EQ (vm.regs [vm.regCount - 1 ]->toDouble (), -59.468873 );
489+
490+ EXPECT_CALL (rng, randintDouble (6.05 , -78.686 )).WillOnce (Return (-28.648764 ));
491+ vm.bytecode = bytecode8;
492+ vm.pos = bytecode8;
493+ vm.regCount = 0 ;
494+ vm.run (vm.pos );
495+
496+ ASSERT_EQ (vm.regCount , 1 );
497+ ASSERT_EQ (vm.regs [vm.regCount - 1 ]->toDouble (), -28.648764 );
458498}
459499
460500TEST (VirtualMachineTest, OP_ROUND )
@@ -955,7 +995,7 @@ TEST(VirtualMachineTest, OP_LIST_DEL)
955995 0 , OP_CONST , 9 , OP_LIST_DEL , 0 , OP_READ_LIST , 0 , OP_CONST , 10 , OP_LIST_DEL , 0 , OP_READ_LIST , 0 , OP_CONST , 11 , OP_LIST_DEL , 0 , OP_READ_LIST ,
956996 0 , OP_CONST , 12 , OP_LIST_DEL , 0 , OP_READ_LIST , 0 , OP_CONST , 13 , OP_LIST_DEL , 0 , OP_READ_LIST , 0 , OP_HALT
957997 };
958- static Value constValues[] = { 3 , 1 , 6 , 0 , 7 , -1 , 9 , Value::SpecialValue::NegativeInfinity, Value::SpecialValue::Infinity, Value::SpecialValue::NaN, " invalid" , " last" , " random" , " all" };
998+ static Value constValues[] = { 3 , 1 , " 6 " , 0 , 7 , -1 , 9 , Value::SpecialValue::NegativeInfinity, Value::SpecialValue::Infinity, Value::SpecialValue::NaN, " invalid" , " last" , " random" , " all" };
959999 List list1 (" " , " list1" );
9601000 list1.push_back (" a" );
9611001 list1.push_back (" b" );
@@ -1027,7 +1067,7 @@ TEST(VirtualMachineTest, OP_LIST_INSERT)
10271067 0 , OP_CONST , 0 , OP_CONST , 10 , OP_LIST_INSERT , 0 , OP_READ_LIST , 0 , OP_CONST , 0 , OP_CONST , 11 , OP_LIST_INSERT , 0 , OP_READ_LIST , 0 , OP_CONST ,
10281068 0 , OP_CONST , 12 , OP_LIST_INSERT , 0 , OP_READ_LIST , 0 , OP_CONST , 0 , OP_CONST , 13 , OP_LIST_INSERT , 0 , OP_READ_LIST , 0 , OP_HALT
10291069 };
1030- static Value constValues[] = { " new item" , 3 , 1 , 10 , 0 , 12 , -1 , 14 , Value::SpecialValue::NegativeInfinity, Value::SpecialValue::Infinity, Value::SpecialValue::NaN, " last" , " random" , " invalid" };
1070+ static Value constValues[] = { " new item" , " 3 " , 1 , 10 , 0 , 12 , -1 , 14 , Value::SpecialValue::NegativeInfinity, Value::SpecialValue::Infinity, Value::SpecialValue::NaN, " last" , " random" , " invalid" };
10311071 List list1 (" " , " list1" );
10321072 list1.push_back (" a" );
10331073 list1.push_back (" b" );
@@ -1079,7 +1119,7 @@ TEST(VirtualMachineTest, OP_LIST_REPLACE)
10791119 12 , OP_CONST , 14 , OP_LIST_REPLACE , 0 , OP_READ_LIST , 0 , OP_CONST , 13 , OP_CONST , 0 , OP_LIST_REPLACE , 0 , OP_READ_LIST , 0 , OP_HALT
10801120 };
10811121 static Value constValues[] = {
1082- " new item" , 3 , 1 , 8 , 0 , 9 , -1 , 12 , Value::SpecialValue::NegativeInfinity, Value::SpecialValue::Infinity, Value::SpecialValue::NaN, " last" , " random" , " invalid" , " test"
1122+ " new item" , 3 , " 1 " , 8 , 0 , 9 , -1 , 12 , Value::SpecialValue::NegativeInfinity, Value::SpecialValue::Infinity, Value::SpecialValue::NaN, " last" , " random" , " invalid" , " test"
10831123 };
10841124 List list1 (" " , " list1" );
10851125 list1.push_back (" a" );
@@ -1128,7 +1168,7 @@ TEST(VirtualMachineTest, OP_LIST_GET_ITEM)
11281168 0 , OP_CONST , 5 , OP_LIST_GET_ITEM , 0 , OP_CONST , 6 , OP_LIST_GET_ITEM , 0 , OP_CONST , 7 , OP_LIST_GET_ITEM , 0 , OP_CONST , 8 , OP_LIST_GET_ITEM , 0 , OP_CONST , 9 , OP_LIST_GET_ITEM ,
11291169 0 , OP_CONST , 10 , OP_LIST_GET_ITEM , 0 , OP_CONST , 11 , OP_LIST_GET_ITEM , 0 , OP_CONST , 12 , OP_LIST_GET_ITEM , 0 , OP_HALT
11301170 };
1131- static Value constValues[] = { 3 , 1 , 8 , 0 , 9 , -1 , 12 , Value::SpecialValue::NegativeInfinity, Value::SpecialValue::Infinity, Value::SpecialValue::NaN, " last" , " random" , " invalid" };
1171+ static Value constValues[] = { 3 , 1 , " 8 " , 0 , 9 , -1 , 12 , Value::SpecialValue::NegativeInfinity, Value::SpecialValue::Infinity, Value::SpecialValue::NaN, " last" , " random" , " invalid" };
11321172 List list1 (" " , " list1" );
11331173 list1.push_back (" a" );
11341174 list1.push_back (" b" );
0 commit comments