MOON
Server: Apache/2.2.34 (Unix) mod_ssl/2.2.34 OpenSSL/0.9.8e-fips-rhel5 mod_bwlimited/1.4 FrontPage/5.0.2.2635
System: Linux server.asjudinet.com 2.6.32-042stab141.3 #1 SMP Fri Nov 15 22:45:34 MSK 2019 i686
User: asjudine (504)
PHP: 5.2.17
Disabled: NONE
Upload Files
File: //proc/2/cwd/proc/self/root/proc/2/root/usr/lib/python2.4/Demo/classes/Rat.pyo
mò
‚=5Dc@sZdZdkTd„Zdd„Zdfd„ƒYZd„Zedjoeƒnd	S(
sThis module implements rational numbers.

The entry point of this module is the function
        rat(numerator, denominator)
If either numerator or denominator is of an integral or rational type,
the result is a rational number, else, the result is the simplest of
the types float and complex which can hold numerator/denominator.
If denominator is omitted, it defaults to 1.
Rational numbers can be used in calculations with any other numeric
type.  The result of the calculation will be rational if possible.

There is also a test function with calling sequence
        test()
The documentation string of the test function contains the expected
output.
(t*cCs$x|o|||}}qW|S(s&Calculate the Greatest Common Divisor.N(tbta(RR((t&/usr/lib/python2.4/Demo/classes/Rat.pytgcds
icCs}t|tƒpt|tƒot|ƒt|ƒSnt|tƒpt|tƒot|ƒt|ƒSnt||ƒS(N(t
isinstancetnumtcomplextdentfloattRat(RR((Rtrats
  R
cBsòtZdZdd„Zd„Zd„Zd„Zd„Zd„Zd„Z	d	„Z
d
„Zd„Zd„Z
d
„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zd„ZRS(s'This class implements rational numbers.icCsí|djo
td‚nt|tƒpt|tƒo0t|ƒt|ƒ|_tdƒ|_dSnt|tƒpt|tƒo*t|ƒt|ƒ|_d|_dSnt||i	ƒpt||i	ƒor||}t||i	ƒp9||_t|tƒotdƒ|_qHd|_qu|i|_|i|_n*t||ƒ}|||_|||_y"t
|iƒ}t
|iƒ}Wnttfj
on8X|i|jo&|i|jo||_||_ndS(Nis	rat(x, 0)if1.0(RtZeroDivisionErrorRRRtselft	_Rat__numt	_Rat__denR	t	__class__tnewRtgtinttnumitdenit
OverflowErrort	TypeError(R
RRRRRR((Rt__init__+s<

  	&
	


 	cCsd|i|ifS(Ns
Rat(%s,%s)(R
RR(R
((Rt__repr__^scCsE|idjot|iƒSn!dt|iƒt|iƒfSdS(Nis(%s/%s)(R
RtstrR(R
((Rt__str__ascCs y3t|i|i|i|i|i|iƒSWnftj
oZtt|iƒt|iƒt|iƒt|iƒt|iƒt|iƒƒSnXdS(N(RRRRRRtlong(RR((Rt__add__hs6cCst|ƒ|S(N(R
RR(RR((Rt__radd__qscCs y3t|i|i|i|i|i|iƒSWnftj
oZtt|iƒt|iƒt|iƒt|iƒt|iƒt|iƒƒSnXdS(N(RRRRRRR(RR((Rt__sub__us6cCst|ƒ|S(N(R
RR(RR((Rt__rsub__~scCsxy%t|i|i|i|iƒSWnLtj
o@tt|iƒt|iƒt|iƒt|iƒƒSnXdS(N(RRRRRRR(RR((Rt__mul__‚s
%cCst|ƒ|S(N(R
RR(RR((Rt__rmul__‰scCsxy%t|i|i|i|iƒSWnLtj
o@tt|iƒt|iƒt|iƒt|iƒƒSnXdS(N(RRRRRRR(RR((Rt__div__s
%cCst|ƒ|S(N(R
RR(RR((Rt__rdiv__”scCsH||}yt|ƒ}Wntj
ot|ƒ}nX|||S(N(RRtdivRRR(RRR%((Rt__mod__˜s
cCst|ƒ|S(N(R
RR(RR((Rt__rmod__ scCsæ|idjojt|itƒot|ƒ}n
t|ƒ}t|itƒot|ƒ}n
t|ƒ}||Sny%t|i|i|i|iƒSWn@tj
o4tt	|iƒ|it	|iƒ|iƒSnXdS(Ni(
RRRRRRR	RRR(RR((Rt__pow__¤s%cCst|ƒ|S(N(R
RR(RR((Rt__rpow__µscCsLyt|i|iƒSWn-tj
o!tt|iƒ|iƒSnXdS(N(RRRRRR(R((Rt__neg__¹scCstt|iƒ|iƒS(N(RtabsRRR(R((Rt__abs__ÁscCst|i|iƒS(N(RRRR(R((Rt__int__ÅscCst|iƒt|iƒS(N(RRRR(R((Rt__long__ÉscCst|iƒt|iƒS(N(R	RRR(R((Rt	__float__ÍscCst|iƒt|iƒS(N(RRRR(R((Rt__complex__ÑscCsHt||ƒ}|idjodSn|idjodSndSdS(Niiÿÿÿÿi(R
RRtdiffR(RRR1((Rt__cmp__ÕscCstt|ƒ|ƒS(N(tcmpR
RR(RR((Rt__rcmp__ÞscCs
|idjS(Ni(RR(R((Rt__nonzero__âscCs|t|ƒfS(N(RR
R(RR((Rt
__coerce__æs(t__name__t
__module__t__doc__RRRRRRR R!R"R#R$R&R'R(R)R*R,R-R.R/R0R2R4R5R6(((RR
(s43																										cCs
tddƒGHtddƒGHtddƒ}t|ƒGt|ƒGt|ƒGt|ƒGHtddƒ}||||||||g}|GH|iƒ|GHtddƒGH|dGH|dGH|d	GHytddƒGHt	d
‚Wnt
j
odGHnXtdƒGtdƒGtd
dƒGtddƒGtddƒGHddtd
dƒddg}x²|D]ª}|Gt
|tƒpt|ƒGt|ƒGnt|ƒGHHxi|D]a}||G||G||G||G||Gt
|tƒp
t
|tƒpt||ƒGHnHq Wq[WdS(sî    Test function for rat module.

    The expected output is (module some differences in floating
    precission):
    -1
    -1
    0 0L 0.1 (0.1+0j)
    [Rat(1,2), Rat(-3,10), Rat(1,25), Rat(1,4)]
    [Rat(-3,10), Rat(1,25), Rat(1,4), Rat(1,2)]
    0
    (11/10)
    (11/10)
    1.1
    OK
    2 1.5 (3/2) (1.5+1.5j) (15707963/5000000)
    2 2 2.0 (2+0j)

    4 0 4 1 4 0
    3.5 0.5 3.0 1.33333333333 2.82842712475 1
    (7/2) (1/2) 3 (4/3) 2.82842712475 1
    (3.5+1.5j) (0.5-1.5j) (3+3j) (0.666666666667-0.666666666667j) (1.43248815986+2.43884761145j) 1
    1.5 1 1.5 (1.5+0j)

    3.5 -0.5 3.0 0.75 2.25 -1
    3.0 0.0 2.25 1.0 1.83711730709 0
    3.0 0.0 2.25 1.0 1.83711730709 1
    (3+1.5j) -1.5j (2.25+2.25j) (0.5-0.5j) (1.50768393746+1.04970907623j) -1
    (3/2) 1 1.5 (1.5+0j)

    (7/2) (-1/2) 3 (3/4) (9/4) -1
    3.0 0.0 2.25 1.0 1.83711730709 -1
    3 0 (9/4) 1 1.83711730709 0
    (3+1.5j) -1.5j (2.25+2.25j) (0.5-0.5j) (1.50768393746+1.04970907623j) -1
    (1.5+1.5j) (1.5+1.5j)

    (3.5+1.5j) (-0.5+1.5j) (3+3j) (0.75+0.75j) 4.5j -1
    (3+1.5j) 1.5j (2.25+2.25j) (1+1j) (1.18235814075+2.85446505899j) 1
    (3+1.5j) 1.5j (2.25+2.25j) (1+1j) (1.18235814075+2.85446505899j) 1
    (3+3j) 0j 4.5j (1+0j) (-0.638110484918+0.705394566962j) 0
    lÿÿÿÿiiÿÿÿÿi
iiilf1.0s"should have been ZeroDivisionErrortOKf1.5ix0.01.5iv^ßi€–˜N(RRRRR	RRtltsorttSystemErrorRtlisttiRtjR3(RRR>R;R@R?((RttestésD))"
			

=( t__main__N(R9ttypesRRR
RAR7(RARRR
((Rt?s	Á	L