tzh
2024-08-22 c7d0944258c7d0943aa7b2211498fd612971ce27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
O\¬Qc@sždZddlZddlmZd„Zd„Zd„Zd„Zdefd    „ƒYZ    d
ej
fd „ƒYZ d Z d „Z edkrše ƒndS(s9Tests for binary operators on subtypes of built-in types.iÿÿÿÿN(t test_supportcCs"x|r|||}}qW|S(s1Greatest common divisor using Euclid's algorithm.((tatb((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pytgcds    cCst|tƒpt|tƒS(s5Test whether an object is an instance of int or long.(t
isinstancetinttlong(tx((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pytisint scCs4x-ttttfD]}t||ƒrdSqWdS(sATest whether an object is an instance of a built-in numeric type.ii(RRtfloattcomplexR(RtT((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pytisnumscCs t|tƒS(s6Test wheter an object is an instance of the Rat class.(RtRat(R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pytisRatsR cBs"eZdZddgZddd„Zd„ZeedƒZd„Z    ee    dƒZ
d„Z d    „Z d
„Z d „Zd „Zd „ZeZd„Zd„Zd„ZeZd„ZeZd„ZeZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z!dZ"RS(s:Rational number implemented as a normalized pair of longs.t    _Rat__numt    _Rat__denllcCs‰t|ƒstd|‚nt|ƒs8td|‚n|dkrPtd‚nt||ƒ}t||ƒ|_t||ƒ|_dS(sdConstructor: Rat([num[, den]]).
 
        The arguments must be ints or longs, and default to (0, 1).s&Rat numerator must be int or long (%r)s(Rat denominator must be int or long (%r)iszero denominatorN(Rt    TypeErrortZeroDivisionErrorRRRR(tselftnumtdentg((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__init__!s    cCs|jS(s7Accessor function for read-only 'num' attribute of Rat.(R(R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt_get_num0scCs|jS(s7Accessor function for read-only 'den' attribute of Rat.(R(R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt_get_den5scCsd|j|jfS(s=Convert a Rat to an string resembling a Rat constructor call.s Rat(%d, %d)(RR(R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__repr__:scCstt|ƒƒS(s=Convert a Rat to a string resembling a decimal numeric value.(tstrR    (R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__str__>scCs|jd|jS(sConvert a Rat to a float.gð?(RR(R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt    __float__BscCsa|jdkrJyt|jƒSWqJtk
rFtdt|ƒ‚qJXntdt|ƒ‚dS(s,Convert a Rat to an int; self.den must be 1.is%s too large to convert to intscan't convert %s to intN(RRRt OverflowErrortreprt
ValueError(R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__int__Fs cCs3|jdkrt|jƒStdt|ƒ‚dS(s-Convert a Rat to an long; self.den must be 1.iscan't convert %s to longN(RRRR R(R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__long__Ps cCstt|ƒrt|ƒ}nt|ƒrVt|j|j|j|j|j|jƒSt|ƒrpt|ƒ|StS(s$Add two Rats, or a Rat and a number.(RR RRRR R    tNotImplemented(Rtother((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__add__Vs   cCstt|ƒrt|ƒ}nt|ƒrVt|j|j|j|j|j|jƒSt|ƒrpt|ƒ|StS(s)Subtract two Rats, or a Rat and a number.(RR RRRR R    R#(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__sub__cs   cCstt|ƒrt|ƒ}nt|ƒrVt|j|j|j|j|j|jƒSt|ƒrp|t|ƒStS(s9Subtract two Rats, or a Rat and a number (reversed args).(RR RRRR R    R#(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__rsub__ns   cCsnt|ƒr-t|j|j|j|jƒSt|ƒrPt|j||jƒSt|ƒrjt|ƒ|StS(s)Multiply two Rats, or a Rat and a number.(RR RRRR R    R#(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__mul__ys !  cCsnt|ƒr-t|j|j|j|jƒSt|ƒrPt|j|j|ƒSt|ƒrjt|ƒ|StS(s'Divide two Rats, or a Rat and a number.(RR RRRR R    R#(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt __truediv__…s !  cCsnt|ƒr-t|j|j|j|jƒSt|ƒrPt||j|jƒSt|ƒrj|t|ƒStS(s7Divide two Rats, or a Rat and a number (reversed args).(RR RRRR R    R#(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt __rtruediv__‘s !  cCsCt|ƒrt|ƒ}nt|ƒs+tS||}|j|jS(s.Divide two Rats, returning the floored result.(RR RR#RR(RR$R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt __floordiv__s   
cCs||}|j|jS(s>Divide two Rats, returning the floored result (reversed args).(RR(RR$R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt __rfloordiv__¦s
cCsGt|ƒrt|ƒ}nt|ƒs+tS||}||||fS(s2Divide two Rats, returning quotient and remainder.(RR RR#(RR$R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt
__divmod__«s   
cCs8t|ƒrt|ƒ}nt|ƒs+tSt||ƒS(sBDivide two Rats, returning quotient and remainder (reversed args).(RR RR#tdivmod(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt __rdivmod__´s
  cCst||ƒdS(sTake one Rat modulo another.i(R.(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__mod__¼scCst||ƒdS(s,Take one Rat modulo another (reversed args).i(R.(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__rmod__ÀscCsvt|ƒr(|jdko'|j|kSt|ƒrV|j|jkoU|j|jkSt|ƒrrt|ƒ|kStS(sCompare two Rats for equality.i(RRRRR R    R#(RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__eq__Äs  " cCs ||k S(s Compare two Rats for inequality.((RR$((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt__ne__ÎsN(#t__name__t
__module__t__doc__t    __slots__RRtpropertytNoneRRRRRRR!R"R%t__radd__R&R'R(t__rmul__R)t__div__R*t__rdiv__R+R,R-R/R0R1R2R3t__hash__(((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyR s>                         
                    
    
    
                                    
   t RatTestCasecBs_eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z    d„Z
d    „Z RS(
s3Unit tests for Rat class and its support utilities.cCs[|jtddƒdƒ|jtddƒdƒ|jtddƒdƒ|jtddƒdƒ|jtd    dƒd
ƒ|jtdd
ƒdƒ|jtd    d
ƒd
ƒx¥tdd ƒD]”}x‹tdd ƒD]z}|jt||ƒd kƒ|jt| |ƒd kƒ|jt|| ƒd kƒ|jt| | ƒd kƒqÕWq¿WdS( Ni
i iiii iidiöÿÿÿiþÿÿÿii(t assertEqualRtranget
assertTrue(Rtitj((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyttest_gcdØsc    Cs tddƒ}|j|jdƒ|j|jdƒtddƒ}|j|jdƒ|j|jdƒtddƒ}|j|jdƒ|j|jdƒtd    dƒ}|j|jdƒ|j|jdƒtd    dƒ}|j|jdƒ|j|jdƒtd
ƒ}|j|jd
ƒ|j|jd ƒytd d ƒ}Wntk
ranX|jd ƒx–ddddgidttf    D]s}yt|ƒ}Wntk
rºnX|jd|ƒytd |ƒ}Wntk
ròq‘X|jd|ƒq‘WdS(Ni
iiil
liñÿÿÿiþÿÿÿiöÿÿÿiiis(Rat(1, 0) didn't raise ZeroDivisionErrort0gysRat(%r) didn't raise TypeErrors!Rat(1, %r) didn't raise TypeError((    R R@RRRtfailR9tunittestR(RRtbad((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyttest_constructorçsD   (  cCs°|jtddƒtddƒdƒ|jtddƒdtddƒƒ|jdtddƒtddƒƒ|jdtddƒdƒ|jtddƒddƒdS(Niiiigð?gø?(R@R (R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyttest_adds
&&&cCs¹|jtddƒtddƒtddƒƒ|jtddƒdtddƒƒ|jdtddƒtddƒƒ|jtddƒdd    ƒ|jdtddƒd    ƒdS(
Niiiii
iigð?gà?(R@R (R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyttest_subs
/&&cCs§|jtddƒtddƒtddƒƒ|jtddƒddƒ|jdtddƒdƒ|jtddƒddƒ|jdtddƒdƒdS(    Niiiii
igà?gð?(R@R (R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyttest_muls
/cCs¶|jtddƒtddƒtddƒƒ|jtddƒdtddƒƒ|jdtdƒtddƒƒ|jdtd    dƒd
ƒ|jtd    dƒdd
ƒdS( Ni
iiiii    ig@igø?(R@R (R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyttest_div#s
/&#cCs~|jtdƒtdƒdƒ|jtddƒtddƒdƒ|jtdƒddƒ|jdtdƒdƒdS(Ni
iii(R@R (R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt test_floordiv*s &cCs{|jtdƒtddƒƒ|jtdƒdƒ|jdtdƒƒ|jtdƒdƒ|jdtdƒƒdS(Ni
iig$@(R@R (R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyttest_eq0s
cBs edUdS(N(t future_test(R((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyttest_future_div7s( R4R5R6RERJRKRLRMRNRORPRR(((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyR?Õs        '                        s
from __future__ import division
self.assertEqual(Rat(10, 3) / Rat(5, 7), Rat(14, 3))
self.assertEqual(Rat(10, 3) / 3, Rat(10, 9))
self.assertEqual(2 / Rat(5), Rat(2, 5))
self.assertEqual(3.0 * Rat(1, 2), 1.5)
self.assertEqual(Rat(1, 2) * 3.0, 1.5)
self.assertEqual(eval('1/2'), 0.5)
cCstjtƒdS(N(Rt run_unittestR?(((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt    test_mainFst__main__(R6RHttestRRRR RtobjectR tTestCaseR?RQRTR4(((sW/tmp/ndk-User/buildhost/install/prebuilt/darwin-x86_64/lib/python2.7/test/test_binop.pyt<module>s                 ºo