Решение на Четвърта задача от Александър Тахчиев
Към профила на Александър Тахчиев
Резултати
- 3 точки от тестове
- 1 отнета точка
- 2 точки общо
- 4 успешни тест(а)
- 4 неуспешни тест(а)
Код
Лог от изпълнението
....FFFF
Failures:
1) Asm.asm implements CMP
Failure/Error: je 5
NoMethodError:
undefined method `execute_instruction' for #<Evaluator:0xb98f8f40>
# /tmp/d20140115-8451-52v7pg/solution.rb:118:in `block (2 levels) in <class:Evaluator>'
# /tmp/d20140115-8451-52v7pg/spec.rb:38:in `block (3 levels) in <top (required)>'
# /tmp/d20140115-8451-52v7pg/solution.rb:3:in `instance_eval'
# /tmp/d20140115-8451-52v7pg/solution.rb:3:in `asm'
# /tmp/d20140115-8451-52v7pg/spec.rb:34:in `block (2 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) Asm.asm implements JMP
Failure/Error: jmp l1
NameError:
undefined local variable or method `l1' for #<Evaluator:0xb98f71b8>
# /tmp/d20140115-8451-52v7pg/spec.rb:70:in `block (3 levels) in <top (required)>'
# /tmp/d20140115-8451-52v7pg/solution.rb:3:in `instance_eval'
# /tmp/d20140115-8451-52v7pg/solution.rb:3:in `asm'
# /tmp/d20140115-8451-52v7pg/spec.rb:68:in `block (2 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) Asm.asm implements LABEL
Failure/Error: je l1
NameError:
undefined local variable or method `l1' for #<Evaluator:0xb98f4850>
# /tmp/d20140115-8451-52v7pg/spec.rb:81:in `block (3 levels) in <top (required)>'
# /tmp/d20140115-8451-52v7pg/solution.rb:3:in `instance_eval'
# /tmp/d20140115-8451-52v7pg/solution.rb:3:in `asm'
# /tmp/d20140115-8451-52v7pg/spec.rb:78:in `block (2 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) Asm.asm can be used to find GCD of two numbers
Failure/Error: label cycle
NameError:
undefined local variable or method `cycle' for #<Evaluator:0xb98f2f28>
# /tmp/d20140115-8451-52v7pg/spec.rb:92:in `block (3 levels) in <top (required)>'
# /tmp/d20140115-8451-52v7pg/solution.rb:3:in `instance_eval'
# /tmp/d20140115-8451-52v7pg/solution.rb:3:in `asm'
# /tmp/d20140115-8451-52v7pg/spec.rb:89:in `block (2 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.00738 seconds
8 examples, 4 failures
Failed examples:
rspec /tmp/d20140115-8451-52v7pg/spec.rb:33 # Asm.asm implements CMP
rspec /tmp/d20140115-8451-52v7pg/spec.rb:67 # Asm.asm implements JMP
rspec /tmp/d20140115-8451-52v7pg/spec.rb:77 # Asm.asm implements LABEL
rspec /tmp/d20140115-8451-52v7pg/spec.rb:88 # Asm.asm can be used to find GCD of two numbers
История (3 версии и 1 коментар)
Александър обнови решението на 15.01.2014 17:26 (преди почти 12 години)
Александър обнови решението на 15.01.2014 17:28 (преди почти 12 години)
Ползваш клас-променливи, което е лоша идея. Казвали сме го много пъти на лекции, включително и на последната сбирка.
Освен това, имаш проблеми с прилагането на конвенцията – слагаш интервали където не трябва, а където трябва – пропускаш. Имаш странно идентиране на места (например метода jmp), излишни скоби (пак там), празни else клаузи (ред 15), доста повторения и проблеми с дизайна.
Не трябва да има интервал преди скобата тук: execute_instruction (where). Оставял си го неконсистентно, само при някои дефиниции на методи.
Щеше да е по-удачно да ползваш символи за имената на регистрите.
Нарушенията ще ти струват наказателни точки.
Виж решенията на колегите, както и нашето (качено е в GitHub), за идеи как може да стане по-добре.
