
[XMc           @   s   d  Z  d d l Z d d l m Z d d l m Z m Z d d l m Z d d l	 m
 Z
 d e j f d     YZ d	 d d
     YZ d e
 j f d     YZ d e j f d     YZ e g Z d S(   s$   Test cases for the NMEA GPS protocoliN(   t   unittest(   t   reactort   protocol(   t   reflect(   t   nmeat   StringIOWithNoClosec           B   s   e  Z d    Z RS(   c         C   s   d  S(   N(    (   t   self(    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyt   close   s    (   t   __name__t
   __module__R   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyR      s   t   ResultHarvesterc           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   g  |  _  d  S(   N(   t   results(   R   (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyt   __init__   s    c         G   s   |  j  j |  d  S(   N(   R   t   append(   R   t   args(    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyt   __call__   s    c         O   su   t  |  j  } y | | |   Wn# t k
 rE } |  j j |  n X| t  |  j  k rq |  j j t    n  d  S(   N(   t   lenR   t	   ExceptionR   t   NotImplementedError(   R   t   functionR   t   kwargst   lt   e(    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyt   performTest   s    (   R   R	   R   R   R   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyR
      s   		t
   NMEATesterc           B   s)   e  Z d  Z d  Z d  Z d Z d   Z RS(   i    i   c         C   sG   t    |  _ x4 t j |  j d  D] } t |  d | |  j  q" Wd  S(   Nt   decode_t   handle_(   R
   t   resultHarvesterR   t   prefixedMethodNamest	   __class__t   setattr(   R   t   fn(    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyt   connectionMade)   s    (   R   R	   t   ignore_invalid_sentencet   ignore_checksum_mismatcht   ignore_unknown_sentencetypest   convert_dates_before_y2kR    (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyR   #   s
   t   NMEAReceiverTestCasec           B   s   e  Z d) Z d d d e j d d d* d+ d, f	 d d d d d d d- d, d, f	 e j   e j   e j   d. d/ d0 e j e j	 f d d d f d1 e j e j
 f d d  d! f d d d, d, d d2 d, f d d d d% d d3 d, f e   e   f Z d(   Z RS(4   sD   $GPGGA,231713.0,3910.413,N,07641.994,W,1,05,1.35,00044,M,-033,M,,*69sD   $GPGGA,235947.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,,,,0000*00s6   lkjasdfkl!@#(*$!@(*#(ASDkfjasdfLMASDCVKAW!@#($)!(@#)(*sD   $GPGGA,231713.0,3910.413,N,07641.994,W,1,05,1.35,00044,M,-033,M,,*68sD   $GPGGX,231713.0,3910.413,N,07641.994,W,1,05,1.35,00044,M,-033,M,,*68s/   $GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2Ds/   $GPGLL,0000.0000,N,00000.0000,E,235947.000,V*2Ds%   $GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30s0   $GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0As:   $GPRMC,235947.000,V,0000.0000,N,00000.0000,E,,,041299,,*1DsC   $GPRMC,092204.999,A,4250.5589,S,14718.5084,E,0.00,89.68,211200,,*25s   $GPVTG,,T,,M,,N,,K*4Es!   $GPVTG,89.68,T,,M,0.00,N,0.0,K*5Fg    w@gC6C@g^),Si   g?g      F@t   Mg     @g    0@g        i    g	ٌkEgZwib@gw@i   i   i   i   g333333D@gffffff8@g@@i  i   i   gQkV@i  i   c      
   C   sZ  t    } | j t j t     x' |  j D] } | j j | j |  q, Wd   } x t	 |  j |  j
 | j j
  D] \ } } } | |  } | |  } t | t  r2t | t  r |  j | j | j d | | j j | j j | j j | j j f  qR|  j d d d | | j j | j j | f  qt |  j | | d | | | f  qt Wd  S(   Nc         S   s   t  |   t  d  k r d  Sg  } xP |  D]H } t  |  t  d  k rd t t | d   d } n  | j |  q) Wt |  S(   Ng?g     @g-C6?(    (   t   typet   floatt   intR   t   tuple(   t   myTuplet   newTuplet   v(    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyt   munge_   s    s*   
Input:
%s
Expected:
%s.%s
Results:
%s.%s
i   i    s'   
Input:
%s
Expected:
%s.%s
Results:
%r
s$   
Input:
%s
Expected: %r
Results: %r
(   R   t   makeConnectionR   t   FileWrapperR   t   messagesR   R   t   lineReceivedt   zipR   t
   isinstanceR   t   failUnlessEqualR   R	   R   (   R   t   dummyt   lineR.   t   messaget   expectedResultt   actualResult(    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyt   testGPSMessagesZ   s    			.G2(   sD   $GPGGA,231713.0,3910.413,N,07641.994,W,1,05,1.35,00044,M,-033,M,,*69sD   $GPGGA,235947.000,0000.0000,N,00000.0000,E,0,00,0.0,0.0,M,,,,0000*00s6   lkjasdfkl!@#(*$!@(*#(ASDkfjasdfLMASDCVKAW!@#($)!(@#)(*sD   $GPGGA,231713.0,3910.413,N,07641.994,W,1,05,1.35,00044,M,-033,M,,*68sD   $GPGGX,231713.0,3910.413,N,07641.994,W,1,05,1.35,00044,M,-033,M,,*68s/   $GPGLL,4250.5589,S,14718.5084,E,092204.999,A*2Ds/   $GPGLL,0000.0000,N,00000.0000,E,235947.000,V*2Ds%   $GPGSA,A,1,,,,,,,,,,,,,0.0,0.0,0.0*30s0   $GPGSA,A,3,01,20,19,13,,,,,,,,,40.4,24.4,32.2*0As:   $GPRMC,235947.000,V,0000.0000,N,00000.0000,E,,,041299,,*1DsC   $GPRMC,092204.999,A,4250.5589,S,14718.5084,E,0.00,89.68,211200,,*25s   $GPVTG,,T,,M,,N,,K*4Es!   $GPVTG,89.68,T,,M,0.00,N,0.0,K*5F(   g      F@R&   (   g     @R&   N(   g        R&   (   g	ٌkEgZwib@gw@i   (   g        g        g    0@i    (   NNNNNNNNNNNN(   i   i   i   i   NNNNNNNN(   i  i   i   (   i  i   i   (   R   R	   R1   R   t
   POSFIX_SPSt   Nonet   InvalidSentencet   InvalidChecksumt	   MODE_AUTOt
   MODE_NOFIXt   MODE_3DR   R   R;   (    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyR%   .   s6               !			(    (   t   __doc__t   StringIOt   twisted.trialR    t   twisted.internetR   R   t   twisted.pythonR   t   twisted.protocols.gpsR   R   R
   t   NMEAReceiverR   t   TestCaseR%   t	   testCases(    (    (    s:   /usr/lib/python2.7/dist-packages/twisted/test/test_nmea.pyt   <module>   s   E