Oct 4 08:44 2013 testComplexObjOriented.lua Page 1 --[[ Test Complex Number Object-Oriented Module H. Conrad Cunningham, Professor Computer and Information Science University of Mississippi Developed for CSci 658, Software Language Engineering, Fall 2013 1234567890123456789012345678901234567890123456789012345678901234567890 2013-10-01: Prototyped module --]] -- INITIALIZATION -- Load complex number module local cn = require "complexObjOriented" -- local definitions for convenience local Complex = cn.Complex local Rectangular = cn.Rectangular local Polar = cn.Polar local show_data = cn.show_data -- TESTING print("\nTest error output function show_data") print("string -- " .. show_data("error string test")) print("number 13 -- " .. show_data(13)) print("nil -- " .. show_data(nil)) print("boolean -- " .. show_data(false)) print("function -- " .. show_data(function() return 1 end)) print("function -- " .. show_data({tag = "Triangular", stuff="stuff", contents = {"only in index 1"}} ) ) print("\nTest functions") print("0+0i") local zero = Rectangular:make_from_real_imag(0,0) print("zero:get_tag() = " .. zero:get_tag()) print("Rectangular:make_from_real_imag(0,0) => " .. zero:to_string() .. " zero" ) local zerop = Polar:make_from_mag_ang(0,0) print("zerop:get_tag() = " .. zerop:get_tag()) print("Polar:make_from_mag_ang(0,0) => " .. zerop:to_string() .. " zerop" ) print("\n1+0i") local one = Rectangular:make_from_real_imag(1,0) print("Rectangular:make_from_real_imag(1,0) => " .. one:to_string() .. " one" ) Oct 4 08:44 2013 testComplexObjOriented.lua Page 2 local onep = Polar:make_from_mag_ang(1,0) print("Polar:make_from_mag_ang(1,0) => " .. onep:to_string() .. " onep" ) print("\n0+1i") local ione = Rectangular:make_from_real_imag(0,1) print("Rectangular:make_from_real_imag(0,1) => " .. ione:to_string() .. " ione" ) local ionep = Polar:make_from_mag_ang(1,math.pi/2) print("Polar:make_from_mag_ang(1,math.pi/2) => " .. ionep:to_string() .. " ionep" ) print("\n1+1i") local oneone = Complex:make_from_real_imag(1,1) print("Complex:make_from_real_imag(1,1) => " .. oneone:to_string() .. " oneone" ) local oneonep = Complex:make_from_mag_ang(math.sqrt(2),math.pi/4) print("Complex:make_from__mag_ang(math.sqrt(2),math.pi/4) => " .. oneonep:to_string() .. " oneonep") print("\npi+0i") local rpi = Complex:make_from_real_imag(math.pi,0) print("make_from_real_imag(math.pi,0) => " .. rpi:to_string() .. " rpi") local rpip = Complex:make_from_mag_ang(math.pi,0) print("make_from_mag_ang(math.pi,0) => " .. rpip:to_string() .. " rpip") print("\n-1+0i") local neg1 = Complex:make_from_real_imag(-1,0) print("make_from_real_imag(-1,0) => " .. neg1:to_string() .. " neg1") local neg1p = Complex:make_from_mag_ang(1,math.pi) print("make_from_mag_ang(1,math.pi) => " .. neg1p:to_string() .. " neg1p") print("") print("zero:magnitude() => " .. tostring(zero:magnitude())) print("zero:angle() => " .. tostring(zero:angle())) print("zerop:magnitude() => " ..tostring(zerop:magnitude())) print("zerop:angle() => " .. tostring(zerop:angle())) print("one:magnitude() => " .. tostring(one:magnitude())) print("one:angle() => " .. tostring(one:angle())) print("onep:magnitude() => " .. tostring(onep:magnitude())) print("onep:angle() => " .. tostring(onep:angle())) print("oneone:magnitude() => " .. tostring(oneone:magnitude())) print("oneone:angle() => " .. tostring(oneone:angle())) print("oneonep:magnitude() => " ..tostring(oneonep:magnitude())) print("oneonep:angle() => " .. tostring(oneonep:angle())) Oct 4 08:44 2013 testComplexObjOriented.lua Page 3 print("rpi:magnitude() => " .. tostring(rpi:magnitude())) print("rpi:angle() => " .. tostring(rpi:angle())) print("rpip:magnitude() => " .. tostring(rpip:magnitude())) print("rpip:angle() => " .. tostring(rpip:angle())) print("neg1:magnitude() => " .. tostring(neg1:magnitude())) print("neg1:angle() => " .. tostring(neg1:angle())) print("neg1p:magnitude() => " .. tostring(neg1p:magnitude())) print("neg1p:angle() => " .. tostring(neg1p:angle())) print("\narithmetic") local z1 = one:add_complex(ione) print("one:add_complex(ione) => " .. z1:to_string() .. " z1") local z2 = oneone:add_complex(rpi) print("oneone:add_complex(rpi) => " .. z2:to_string() .. " z2") local z3 = z1:sub_complex(ione) print("z1:sub_complex(ione) => " .. z3:to_string() .. " z3") local z4 = z2:sub_complex(oneone) print("z2:sub_complex(oneone) => " .. z4:to_string() .. " z4") local z5 = one:mul_complex(one) print("one:mul_complex(one) => " .. z5:to_string() .. " z5") local z6 =rpi:mul_complex(one) print("rpi:mul_complex(one) => " .. z6:to_string() .. " z6") local z7 = oneone:mul_complex(one) print("oneone:mul_complex(one) => " .. z7:to_string() .. " z7") local z8 = one:div_complex(one) print("one:div_complex(one) => " .. z8:to_string() .. " z8") local z9 = one:div_complex(ione) print("one:div_complex(ione) => " .. z9:to_string() .. " z9") local z10 = Complex:make_from_mag_ang(0,0) print("make_from_mag_ang(0,0) => " .. z10:to_string() .. " z10") local z11 = Complex:make_from_mag_ang(1,math.pi/2) print("make_from_mag_ang(1,PI/2) => " .. z11:to_string() .. " z11") local z12 = Complex:make_from_mag_ang(10,math.pi) print("make_from_mag_ang(10,PI) => " .. z12:to_string() .. " z12")