# frozen_string_literal: false require_relative '../../spec_helper' require 'stringio' describe "StringIO#ungetbyte" do it "ungets a single byte from a string starting with a single byte character" do str = 'This is a simple string.' io = StringIO.new("#{str}") c = io.getc c.should == 'T' io.ungetbyte(83) io.string.should == 'Shis is a simple string.' end it "ungets a single byte from a string in the middle of a multibyte character" do str = "\u01a9" io = StringIO.new(str) b = io.getbyte b.should == 0xc6 # First byte of UTF-8 encoding of \u01a9 io.ungetbyte(0xce) # First byte of UTF-8 encoding of \u03a9 io.string.should == "\u03a9" end it "constrains the value of a numeric argument to a single byte" do str = 'This is a simple string.' io = StringIO.new("#{str}") c = io.getc c.should == 'T' io.ungetbyte(83 | 0xff00) io.string.should == 'Shis is a simple string.' end it "ungets the bytes of a string if given a string as an argument" do str = "\u01a9" io = StringIO.new(str) b = io.getbyte b.should == 0xc6 # First byte of UTF-8 encoding of \u01a9 io.ungetbyte("\u01a9") io.string.bytes.should == [198, 169, 169] end end The Ruby Programming Language
summaryrefslogtreecommitdiff
path: root/tool/test/minitest
AgeCommit message (Expand)Author
2021-05-19Removed minitest/mockHiroshi SHIBATA
2021-05-18Removed minitest/benchmarkHiroshi SHIBATA
2021-05-18Removed minitest/autorunHiroshi SHIBATA
2020-05-08Workaround for Minitest5Hiroshi SHIBATA
2020-02-27MiniTest::Unit.options has default :seedKoichi Sasada
2020-02-27`srand($seed)` at the beginning of each testKoichi Sasada
2019-07-02Adjust minitest file pathNobuyoshi Nakada
2019-07-02Adjust minitest file pathNobuyoshi Nakada
2019-07-02Split test files for test-framework that are test-unit and minitest to tool d...Hiroshi SHIBATA