Test::Unit::TestCase
Test case class
(Not documented)
(Not documented)
Append a setup block for the current testcase
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 153 153: def self::addSetupBlock( &block ) 154: @@methodCounter += 1 155: newMethodName = "setup_#{@@methodCounter}".intern 156: define_method( newMethodName, &block ) 157: self.setupMethods.push newMethodName 158: end
Prepend a teardown block for the current testcase
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 162 162: def self::addTeardownBlock( &block ) 163: @@methodCounter += 1 164: newMethodName = "teardown_#{@@methodCounter}".intern 165: define_method( newMethodName, &block ) 166: self.teardownMethods.unshift newMethodName 167: end
Returns a String containing the specified ANSI escapes suitable for inclusion in another string. The attributes should be one or more of the keys of AnsiAttributes.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 122 122: def self::ansiCode( *attributes ) 123: return '' unless /(?:xterm(?:-color)?|eterm|linux)/i =~ ENV['TERM'] 124: 125: attr = attributes.collect {|a| 126: AnsiAttributes[a] ? AnsiAttributes[a] : nil 127: }.compact.join(';') 128: if attr.empty? 129: return '' 130: else 131: return "\e[%sm" % attr 132: end 133: end
Output the specified msgs joined together to STDERR if $DEBUG is set.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 138 138: def self::debugMsg( *msgs ) 139: return unless $DEBUG 140: self.message "%sDEBUG>>> %s %s" % 141: [ ansiCode('dark', 'white'), msgs.join(''), ansiCode('reset') ] 142: end
Inheritance callback — adds @setupMethods and @teardownMethods ivars and accessors to the inheriting class.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 106 106: def self::inherited( klass ) 107: klass.module_eval { 108: @setupMethods = [] 109: @teardownMethods = [] 110: 111: class << self 112: attr_accessor :setupMethods 113: attr_accessor :teardownMethods 114: end 115: } 116: end
Add the specified block to the code that gets executed by #setup.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 219 219: def addSetupBlock( &block ); self.class.addSetupBlock( &block ); end
Add the specified block to the code that gets executed by #teardown.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 223 223: def addTeardownBlock( &block ); self.class.addTeardownBlock( &block ); end
Instance-alias for the like-named class method
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 461 461: def ansiCode( *attributes ) 462: self.class.ansiCode( *attributes ) 463: end
Assert that the specified klass defines the specified instance method meth.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 434 434: def assert_has_instance_method( klass, meth ) 435: msg = "<%s> expected to define instance method #%s" % 436: [ klass, meth ] 437: assert_block( msg ) { 438: klass.instance_methods.include?( meth.to_s ) 439: } 440: rescue Test::Unit::AssertionFailedError => err 441: cutframe = err.backtrace.reverse.find {|frame| 442: /assert_has_instance_method/ =~ frame 443: } 444: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 445: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 446: end
Assert that the specified object has an instance variable which matches the specified sym. The ’@’ at the beginning of the sym will be prepended if not present.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 399 399: def assert_has_ivar( sym, object ) 400: sym = "@#{sym}" unless /^@/ =~ sym.to_s 401: msg = "Object <%s> expected to have an instance variable <%s>" % 402: [ object.inspect, sym ] 403: assert_block( msg ) { 404: object.instance_variables.include?( sym.to_s ) 405: } 406: rescue Test::Unit::AssertionFailedError => err 407: cutframe = err.backtrace.reverse.find {|frame| 408: /assert_has_ivar/ =~ frame 409: } 410: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 411: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 412: end
Test Hashes for equivalent content
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 234 234: def assert_hash_equal( expected, actual, msg="" ) 235: errmsg = "Expected hash <%p> to be equal to <%p>" % [expected, actual] 236: errmsg += ": #{msg}" unless msg.empty? 237: 238: assert_block( errmsg ) { 239: diffs = compare_hashes( expected, actual ) 240: unless diffs.empty? 241: errmsg += ": " + diffs.join("; ") 242: return false 243: else 244: return true 245: end 246: } 247: rescue Test::Unit::AssertionFailedError => err 248: cutframe = err.backtrace.reverse.find {|frame| 249: /assert_hash_equal/ =~ frame 250: } 251: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 252: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 253: end
Succeeds if obj include? item.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 333 333: def assert_include( item, obj, msg=nil ) 334: msg ||= "<%p> expected to include <%p>." % [ obj, item ] 335: assert_block( msg ) { obj.respond_to?(:include?) && obj.include?(item) } 336: rescue Test::Unit::AssertionFailedError => err 337: cutframe = err.backtrace.reverse.find {|frame| 338: /assert_include/ =~ frame 339: } 340: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 341: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 342: end
Assert that the instance variable specified by sym of an object is equal to the specified value. The ’@’ at the beginning of the sym will be prepended if not present.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 379 379: def assert_ivar_equal( value, object, sym ) 380: sym = "@#{sym}".intern unless /^@/ =~ sym.to_s 381: msg = "Instance variable '%s'\n\tof <%s>\n\texpected to be <%s>\n" % 382: [ sym, object.inspect, value.inspect ] 383: msg += "\tbut was: <%p>" % [ object.instance_variable_get(sym) ] 384: assert_block( msg ) { 385: value == object.instance_variable_get(sym) 386: } 387: rescue Test::Unit::AssertionFailedError => err 388: cutframe = err.backtrace.reverse.find {|frame| 389: /assert_ivar_equal/ =~ frame 390: } 391: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 392: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 393: end
Assert that the specified str does not match the given regular expression re.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 417 417: def assert_not_match( re, str ) 418: msg = "<%s> expected not to match %p" % 419: [ str, re ] 420: assert_block( msg ) { 421: !re.match( str ) 422: } 423: rescue Test::Unit::AssertionFailedError => err 424: cutframe = err.backtrace.reverse.find {|frame| 425: /assert_not_match/ =~ frame 426: } 427: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 428: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 429: end
Override the stupid deprecated #assert_not_nil so when it disappears, code doesn‘t break.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 320 320: def assert_not_nil( obj, msg=nil ) 321: msg ||= "<%p> expected to not be nil." % obj 322: assert_block( msg ) { !obj.nil? } 323: rescue Test::Unit::AssertionFailedError => err 324: cutframe = err.backtrace.reverse.find {|frame| 325: /assert_not_nil/ =~ frame 326: } 327: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 328: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 329: end
Negative of assert_respond_to
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 361 361: def assert_not_respond_to( obj, meth ) 362: msg = "%s expected NOT to respond to '%s'" % 363: [ obj.inspect, meth ] 364: assert_block( msg ) { 365: !obj.respond_to?( meth ) 366: } 367: rescue Test::Unit::AssertionFailedError => err 368: cutframe = err.backtrace.reverse.find {|frame| 369: /assert_not_respond_to/ =~ frame 370: } 371: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 372: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 373: end
Negative of assert_respond_to
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 346 346: def assert_not_tainted( obj, msg=nil ) 347: msg ||= "<%p> expected to NOT be tainted" % [ obj ] 348: assert_block( msg ) { 349: !obj.tainted? 350: } 351: rescue Test::Unit::AssertionFailedError => err 352: cutframe = err.backtrace.reverse.find {|frame| 353: /assert_not_tainted/ =~ frame 354: } 355: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 356: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 357: end
Test Hashes (or any other objects with a #keys method) for key set equality
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 284 284: def assert_same_keys( expected, actual, msg="" ) 285: errmsg = "Expected keys of <%p> to be equal to those of <%p>" % 286: [ actual, expected ] 287: errmsg += ": #{msg}" unless msg.empty? 288: 289: ekeys = expected.keys; akeys = actual.keys 290: assert_block( errmsg ) { 291: diffs = [] 292: 293: # XOR the arrays and make a diff for each one 294: ((ekeys + akeys) - (ekeys & akeys)).each do |key| 295: if ekeys.include?( key ) 296: diffs << "missing key %p" % [key] 297: else 298: diffs << "extra key %p" % [key] 299: end 300: end 301: 302: unless diffs.empty? 303: errmsg += "\n" + diffs.join("; ") 304: return false 305: else 306: return true 307: end 308: } 309: rescue Test::Unit::AssertionFailedError => err 310: cutframe = err.backtrace.reverse.find {|frame| 311: /assert_hash_equal/ =~ frame 312: } 313: firstIdx = (err.backtrace.rindex( cutframe )||0) + 1 314: Kernel.raise( err, err.message, err.backtrace[firstIdx..-1] ) 315: end
Try to force garbage collection to start.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 502 502: def collectGarbage 503: a = [] 504: 1000.times { a << {} } 505: a = nil 506: GC.start 507: end
Compare two hashes for content, returning a list of their differences as descriptions. An empty Array return-value means they were the same.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 258 258: def compare_hashes( hash1, hash2, subkeys=nil ) 259: diffs = [] 260: seenKeys = [] 261: 262: hash1.each {|k,v| 263: if !hash2.key?( k ) 264: diffs << "missing %p pair" % k 265: elsif hash1[k].is_a?( Hash ) && hash2[k].is_a?( Hash ) 266: diffs.push( compare_hashes(hash1[k], hash2[k]) ) 267: elsif hash2[k] != hash1[k] 268: diffs << "value for %p expected to be %p, but was %p" % 269: [ k, hash1[k], hash2[k] ] 270: else 271: seenKeys << k 272: end 273: } 274: 275: extraKeys = (hash2.keys - hash1.keys) 276: diffs << "extra key/s: #{extraKeys.join(', ')}" unless extraKeys.empty? 277: 278: return diffs.flatten 279: end
Instance alias for the like-named class method
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 467 467: def debugMsg( *msgs ) 468: self.class.debugMsg( *msgs ) 469: end
Turn off the stupid ‘No tests were specified‘
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 227 227: def default_test; end
Return a separator line made up of length of the specified char.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 474 474: def hrule( length=75, char="-" ) 475: return (char * length ) + "\n" 476: end
Return a section delimited by hrules with the specified caption and content.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 480 480: def hruleSection( content, caption='' ) 481: caption << ' ' unless caption.empty? 482: return caption + 483: hrule( 75 - caption.length ) + 484: content.chomp + "\n" + 485: hrule() 486: end
Instance alias for the like-named class method.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 455 455: def message( *msgs ) 456: self.class.message( *msgs ) 457: end
Output a header for delimiting tests
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 490 490: def printTestHeader( desc ) 491: return unless $VERBOSE || $DEBUG 492: message "%s>>> %s <<<%s" % 493: [ ansiCode('bold','yellow','on_blue'), desc, ansiCode('reset') ] 494: end
Output the specified promptString as a prompt (in green) and return the user‘s input with leading and trailing spaces removed.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 547 547: def prompt( promptString ) 548: promptString.chomp! 549: return readline( ansiCode('bold', 'green') + "#{promptString}: " + 550: ansiCode('reset') ).strip 551: end
Prompt the user with the given promptString via #prompt, substituting the given default if the user doesn‘t input anything.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 557 557: def promptWithDefault( promptString, default ) 558: response = prompt( "%s [%s]" % [ promptString, default ] ) 559: if response.empty? 560: return default 561: else 562: return response 563: end 564: end
Output the name of the test as it‘s running if in verbose mode.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 518 518: def run( result ) 519: $stderr.puts self.name if $VERBOSE || $DEBUG 520: 521: # Support debugging for individual tests 522: olddb = nil 523: if $DebugPattern && $DebugPattern =~ @method_name 524: Arrow::Logger.global.outputters << 525: Arrow::Logger::Outputter.create( 'file:stderr' ) 526: Arrow::Logger.global.level = :debug 527: 528: olddb = $DEBUG 529: $DEBUG = true 530: end 531: 532: super 533: 534: unless olddb.nil? 535: $DEBUG = olddb 536: Arrow::Logger.global.outputters.clear 537: end 538: end
Run dynamically-added setup methods
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 180 180: def setup( *args ) 181: if self.class < Arrow::TestCase 182: self.class.setupMethods.each {|sblock| 183: self.send( sblock ) 184: } 185: end 186: end
Skip the current step (called from #setup) with the reason given.
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 202 202: def skip( reason=nil ) 203: if reason 204: msg = "Skipping %s: %s" % [ @method_name, reason ] 205: else 206: msg = "Skipping %s: No reason given." % @method_name 207: end 208: 209: $stderr.puts( msg ) if $VERBOSE 210: @method_name = :skipped_test 211: end
Run dynamically-added teardown methods
# File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 191 191: def teardown( *args ) 192: if self.class < Arrow::TestCase 193: self.class.teardownMethods.each {|tblock| 194: self.send( tblock ) 195: } 196: end 197: end
--- SEC00182
--- ""
--- - name: setupMethods rw: RW a_desc: "" - name: teardownMethods rw: RW a_desc: ""
--- - methods: - visibility: public aref: M000244 name: addSetupBlock sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 153</span>\n\ 153: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">addSetupBlock</span>( <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> )\n\ 154: <span class=\"ruby-ivar\">@@methodCounter</span> <span class=\"ruby-operator\">+=</span> <span class=\"ruby-value\">1</span>\n\ 155: <span class=\"ruby-identifier\">newMethodName</span> = <span class=\"ruby-node\">"setup_#{@@methodCounter}"</span>.<span class=\"ruby-identifier\">intern</span>\n\ 156: <span class=\"ruby-identifier\">define_method</span>( <span class=\"ruby-identifier\">newMethodName</span>, <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> )\n\ 157: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">setupMethods</span>.<span class=\"ruby-identifier\">push</span> <span class=\"ruby-identifier\">newMethodName</span>\n\ 158: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Append a <a href="TestCase.html#M000246">setup</a> block for the current testcase </p> params: ( &block ) - visibility: public aref: M000245 name: addTeardownBlock sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 162</span>\n\ 162: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">addTeardownBlock</span>( <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> )\n\ 163: <span class=\"ruby-ivar\">@@methodCounter</span> <span class=\"ruby-operator\">+=</span> <span class=\"ruby-value\">1</span>\n\ 164: <span class=\"ruby-identifier\">newMethodName</span> = <span class=\"ruby-node\">"teardown_#{@@methodCounter}"</span>.<span class=\"ruby-identifier\">intern</span>\n\ 165: <span class=\"ruby-identifier\">define_method</span>( <span class=\"ruby-identifier\">newMethodName</span>, <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> )\n\ 166: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">teardownMethods</span>.<span class=\"ruby-identifier\">unshift</span> <span class=\"ruby-identifier\">newMethodName</span>\n\ 167: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Prepend a <a href="TestCase.html#M000248">teardown</a> block for the current testcase </p> params: ( &block ) - visibility: public aref: M000241 name: ansiCode sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 122</span>\n\ 122: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">ansiCode</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">attributes</span> )\n\ 123: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">''</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-regexp re\">/(?:xterm(?:-color)?|eterm|linux)/i</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-constant\">ENV</span>[<span class=\"ruby-value str\">'TERM'</span>]\n\ 124: \n\ 125: <span class=\"ruby-identifier\">attr</span> = <span class=\"ruby-identifier\">attributes</span>.<span class=\"ruby-identifier\">collect</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">a</span><span class=\"ruby-operator\">|</span>\n\ 126: <span class=\"ruby-constant\">AnsiAttributes</span>[<span class=\"ruby-identifier\">a</span>] <span class=\"ruby-operator\">?</span> <span class=\"ruby-constant\">AnsiAttributes</span>[<span class=\"ruby-identifier\">a</span>] <span class=\"ruby-operator\">:</span> <span class=\"ruby-keyword kw\">nil</span>\n\ 127: }.<span class=\"ruby-identifier\">compact</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">';'</span>)\n\ 128: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">attr</span>.<span class=\"ruby-identifier\">empty?</span> \n\ 129: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">''</span>\n\ 130: <span class=\"ruby-keyword kw\">else</span>\n\ 131: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">"\\e[%sm"</span> <span class=\"ruby-operator\">%</span> <span class=\"ruby-identifier\">attr</span>\n\ 132: <span class=\"ruby-keyword kw\">end</span>\n\ 133: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Returns a String containing the specified ANSI escapes suitable for inclusion in another string. The <tt>attributes</tt> should be one or more of the keys of AnsiAttributes. </p> params: ( *attributes ) - visibility: public aref: M000242 name: debugMsg sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 138</span>\n\ 138: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">debugMsg</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 139: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">$DEBUG</span>\n\ 140: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">message</span> <span class=\"ruby-value str\">"%sDEBUG>>> %s %s"</span> <span class=\"ruby-operator\">%</span>\n\ 141: [ <span class=\"ruby-identifier\">ansiCode</span>(<span class=\"ruby-value str\">'dark'</span>, <span class=\"ruby-value str\">'white'</span>), <span class=\"ruby-identifier\">msgs</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">''</span>), <span class=\"ruby-identifier\">ansiCode</span>(<span class=\"ruby-value str\">'reset'</span>) ]\n\ 142: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output the specified <tt>msgs</tt> joined together to <tt>STDERR</tt> if <tt>$DEBUG</tt> is set. </p> params: ( *msgs ) - visibility: public aref: M000240 name: inherited sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 106</span>\n\ 106: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">inherited</span>( <span class=\"ruby-identifier\">klass</span> )\n\ 107: <span class=\"ruby-identifier\">klass</span>.<span class=\"ruby-identifier\">module_eval</span> {\n\ 108: <span class=\"ruby-ivar\">@setupMethods</span> = []\n\ 109: <span class=\"ruby-ivar\">@teardownMethods</span> = []\n\ 110: \n\ 111: <span class=\"ruby-keyword kw\">class</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-keyword kw\">self</span>\n\ 112: <span class=\"ruby-identifier\">attr_accessor</span> <span class=\"ruby-identifier\">:setupMethods</span>\n\ 113: <span class=\"ruby-identifier\">attr_accessor</span> <span class=\"ruby-identifier\">:teardownMethods</span>\n\ 114: <span class=\"ruby-keyword kw\">end</span>\n\ 115: }\n\ 116: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Inheritance callback — adds @setupMethods and @teardownMethods ivars and accessors to the inheriting class. </p> params: ( klass ) - visibility: public aref: M000243 name: message sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 147</span>\n\ 147: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">message</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 148: <span class=\"ruby-identifier\">$stderr</span>.<span class=\"ruby-identifier\">puts</span> <span class=\"ruby-identifier\">msgs</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">''</span>)\n\ 149: <span class=\"ruby-identifier\">$stderr</span>.<span class=\"ruby-identifier\">flush</span>\n\ 150: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output the specified <tt>msgs</tt> joined together to <tt>STDOUT</tt>. </p> params: ( *msgs ) category: Class type: Public - methods: - visibility: public aref: M000251 name: addSetupBlock sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 219</span>\n\ 219: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">addSetupBlock</span>( <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> ); <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">addSetupBlock</span>( <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> ); <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Add the specified <tt>block</tt> to the code that gets executed by <a href="TestCase.html#M000246">#setup</a>. </p> params: ( &block ) - visibility: public aref: M000252 name: addTeardownBlock sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 223</span>\n\ 223: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">addTeardownBlock</span>( <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> ); <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">addTeardownBlock</span>( <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> ); <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Add the specified <tt>block</tt> to the code that gets executed by <a href="TestCase.html#M000248">#teardown</a>. </p> params: ( &block ) - visibility: public aref: M000266 name: ansiCode sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 461</span>\n\ 461: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">ansiCode</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">attributes</span> )\n\ 462: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">ansiCode</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">attributes</span> )\n\ 463: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Instance-alias for the like-named class method </p> params: ( *attributes ) - visibility: public aref: M000264 name: assert_has_instance_method sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 434</span>\n\ 434: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_has_instance_method</span>( <span class=\"ruby-identifier\">klass</span>, <span class=\"ruby-identifier\">meth</span> )\n\ 435: <span class=\"ruby-identifier\">msg</span> = <span class=\"ruby-value str\">"<%s> expected to define instance method #%s"</span> <span class=\"ruby-operator\">%</span>\n\ 436: [ <span class=\"ruby-identifier\">klass</span>, <span class=\"ruby-identifier\">meth</span> ]\n\ 437: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">msg</span> ) {\n\ 438: <span class=\"ruby-identifier\">klass</span>.<span class=\"ruby-identifier\">instance_methods</span>.<span class=\"ruby-identifier\">include?</span>( <span class=\"ruby-identifier\">meth</span>.<span class=\"ruby-identifier\">to_s</span> )\n\ 439: }\n\ 440: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 441: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 442: <span class=\"ruby-regexp re\">/assert_has_instance_method/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 443: }\n\ 444: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 445: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 446: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Assert that the specified <tt>klass</tt> defines the specified instance method <tt>meth</tt>. </p> params: ( klass, meth ) - visibility: public aref: M000262 name: assert_has_ivar sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 399</span>\n\ 399: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_has_ivar</span>( <span class=\"ruby-identifier\">sym</span>, <span class=\"ruby-identifier\">object</span> )\n\ 400: <span class=\"ruby-identifier\">sym</span> = <span class=\"ruby-node\">"@#{sym}"</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-regexp re\">/^@/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">sym</span>.<span class=\"ruby-identifier\">to_s</span>\n\ 401: <span class=\"ruby-identifier\">msg</span> = <span class=\"ruby-value str\">"Object <%s> expected to have an instance variable <%s>"</span> <span class=\"ruby-operator\">%</span>\n\ 402: [ <span class=\"ruby-identifier\">object</span>.<span class=\"ruby-identifier\">inspect</span>, <span class=\"ruby-identifier\">sym</span> ]\n\ 403: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">msg</span> ) {\n\ 404: <span class=\"ruby-identifier\">object</span>.<span class=\"ruby-identifier\">instance_variables</span>.<span class=\"ruby-identifier\">include?</span>( <span class=\"ruby-identifier\">sym</span>.<span class=\"ruby-identifier\">to_s</span> )\n\ 405: }\n\ 406: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 407: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 408: <span class=\"ruby-regexp re\">/assert_has_ivar/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 409: }\n\ 410: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 411: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 412: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Assert that the specified <tt>object</tt> has an instance variable which matches the specified <tt>sym</tt>. The ’@’ at the beginning of the <tt>sym</tt> will be prepended if not present. </p> params: ( sym, object ) - visibility: public aref: M000254 name: assert_hash_equal sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 234</span>\n\ 234: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_hash_equal</span>( <span class=\"ruby-identifier\">expected</span>, <span class=\"ruby-identifier\">actual</span>, <span class=\"ruby-identifier\">msg</span>=<span class=\"ruby-value str\">""</span> )\n\ 235: <span class=\"ruby-identifier\">errmsg</span> = <span class=\"ruby-value str\">"Expected hash <%p> to be equal to <%p>"</span> <span class=\"ruby-operator\">%</span> [<span class=\"ruby-identifier\">expected</span>, <span class=\"ruby-identifier\">actual</span>]\n\ 236: <span class=\"ruby-identifier\">errmsg</span> <span class=\"ruby-operator\">+=</span> <span class=\"ruby-node\">": #{msg}"</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">msg</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 237: \n\ 238: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">errmsg</span> ) {\n\ 239: <span class=\"ruby-identifier\">diffs</span> = <span class=\"ruby-identifier\">compare_hashes</span>( <span class=\"ruby-identifier\">expected</span>, <span class=\"ruby-identifier\">actual</span> )\n\ 240: <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">diffs</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 241: <span class=\"ruby-identifier\">errmsg</span> <span class=\"ruby-operator\">+=</span> <span class=\"ruby-value str\">": "</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-identifier\">diffs</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">"; "</span>)\n\ 242: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">false</span>\n\ 243: <span class=\"ruby-keyword kw\">else</span>\n\ 244: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">true</span>\n\ 245: <span class=\"ruby-keyword kw\">end</span>\n\ 246: }\n\ 247: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 248: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 249: <span class=\"ruby-regexp re\">/assert_hash_equal/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 250: }\n\ 251: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 252: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 253: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Test Hashes for equivalent content </p> params: ( expected, actual, msg="" ) - visibility: public aref: M000258 name: assert_include sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 333</span>\n\ 333: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_include</span>( <span class=\"ruby-identifier\">item</span>, <span class=\"ruby-identifier\">obj</span>, <span class=\"ruby-identifier\">msg</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\ 334: <span class=\"ruby-identifier\">msg</span> <span class=\"ruby-operator\">||=</span> <span class=\"ruby-value str\">"<%p> expected to include <%p>."</span> <span class=\"ruby-operator\">%</span> [ <span class=\"ruby-identifier\">obj</span>, <span class=\"ruby-identifier\">item</span> ]\n\ 335: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">msg</span> ) { <span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">respond_to?</span>(<span class=\"ruby-identifier\">:include?</span>) <span class=\"ruby-operator\">&&</span> <span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">include?</span>(<span class=\"ruby-identifier\">item</span>) }\n\ 336: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 337: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 338: <span class=\"ruby-regexp re\">/assert_include/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 339: }\n\ 340: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 341: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 342: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Succeeds if <tt>obj</tt> include? <tt>item</tt>. </p> params: ( item, obj, msg=nil ) - visibility: public aref: M000261 name: assert_ivar_equal sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 379</span>\n\ 379: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_ivar_equal</span>( <span class=\"ruby-identifier\">value</span>, <span class=\"ruby-identifier\">object</span>, <span class=\"ruby-identifier\">sym</span> )\n\ 380: <span class=\"ruby-identifier\">sym</span> = <span class=\"ruby-node\">"@#{sym}"</span>.<span class=\"ruby-identifier\">intern</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-regexp re\">/^@/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">sym</span>.<span class=\"ruby-identifier\">to_s</span>\n\ 381: <span class=\"ruby-identifier\">msg</span> = <span class=\"ruby-value str\">"Instance variable '%s'\\n\\tof <%s>\\n\\texpected to be <%s>\\n"</span> <span class=\"ruby-operator\">%</span>\n\ 382: [ <span class=\"ruby-identifier\">sym</span>, <span class=\"ruby-identifier\">object</span>.<span class=\"ruby-identifier\">inspect</span>, <span class=\"ruby-identifier\">value</span>.<span class=\"ruby-identifier\">inspect</span> ]\n\ 383: <span class=\"ruby-identifier\">msg</span> <span class=\"ruby-operator\">+=</span> <span class=\"ruby-value str\">"\\tbut was: <%p>"</span> <span class=\"ruby-operator\">%</span> [ <span class=\"ruby-identifier\">object</span>.<span class=\"ruby-identifier\">instance_variable_get</span>(<span class=\"ruby-identifier\">sym</span>) ]\n\ 384: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">msg</span> ) {\n\ 385: <span class=\"ruby-identifier\">value</span> <span class=\"ruby-operator\">==</span> <span class=\"ruby-identifier\">object</span>.<span class=\"ruby-identifier\">instance_variable_get</span>(<span class=\"ruby-identifier\">sym</span>)\n\ 386: }\n\ 387: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 388: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 389: <span class=\"ruby-regexp re\">/assert_ivar_equal/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 390: }\n\ 391: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 392: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 393: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Assert that the instance variable specified by <tt>sym</tt> of an <tt>object</tt> is equal to the specified <tt>value</tt>. The ’@’ at the beginning of the <tt>sym</tt> will be prepended if not present. </p> params: ( value, object, sym ) - visibility: public aref: M000263 name: assert_not_match sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 417</span>\n\ 417: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_not_match</span>( <span class=\"ruby-identifier\">re</span>, <span class=\"ruby-identifier\">str</span> )\n\ 418: <span class=\"ruby-identifier\">msg</span> = <span class=\"ruby-value str\">"<%s> expected not to match %p"</span> <span class=\"ruby-operator\">%</span>\n\ 419: [ <span class=\"ruby-identifier\">str</span>, <span class=\"ruby-identifier\">re</span> ]\n\ 420: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">msg</span> ) {\n\ 421: <span class=\"ruby-operator\">!</span><span class=\"ruby-identifier\">re</span>.<span class=\"ruby-identifier\">match</span>( <span class=\"ruby-identifier\">str</span> )\n\ 422: }\n\ 423: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 424: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 425: <span class=\"ruby-regexp re\">/assert_not_match/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 426: }\n\ 427: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 428: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 429: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Assert that the specified <tt>str</tt> does <b>not</b> match the given regular expression <tt>re</tt>. </p> params: ( re, str ) - visibility: public aref: M000257 name: assert_not_nil sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 320</span>\n\ 320: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_not_nil</span>( <span class=\"ruby-identifier\">obj</span>, <span class=\"ruby-identifier\">msg</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\ 321: <span class=\"ruby-identifier\">msg</span> <span class=\"ruby-operator\">||=</span> <span class=\"ruby-value str\">"<%p> expected to not be nil."</span> <span class=\"ruby-operator\">%</span> <span class=\"ruby-identifier\">obj</span>\n\ 322: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">msg</span> ) { <span class=\"ruby-operator\">!</span><span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">nil?</span> }\n\ 323: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 324: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 325: <span class=\"ruby-regexp re\">/assert_not_nil/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 326: }\n\ 327: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 328: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 329: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Override the stupid deprecated <a href="TestCase.html#M000257">#assert_not_nil</a> so when it disappears, code doesn‘t break. </p> params: ( obj, msg=nil ) - visibility: public aref: M000260 name: assert_not_respond_to sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 361</span>\n\ 361: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_not_respond_to</span>( <span class=\"ruby-identifier\">obj</span>, <span class=\"ruby-identifier\">meth</span> )\n\ 362: <span class=\"ruby-identifier\">msg</span> = <span class=\"ruby-value str\">"%s expected NOT to respond to '%s'"</span> <span class=\"ruby-operator\">%</span>\n\ 363: [ <span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">inspect</span>, <span class=\"ruby-identifier\">meth</span> ]\n\ 364: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">msg</span> ) {\n\ 365: <span class=\"ruby-operator\">!</span><span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">respond_to?</span>( <span class=\"ruby-identifier\">meth</span> )\n\ 366: }\n\ 367: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 368: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 369: <span class=\"ruby-regexp re\">/assert_not_respond_to/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 370: }\n\ 371: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 372: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 373: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Negative of assert_respond_to </p> params: ( obj, meth ) - visibility: public aref: M000259 name: assert_not_tainted sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 346</span>\n\ 346: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_not_tainted</span>( <span class=\"ruby-identifier\">obj</span>, <span class=\"ruby-identifier\">msg</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\ 347: <span class=\"ruby-identifier\">msg</span> <span class=\"ruby-operator\">||=</span> <span class=\"ruby-value str\">"<%p> expected to NOT be tainted"</span> <span class=\"ruby-operator\">%</span> [ <span class=\"ruby-identifier\">obj</span> ]\n\ 348: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">msg</span> ) {\n\ 349: <span class=\"ruby-operator\">!</span><span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">tainted?</span>\n\ 350: }\n\ 351: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 352: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 353: <span class=\"ruby-regexp re\">/assert_not_tainted/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 354: }\n\ 355: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 356: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 357: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Negative of assert_respond_to </p> params: ( obj, msg=nil ) - visibility: public aref: M000256 name: assert_same_keys sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 284</span>\n\ 284: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">assert_same_keys</span>( <span class=\"ruby-identifier\">expected</span>, <span class=\"ruby-identifier\">actual</span>, <span class=\"ruby-identifier\">msg</span>=<span class=\"ruby-value str\">""</span> )\n\ 285: <span class=\"ruby-identifier\">errmsg</span> = <span class=\"ruby-value str\">"Expected keys of <%p> to be equal to those of <%p>"</span> <span class=\"ruby-operator\">%</span>\n\ 286: [ <span class=\"ruby-identifier\">actual</span>, <span class=\"ruby-identifier\">expected</span> ]\n\ 287: <span class=\"ruby-identifier\">errmsg</span> <span class=\"ruby-operator\">+=</span> <span class=\"ruby-node\">": #{msg}"</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">msg</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 288: \n\ 289: <span class=\"ruby-identifier\">ekeys</span> = <span class=\"ruby-identifier\">expected</span>.<span class=\"ruby-identifier\">keys</span>; <span class=\"ruby-identifier\">akeys</span> = <span class=\"ruby-identifier\">actual</span>.<span class=\"ruby-identifier\">keys</span>\n\ 290: <span class=\"ruby-identifier\">assert_block</span>( <span class=\"ruby-identifier\">errmsg</span> ) {\n\ 291: <span class=\"ruby-identifier\">diffs</span> = []\n\ 292: \n\ 293: <span class=\"ruby-comment cmt\"># XOR the arrays and make a diff for each one</span>\n\ 294: ((<span class=\"ruby-identifier\">ekeys</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-identifier\">akeys</span>) <span class=\"ruby-operator\">-</span> (<span class=\"ruby-identifier\">ekeys</span> <span class=\"ruby-operator\">&</span> <span class=\"ruby-identifier\">akeys</span>)).<span class=\"ruby-identifier\">each</span> <span class=\"ruby-keyword kw\">do</span> <span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">key</span><span class=\"ruby-operator\">|</span>\n\ 295: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">ekeys</span>.<span class=\"ruby-identifier\">include?</span>( <span class=\"ruby-identifier\">key</span> )\n\ 296: <span class=\"ruby-identifier\">diffs</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">"missing key %p"</span> <span class=\"ruby-operator\">%</span> [<span class=\"ruby-identifier\">key</span>]\n\ 297: <span class=\"ruby-keyword kw\">else</span>\n\ 298: <span class=\"ruby-identifier\">diffs</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">"extra key %p"</span> <span class=\"ruby-operator\">%</span> [<span class=\"ruby-identifier\">key</span>]\n\ 299: <span class=\"ruby-keyword kw\">end</span>\n\ 300: <span class=\"ruby-keyword kw\">end</span>\n\ 301: \n\ 302: <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">diffs</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 303: <span class=\"ruby-identifier\">errmsg</span> <span class=\"ruby-operator\">+=</span> <span class=\"ruby-value str\">"\\n"</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-identifier\">diffs</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">"; "</span>)\n\ 304: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">false</span>\n\ 305: <span class=\"ruby-keyword kw\">else</span>\n\ 306: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">true</span>\n\ 307: <span class=\"ruby-keyword kw\">end</span>\n\ 308: }\n\ 309: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span> =<span class=\"ruby-operator\">></span> <span class=\"ruby-identifier\">err</span>\n\ 310: <span class=\"ruby-identifier\">cutframe</span> = <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">reverse</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">frame</span><span class=\"ruby-operator\">|</span>\n\ 311: <span class=\"ruby-regexp re\">/assert_hash_equal/</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-identifier\">frame</span>\n\ 312: }\n\ 313: <span class=\"ruby-identifier\">firstIdx</span> = (<span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>.<span class=\"ruby-identifier\">rindex</span>( <span class=\"ruby-identifier\">cutframe</span> )<span class=\"ruby-operator\">||</span><span class=\"ruby-value\">0</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value\">1</span>\n\ 314: <span class=\"ruby-constant\">Kernel</span>.<span class=\"ruby-identifier\">raise</span>( <span class=\"ruby-identifier\">err</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">message</span>, <span class=\"ruby-identifier\">err</span>.<span class=\"ruby-identifier\">backtrace</span>[<span class=\"ruby-identifier\">firstIdx</span><span class=\"ruby-operator\">..</span><span class=\"ruby-value\">-1</span>] )\n\ 315: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Test Hashes (or any other objects with a #keys method) for key set equality </p> params: ( expected, actual, msg="" ) - visibility: public aref: M000271 name: collectGarbage sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 502</span>\n\ 502: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">collectGarbage</span>\n\ 503: <span class=\"ruby-identifier\">a</span> = []\n\ 504: <span class=\"ruby-value\">1000</span>.<span class=\"ruby-identifier\">times</span> { <span class=\"ruby-identifier\">a</span> <span class=\"ruby-operator\"><<</span> {} }\n\ 505: <span class=\"ruby-identifier\">a</span> = <span class=\"ruby-keyword kw\">nil</span>\n\ 506: <span class=\"ruby-constant\">GC</span>.<span class=\"ruby-identifier\">start</span>\n\ 507: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Try to force garbage collection to start. </p> params: () - visibility: public aref: M000255 name: compare_hashes sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 258</span>\n\ 258: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">compare_hashes</span>( <span class=\"ruby-identifier\">hash1</span>, <span class=\"ruby-identifier\">hash2</span>, <span class=\"ruby-identifier\">subkeys</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\ 259: <span class=\"ruby-identifier\">diffs</span> = []\n\ 260: <span class=\"ruby-identifier\">seenKeys</span> = []\n\ 261: \n\ 262: <span class=\"ruby-identifier\">hash1</span>.<span class=\"ruby-identifier\">each</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">k</span>,<span class=\"ruby-identifier\">v</span><span class=\"ruby-operator\">|</span>\n\ 263: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-operator\">!</span><span class=\"ruby-identifier\">hash2</span>.<span class=\"ruby-identifier\">key?</span>( <span class=\"ruby-identifier\">k</span> )\n\ 264: <span class=\"ruby-identifier\">diffs</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">"missing %p pair"</span> <span class=\"ruby-operator\">%</span> <span class=\"ruby-identifier\">k</span>\n\ 265: <span class=\"ruby-keyword kw\">elsif</span> <span class=\"ruby-identifier\">hash1</span>[<span class=\"ruby-identifier\">k</span>].<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Hash</span> ) <span class=\"ruby-operator\">&&</span> <span class=\"ruby-identifier\">hash2</span>[<span class=\"ruby-identifier\">k</span>].<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Hash</span> )\n\ 266: <span class=\"ruby-identifier\">diffs</span>.<span class=\"ruby-identifier\">push</span>( <span class=\"ruby-identifier\">compare_hashes</span>(<span class=\"ruby-identifier\">hash1</span>[<span class=\"ruby-identifier\">k</span>], <span class=\"ruby-identifier\">hash2</span>[<span class=\"ruby-identifier\">k</span>]) )\n\ 267: <span class=\"ruby-keyword kw\">elsif</span> <span class=\"ruby-identifier\">hash2</span>[<span class=\"ruby-identifier\">k</span>] <span class=\"ruby-operator\">!=</span> <span class=\"ruby-identifier\">hash1</span>[<span class=\"ruby-identifier\">k</span>]\n\ 268: <span class=\"ruby-identifier\">diffs</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">"value for %p expected to be %p, but was %p"</span> <span class=\"ruby-operator\">%</span>\n\ 269: [ <span class=\"ruby-identifier\">k</span>, <span class=\"ruby-identifier\">hash1</span>[<span class=\"ruby-identifier\">k</span>], <span class=\"ruby-identifier\">hash2</span>[<span class=\"ruby-identifier\">k</span>] ]\n\ 270: <span class=\"ruby-keyword kw\">else</span>\n\ 271: <span class=\"ruby-identifier\">seenKeys</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-identifier\">k</span>\n\ 272: <span class=\"ruby-keyword kw\">end</span>\n\ 273: }\n\ 274: \n\ 275: <span class=\"ruby-identifier\">extraKeys</span> = (<span class=\"ruby-identifier\">hash2</span>.<span class=\"ruby-identifier\">keys</span> <span class=\"ruby-operator\">-</span> <span class=\"ruby-identifier\">hash1</span>.<span class=\"ruby-identifier\">keys</span>)\n\ 276: <span class=\"ruby-identifier\">diffs</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-node\">"extra key/s: #{extraKeys.join(', ')}"</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">extraKeys</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 277: \n\ 278: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">diffs</span>.<span class=\"ruby-identifier\">flatten</span>\n\ 279: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Compare two hashes for content, returning a list of their differences as descriptions. An empty Array return-value means they were the same. </p> params: ( hash1, hash2, subkeys=nil ) - visibility: public aref: M000267 name: debugMsg sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 467</span>\n\ 467: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">debugMsg</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 468: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">debugMsg</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 469: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Instance alias for the like-named class method </p> params: ( *msgs ) - visibility: public aref: M000253 name: default_test sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 227</span>\n\ 227: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">default_test</span>; <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Turn off the stupid ‘No tests were specified‘ </p> params: () - visibility: public aref: M000268 name: hrule sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 474</span>\n\ 474: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">hrule</span>( <span class=\"ruby-identifier\">length</span>=<span class=\"ruby-value\">75</span>, <span class=\"ruby-identifier\">char</span>=<span class=\"ruby-value str\">"-"</span> )\n\ 475: <span class=\"ruby-keyword kw\">return</span> (<span class=\"ruby-identifier\">char</span> <span class=\"ruby-operator\">*</span> <span class=\"ruby-identifier\">length</span> ) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value str\">"\\n"</span>\n\ 476: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Return a separator line made up of <tt>length</tt> of the specified <tt>char</tt>. </p> params: ( length=75, char="-" ) - visibility: public aref: M000269 name: hruleSection sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 480</span>\n\ 480: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">hruleSection</span>( <span class=\"ruby-identifier\">content</span>, <span class=\"ruby-identifier\">caption</span>=<span class=\"ruby-value str\">''</span> )\n\ 481: <span class=\"ruby-identifier\">caption</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">' '</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">caption</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 482: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">caption</span> <span class=\"ruby-operator\">+</span>\n\ 483: <span class=\"ruby-identifier\">hrule</span>( <span class=\"ruby-value\">75</span> <span class=\"ruby-operator\">-</span> <span class=\"ruby-identifier\">caption</span>.<span class=\"ruby-identifier\">length</span> ) <span class=\"ruby-operator\">+</span>\n\ 484: <span class=\"ruby-identifier\">content</span>.<span class=\"ruby-identifier\">chomp</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-value str\">"\\n"</span> <span class=\"ruby-operator\">+</span>\n\ 485: <span class=\"ruby-identifier\">hrule</span>()\n\ 486: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Return a section delimited by hrules with the specified <tt>caption</tt> and <tt>content</tt>. </p> params: ( content, caption='' ) - visibility: public aref: M000265 name: message sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 455</span>\n\ 455: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">message</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 456: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">message</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 457: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Instance alias for the like-named class method. </p> params: ( *msgs ) - visibility: public aref: M000270 name: printTestHeader sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 490</span>\n\ 490: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">printTestHeader</span>( <span class=\"ruby-identifier\">desc</span> )\n\ 491: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">$VERBOSE</span> <span class=\"ruby-operator\">||</span> <span class=\"ruby-identifier\">$DEBUG</span>\n\ 492: <span class=\"ruby-identifier\">message</span> <span class=\"ruby-value str\">"%s>>> %s <<<%s"</span> <span class=\"ruby-operator\">%</span> \n\ 493: [ <span class=\"ruby-identifier\">ansiCode</span>(<span class=\"ruby-value str\">'bold'</span>,<span class=\"ruby-value str\">'yellow'</span>,<span class=\"ruby-value str\">'on_blue'</span>), <span class=\"ruby-identifier\">desc</span>, <span class=\"ruby-identifier\">ansiCode</span>(<span class=\"ruby-value str\">'reset'</span>) ]\n\ 494: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output a header for delimiting tests </p> params: ( desc ) - visibility: public aref: M000274 name: prompt sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 547</span>\n\ 547: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">prompt</span>( <span class=\"ruby-identifier\">promptString</span> )\n\ 548: <span class=\"ruby-identifier\">promptString</span>.<span class=\"ruby-identifier\">chomp!</span>\n\ 549: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">readline</span>( <span class=\"ruby-identifier\">ansiCode</span>(<span class=\"ruby-value str\">'bold'</span>, <span class=\"ruby-value str\">'green'</span>) <span class=\"ruby-operator\">+</span> <span class=\"ruby-node\">"#{promptString}: "</span> <span class=\"ruby-operator\">+</span>\n\ 550: <span class=\"ruby-identifier\">ansiCode</span>(<span class=\"ruby-value str\">'reset'</span>) ).<span class=\"ruby-identifier\">strip</span>\n\ 551: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output the specified <tt>promptString</tt> as a <a href="TestCase.html#M000274">prompt</a> (in green) and return the user‘s input with leading and trailing spaces removed. </p> params: ( promptString ) - visibility: public aref: M000275 name: promptWithDefault sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 557</span>\n\ 557: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">promptWithDefault</span>( <span class=\"ruby-identifier\">promptString</span>, <span class=\"ruby-identifier\">default</span> )\n\ 558: <span class=\"ruby-identifier\">response</span> = <span class=\"ruby-identifier\">prompt</span>( <span class=\"ruby-value str\">"%s [%s]"</span> <span class=\"ruby-operator\">%</span> [ <span class=\"ruby-identifier\">promptString</span>, <span class=\"ruby-identifier\">default</span> ] )\n\ 559: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">response</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 560: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">default</span>\n\ 561: <span class=\"ruby-keyword kw\">else</span>\n\ 562: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">response</span>\n\ 563: <span class=\"ruby-keyword kw\">end</span>\n\ 564: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Prompt the user with the given <tt>promptString</tt> via <a href="TestCase.html#M000274">#prompt</a>, substituting the given <tt>default</tt> if the user doesn‘t input anything. </p> params: ( promptString, default ) - visibility: public aref: M000273 name: run sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 518</span>\n\ 518: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">run</span>( <span class=\"ruby-identifier\">result</span> )\n\ 519: <span class=\"ruby-identifier\">$stderr</span>.<span class=\"ruby-identifier\">puts</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span> <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">$VERBOSE</span> <span class=\"ruby-operator\">||</span> <span class=\"ruby-identifier\">$DEBUG</span>\n\ 520: \n\ 521: <span class=\"ruby-comment cmt\"># Support debugging for individual tests</span>\n\ 522: <span class=\"ruby-identifier\">olddb</span> = <span class=\"ruby-keyword kw\">nil</span>\n\ 523: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">$DebugPattern</span> <span class=\"ruby-operator\">&&</span> <span class=\"ruby-identifier\">$DebugPattern</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-ivar\">@method_name</span>\n\ 524: <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Logger</span>.<span class=\"ruby-identifier\">global</span>.<span class=\"ruby-identifier\">outputters</span> <span class=\"ruby-operator\"><<</span>\n\ 525: <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Logger</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Outputter</span>.<span class=\"ruby-identifier\">create</span>( <span class=\"ruby-value str\">'file:stderr'</span> )\n\ 526: <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Logger</span>.<span class=\"ruby-identifier\">global</span>.<span class=\"ruby-identifier\">level</span> = <span class=\"ruby-identifier\">:debug</span>\n\ 527: \n\ 528: <span class=\"ruby-identifier\">olddb</span> = <span class=\"ruby-identifier\">$DEBUG</span>\n\ 529: <span class=\"ruby-identifier\">$DEBUG</span> = <span class=\"ruby-keyword kw\">true</span>\n\ 530: <span class=\"ruby-keyword kw\">end</span>\n\ 531: \n\ 532: <span class=\"ruby-keyword kw\">super</span>\n\ 533: \n\ 534: <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">olddb</span>.<span class=\"ruby-identifier\">nil?</span>\n\ 535: <span class=\"ruby-identifier\">$DEBUG</span> = <span class=\"ruby-identifier\">olddb</span> \n\ 536: <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Logger</span>.<span class=\"ruby-identifier\">global</span>.<span class=\"ruby-identifier\">outputters</span>.<span class=\"ruby-identifier\">clear</span>\n\ 537: <span class=\"ruby-keyword kw\">end</span>\n\ 538: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output the name of the test as it‘s running if in verbose mode. </p> params: ( result ) - visibility: public aref: M000247 name: set_up m_desc: |- <p> Alias for <a href="TestCase.html#M000246">#setup</a> </p> params: ( *args ) - visibility: public aref: M000246 name: setup sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 180</span>\n\ 180: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">setup</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\ 181: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span> <span class=\"ruby-operator\"><</span> <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">TestCase</span>\n\ 182: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">setupMethods</span>.<span class=\"ruby-identifier\">each</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">sblock</span><span class=\"ruby-operator\">|</span>\n\ 183: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">send</span>( <span class=\"ruby-identifier\">sblock</span> )\n\ 184: }\n\ 185: <span class=\"ruby-keyword kw\">end</span>\n\ 186: <span class=\"ruby-keyword kw\">end</span>" aka: - aref: TestCase.html#M000247 name: set_up m_desc: |- <p> Run dynamically-added <a href="TestCase.html#M000246">setup</a> methods </p> params: ( *args ) - visibility: public aref: M000250 name: skip sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 202</span>\n\ 202: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">skip</span>( <span class=\"ruby-identifier\">reason</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\ 203: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">reason</span>\n\ 204: <span class=\"ruby-identifier\">msg</span> = <span class=\"ruby-value str\">"Skipping %s: %s"</span> <span class=\"ruby-operator\">%</span> [ <span class=\"ruby-ivar\">@method_name</span>, <span class=\"ruby-identifier\">reason</span> ]\n\ 205: <span class=\"ruby-keyword kw\">else</span>\n\ 206: <span class=\"ruby-identifier\">msg</span> = <span class=\"ruby-value str\">"Skipping %s: No reason given."</span> <span class=\"ruby-operator\">%</span> <span class=\"ruby-ivar\">@method_name</span>\n\ 207: <span class=\"ruby-keyword kw\">end</span>\n\ 208: \n\ 209: <span class=\"ruby-identifier\">$stderr</span>.<span class=\"ruby-identifier\">puts</span>( <span class=\"ruby-identifier\">msg</span> ) <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">$VERBOSE</span>\n\ 210: <span class=\"ruby-ivar\">@method_name</span> = <span class=\"ruby-identifier\">:skipped_test</span>\n\ 211: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Skip the current step (called from <a href="TestCase.html#M000246">#setup</a>) with the <tt>reason</tt> given. </p> params: ( reason=nil ) - visibility: public aref: M000249 name: tear_down m_desc: |- <p> Alias for <a href="TestCase.html#M000248">#teardown</a> </p> params: ( *args ) - visibility: public aref: M000248 name: teardown sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 191</span>\n\ 191: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">teardown</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\ 192: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span> <span class=\"ruby-operator\"><</span> <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">TestCase</span>\n\ 193: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">teardownMethods</span>.<span class=\"ruby-identifier\">each</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">tblock</span><span class=\"ruby-operator\">|</span>\n\ 194: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">send</span>( <span class=\"ruby-identifier\">tblock</span> )\n\ 195: }\n\ 196: <span class=\"ruby-keyword kw\">end</span>\n\ 197: <span class=\"ruby-keyword kw\">end</span>" aka: - aref: TestCase.html#M000249 name: tear_down m_desc: |- <p> Run dynamically-added <a href="TestCase.html#M000248">teardown</a> methods </p> params: ( *args ) - visibility: public aref: M000272 name: zerofile sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/testcase.rb, line 511</span>\n\ 511: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">zerofile</span>( <span class=\"ruby-identifier\">filename</span> )\n\ 512: <span class=\"ruby-constant\">File</span>.<span class=\"ruby-identifier\">open</span>( <span class=\"ruby-identifier\">filename</span>, <span class=\"ruby-constant\">File</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">WRONLY</span><span class=\"ruby-operator\">|</span><span class=\"ruby-constant\">File</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">CREAT</span> ) {}\n\ 513: <span class=\"ruby-constant\">File</span>.<span class=\"ruby-identifier\">truncate</span>( <span class=\"ruby-identifier\">filename</span>, <span class=\"ruby-value\">0</span> )\n\ 514: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Touch a file and truncate it to 0 bytes </p> params: ( filename ) category: Instance type: Public
---
--- - name: AnsiAttributes desc: |+ Set some ANSI escape code constants (Shamelessly stolen from Perl‘s Term::ANSIColor by Russ Allbery <rra@stanford.edu> and Zenin <zenin@best.com> value: "{ 'clear' => 0, 'reset' => 0, 'bold' => 1, 'dark' => 2, 'underline' => 4, 'underscore' => 4, 'blink' => 5, 'reverse' => 7, 'concealed' => 8, 'black' => 30, 'on_black' => 40, 'red' => 31, 'on_red' => 41, 'green' => 32, 'on_green' => 42, 'yellow' => 33, 'on_yellow' => 43, 'blue' => 34, 'on_blue' => 44, 'magenta' => 35, 'on_magenta' => 45, 'cyan' => 36, 'on_cyan' => 46, 'white' => 37, 'on_white' => 47" - name: ConfigSaveFile desc: |+ The name of the file containing marshalled configuration values value: ""test.cfg""
Generated with the Darkfish Rdoc Generator.