Решение на Трета задача от Звездалина Димитрова

Обратно към всички решения

Към профила на Звездалина Димитрова

Резултати

  • 1 точка от тестове
  • 0 бонус точки
  • 1 точка общо
  • 10 успешни тест(а)
  • 34 неуспешни тест(а)

Код

module RBFS
class File
attr_accessor :data
def initialize(content = nil)
@data = content
end
def data_type
case @data
when NilClass then :nil
when String then :string
when Symbol then :symbol
when Integer, Fixnum, Bignum, Float, Rational then :number
when TrueClass, FalseClass then :boolean
end
end
end
end

Лог от изпълнението

FFFFFFFFFFFFFFFFFFF....FF.FFF.FF.FF.FF.FF.FF

Failures:

  1) RBFS Directory can add a file
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:144:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  2) RBFS Directory can create empty directory
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:150:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  3) RBFS Directory can add a directory
     Failure/Error: subdirectory = RBFS::Directory.new
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:157:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  4) RBFS Directory without files returns empty hash for the files
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:7:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  5) RBFS Directory without files can be serialized
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:11:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  6) RBFS Directory without directories returns empty hash for the directories
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:17:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  7) RBFS Directory with files and directories returns correct file hash
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:27:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  8) RBFS Directory with files and directories returns correct directory hash
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:27:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  9) RBFS Directory serialization #serialize can serialize
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:77:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  10) RBFS Directory serialization #serialize can serialize multiple directories recursively
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:85:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  11) RBFS Directory serialization ::parse can parse empty directories
     Failure/Error: parsed_directory = RBFS::Directory.parse('0:0:')
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:101:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  12) RBFS Directory serialization ::parse can parse directories with files
     Failure/Error: parsed_directory = RBFS::Directory.parse(simple_serialized_string)
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:108:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  13) RBFS Directory serialization ::parse can parse directory trees without files
     Failure/Error: parsed_directory = RBFS::Directory.parse('0:2:dir1:15:0:1:dir2:4:0:0:dir3:4:0:0:')
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:117:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  14) RBFS Directory serialization ::parse can parse directories recursively
     Failure/Error: parsed_directory = RBFS::Directory.parse(recursive_serialized_string)
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:125:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  15) RBFS Directory #[] can walk a single directory
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  16) RBFS Directory #[] can walk multiple directories
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  17) RBFS Directory #[] can get files
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  18) RBFS Directory #[] returns nil if directory or file doesnt exist
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  19) RBFS Directory #[] is case-sensitive
     Failure/Error: subject(:directory) { RBFS::Directory.new }
     NameError:
       uninitialized constant RBFS::Directory
     # /tmp/d20141111-26053-ahsvg1/spec.rb:3:in `block (3 levels) in <top (required)>'
     # /tmp/d20141111-26053-ahsvg1/spec.rb:171:in `block (4 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  20) RBFS File data type nil can be serialized
     Failure/Error: expect(file.serialize).to eq 'nil:'
     NoMethodError:
       undefined method `serialize' for #<RBFS::File:0xba6bf318 @data=nil>
     # /tmp/d20141111-26053-ahsvg1/spec.rb:226:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  21) RBFS File data type nil can be parsed
     Failure/Error: file = RBFS::File.parse('nil:')
     NoMethodError:
       undefined method `parse' for RBFS::File:Class
     # /tmp/d20141111-26053-ahsvg1/spec.rb:230:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  22) RBFS File data type string can be serialized
     Failure/Error: expect(file.serialize).to eq 'string:Hi'
     NoMethodError:
       undefined method `serialize' for #<RBFS::File:0xba6bc4d8 @data="Hi">
     # /tmp/d20141111-26053-ahsvg1/spec.rb:244:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  23) RBFS File data type string can be parsed
     Failure/Error: file = RBFS::File.parse('string:Hey there')
     NoMethodError:
       undefined method `parse' for RBFS::File:Class
     # /tmp/d20141111-26053-ahsvg1/spec.rb:248:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  24) RBFS File data type string can parse a string with colons
     Failure/Error: file = RBFS::File.parse('string:Hay :)')
     NoMethodError:
       undefined method `parse' for RBFS::File:Class
     # /tmp/d20141111-26053-ahsvg1/spec.rb:255:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  25) RBFS File data type symbol can be serialized
     Failure/Error: expect(file.serialize).to eq 'symbol:yo'
     NoMethodError:
       undefined method `serialize' for #<RBFS::File:0xba6b8734 @data=:yo>
     # /tmp/d20141111-26053-ahsvg1/spec.rb:270:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  26) RBFS File data type symbol can be parsed
     Failure/Error: file = RBFS::File.parse('symbol:hello')
     NoMethodError:
       undefined method `parse' for RBFS::File:Class
     # /tmp/d20141111-26053-ahsvg1/spec.rb:274:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  27) RBFS File data type number can be serialized
     Failure/Error: expect(file.serialize).to eq 'number:666'
     NoMethodError:
       undefined method `serialize' for #<RBFS::File:0xba6b5cf0 @data=666>
     # /tmp/d20141111-26053-ahsvg1/spec.rb:289:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  28) RBFS File data type number can be parsed
     Failure/Error: file = RBFS::File.parse('number:1234')
     NoMethodError:
       undefined method `parse' for RBFS::File:Class
     # /tmp/d20141111-26053-ahsvg1/spec.rb:293:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  29) RBFS File data type float number can be serialized
     Failure/Error: expect(file.serialize).to eq 'number:666.6'
     NoMethodError:
       undefined method `serialize' for #<RBFS::File:0xba5c6fb0 @data=666.6>
     # /tmp/d20141111-26053-ahsvg1/spec.rb:308:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  30) RBFS File data type float number can be parsed
     Failure/Error: file = RBFS::File.parse('number:3.14')
     NoMethodError:
       undefined method `parse' for RBFS::File:Class
     # /tmp/d20141111-26053-ahsvg1/spec.rb:312:in `block (5 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  31) RBFS File data type boolean true can be serialized
     Failure/Error: expect(file.serialize).to eq 'boolean:true'
     NoMethodError:
       undefined method `serialize' for #<RBFS::File:0xba5c47b0 @data=true>
     # /tmp/d20141111-26053-ahsvg1/spec.rb:328:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  32) RBFS File data type boolean true can be parsed
     Failure/Error: file = RBFS::File.parse('boolean:true')
     NoMethodError:
       undefined method `parse' for RBFS::File:Class
     # /tmp/d20141111-26053-ahsvg1/spec.rb:332:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  33) RBFS File data type boolean false can be serialized
     Failure/Error: expect(file.serialize).to eq 'boolean:false'
     NoMethodError:
       undefined method `serialize' for #<RBFS::File:0xba5c2348 @data=false>
     # /tmp/d20141111-26053-ahsvg1/spec.rb:347:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

  34) RBFS File data type boolean false can be parsed
     Failure/Error: file = RBFS::File.parse('boolean:false')
     NoMethodError:
       undefined method `parse' for RBFS::File:Class
     # /tmp/d20141111-26053-ahsvg1/spec.rb:351:in `block (6 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (3 levels) in <top (required)>'
     # ./lib/language/ruby/run_with_timeout.rb:5:in `block (2 levels) in <top (required)>'

