@@ -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