Пример #1
0
 void test_set_byte() {
   CharArray* c = String::create(state, "xyz")->data();
   c->set_byte(state, Fixnum::from(0), Fixnum::from('1'));
   TS_ASSERT_EQUALS(c->get_byte(state, Fixnum::from(0)), Fixnum::from('1'));
   c->set_byte(state, Fixnum::from(2), Fixnum::from('2'));
   TS_ASSERT_EQUALS(c->get_byte(state, Fixnum::from(2)), Fixnum::from('2'));
 }
Пример #2
0
 void test_set_byte_out_of_bounds() {
   CharArray* c = String::create(state, "xyz")->data();
   native_int sz = c->size(state)->to_native();
   TS_ASSERT_THROWS_ASSERT(c->set_byte(state, Fixnum::from(sz), Fixnum::from('0')),
       const RubyException &e,
       TS_ASSERT(Exception::object_bounds_exceeded_error_p(state, e.exception)));
   TS_ASSERT_THROWS_ASSERT(c->set_byte(state, Fixnum::from(sz+1), Fixnum::from('0')),
       const RubyException &e,
       TS_ASSERT(Exception::object_bounds_exceeded_error_p(state, e.exception)));
   TS_ASSERT_THROWS_ASSERT(c->set_byte(state, Fixnum::from(-1), Fixnum::from('0')),
       const RubyException &e,
       TS_ASSERT(Exception::object_bounds_exceeded_error_p(state, e.exception)));
 }