Finished in 0.0461 seconds
44 examples, 34 failures

Failed examples:

rspec /tmp/d20141111-26053-ahsvg1/spec.rb:141 # RBFS Directory can add a file
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:149 # RBFS Directory can create empty directory
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:156 # RBFS Directory can add a directory
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:6 # RBFS Directory without files returns empty hash for the files
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:10 # RBFS Directory without files can be serialized
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:16 # RBFS Directory without directories returns empty hash for the directories
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:33 # RBFS Directory with files and directories returns correct file hash
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:37 # RBFS Directory with files and directories returns correct directory hash
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:76 # RBFS Directory serialization #serialize can serialize
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:84 # RBFS Directory serialization #serialize can serialize multiple directories recursively
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:100 # RBFS Directory serialization ::parse can parse empty directories
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:107 # RBFS Directory serialization ::parse can parse directories with files
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:116 # RBFS Directory serialization ::parse can parse directory trees without files
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:124 # RBFS Directory serialization ::parse can parse directories recursively
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:177 # RBFS Directory #[] can walk a single directory
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:181 # RBFS Directory #[] can walk multiple directories
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:185 # RBFS Directory #[] can get files
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:189 # RBFS Directory #[] returns nil if directory or file doesnt exist
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:193 # RBFS Directory #[] is case-sensitive
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:225 # RBFS File data type nil can be serialized
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:229 # RBFS File data type nil can be parsed
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:243 # RBFS File data type string can be serialized
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:247 # RBFS File data type string can be parsed
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:254 # RBFS File data type string can parse a string with colons
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:269 # RBFS File data type symbol can be serialized
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:273 # RBFS File data type symbol can be parsed
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:288 # RBFS File data type number can be serialized
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:292 # RBFS File data type number can be parsed
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:307 # RBFS File data type float number can be serialized
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:311 # RBFS File data type float number can be parsed
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:326 # RBFS File data type boolean true can be serialized
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:331 # RBFS File data type boolean true can be parsed
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:345 # RBFS File data type boolean false can be serialized
rspec /tmp/d20141111-26053-ahsvg1/spec.rb:350 # RBFS File data type boolean false can be parsed

История (1 версия и 0 коментара)

Звездалина обнови решението на 10.11.2014 12:09 (преди около 10 години)

+module RBFS
+ class File
+ attr_accessor :data
+
+ def initialize(content = nil)
+ @data = content
+ end
+
+ def data_type
+ case @data
+ when NilClass then :nil
+ when String then :string
+ when Symbol then :symbol
+ when Integer, Fixnum, Bignum, Float, Rational then :number
+ when TrueClass, FalseClass then :boolean
+ end
+ end
+ end
+end