Jeff Abrahamson on 25 Feb 2007 20:17:41 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

[PLUG] python bug


Here's a python code snippet.  The bit to note is that I have two
iterables of tuples, S and T.  I expect S to have length 400 and T to
have length less than 20.  Then I make sets sS and sT so that I can
construct the difference between them, sSmT.

    print 'SFAP-1: len(S) =', len(S), '  len(T) =', len(T)
    S_ref_pt = self.selector(S)
    min_dist = 0
    min_q = None
    print 'SFAP-1: len(S) =', len(S), '  len(T) =', len(T)
    sS = set([tuple(x) for x in S])
    #sT = set([tuple(x) for x in T])
    sT = set([tuple(y) for y in T])
    print 'SFAP-1: len(S) =', len(S), '  len(T) =', len(T)
    print 'SFAP-2: len(sS) =', len(sS), '  len(sT) =', len(sT)
    sSmT = sS - sT
    print 'len(sSmT)', len(sSmT)
    assert(len(sSmT) > 0)

Here's a snippet from the log of running a program through this code
fragment.  The thing to note is that sT keeps growing.  But the
function in question returns and is recalled between blocks.  So why
does sT grow?  I think sT should have length no longer than T.

    len(S) = 400 len(V) = 19    m = 20
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-2: len(sS) = 400   len(sT) = 19
    len(sSmT) 381
    len(S) = 400 len(V) = 19    m = 20
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-2: len(sS) = 400   len(sT) = 20
    len(sSmT) 380
    len(S) = 400 len(V) = 19    m = 20
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-2: len(sS) = 400   len(sT) = 21
    len(sSmT) 379
    len(S) = 400 len(V) = 19    m = 20
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-2: len(sS) = 400   len(sT) = 22
    len(sSmT) 378
    ...
    len(S) = 400 len(V) = 19    m = 20
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-2: len(sS) = 400   len(sT) = 397
    len(sSmT) 3
    len(S) = 400 len(V) = 19    m = 20
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-2: len(sS) = 400   len(sT) = 398
    len(sSmT) 2
    len(S) = 400 len(V) = 19    m = 20
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-2: len(sS) = 400   len(sT) = 399
    len(sSmT) 1
    len(S) = 400 len(V) = 19    m = 20
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-1: len(S) = 400   len(T) = 19
    SFAP-2: len(sS) = 400   len(sT) = 400
    len(sSmT) 0

-- 
 Jeff

 Jeff Abrahamson  <http://jeff.purple.com/>          +1 215/837-2287
 GPG fingerprint: 1A1A BA95 D082 A558 A276  63C6 16BF 8C4C 0D1D AE4B

Attachment: signature.asc
Description: Digital signature

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug