if options[:fractional_mode]
create_fractional_complex_number
else
- "(#{create_complex_number})"
+ create_complex_number
end
- return "#{result}^2"if options[:term_number] == 1
- if last_operator == '/'
- return conjugate_complex(last_operand)
- end
+ return "#{result}^2" if options[:term_number] == 1
+ return conjugate_complex(last_operand) if last_operator == '/'
result
end
imaginary_part = create_integer(options[:min], options[:max], false)
return (2 + rand(8)).to_s if [real_part, imaginary_part].include? 0
operator = %w[ + - ].sample
- "#{real_part} #{operator} #{imaginary_part.to_s.sub('1', '')}%i"
+ "(#{real_part} #{operator} #{imaginary_part.to_s.sub('1', '')}%i)"
end
def create_fractional_complex_number
numerator_part = 1 + rand(9)
denominator_part = create_complex_number
- "#{numerator_part} / (#{denominator_part})"
+ "#{numerator_part} / #{denominator_part}"
end
def conjugate_complex(expression)
settings = @defaults.merge(:max => 1)
subject.__send__(:options=, settings)
result = subject.__send__(:create_complex_number)
- result.should match(/\A1 [\-+] %i\z/)
+ result.should match(/\A\(1 [\-+] %i\)\z/)
end
it 'general' do
settings = @defaults.merge(:min => 2, :max => 9)
subject.__send__(:options=, settings)
result = subject.__send__(:create_complex_number)
- result.should match(/\A\d [\-+] \d%i\z/)
+ result.should match(/\A\(\d [\-+] \d%i\)\z/)
end
it 'conjugate complex' do