
    i	                         d dl Zd dlmc mZ d dlZd dlZd dlm	Z	 d dl
mZ  ej                  d      d        Zd Zd Zd	 Zd
 Zy)    N)Config)DefaultsT)autousec                     t        t        j                        D ]%  }|j                  d      s| j	                  |       ' y)z2Remove any FR_-prefixed env vars before each test.FR_N)listosenviron
startswithdelenv)monkeypatchkeys     D/home/nelsen/Projects/kognitive/fr-in-the-cloud/tests/test_config.py
_clean_envr   	   s6     BJJ $>>% s#$    c                     t        t        j                         d      } | j                  }d}||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j                  }d}||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j                  }d}||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j                  }d}||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j                  }d}||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j                   }d}||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j"                  }d}||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j$                  }d}||k(  }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j&                  }d}||u }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}| j(                  }d}||u }|st	        j
                  d|fd||f      dt        j                         v st	        j                  |       rt	        j                  |       ndt	        j                  |      t	        j                  |      dz  }dd	|iz  }t        t	        j                  |            d
x}x}}y
)zCConfig should contain all Defaults values when no env vars are set.r   defaults
env_prefixi   ==z3%(py2)s
{%(py2)s = %(py0)s.FRAME_WIDTH
} == %(py5)sconfigpy0py2py5assert %(py7)spy7Ni  z4%(py2)s
{%(py2)s = %(py0)s.FRAME_HEIGHT
} == %(py5)sffffff?z:%(py2)s
{%(py2)s = %(py0)s.DETECTOR_THRESHOLD
} == %(py5)s   z8%(py2)s
{%(py2)s = %(py0)s.DETECT_NUM_FACES
} == %(py5)s   z;%(py2)s
{%(py2)s = %(py0)s.TRACK_MIN_FACE_SIZE
} == %(py5)s	embeddingzB%(py2)s
{%(py2)s = %(py0)s.TRACK_AGGREGATION_STRATEGY
} == %(py5)s   )z:%(py2)s
{%(py2)s = %(py0)s.TRACK_VOTING_TOP_K
} == %(py5)s)z9%(py2)s
{%(py2)s = %(py0)s.TRACK_MAX_HISTORY
} == %(py5)sTis)z:%(py2)s
{%(py2)s = %(py0)s.USE_HALF_PRECISION
} is %(py5)sFz-%(py2)s
{%(py2)s = %(py0)s.DEBUG
} is %(py5)s)r   r   dumpFRAME_WIDTH
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationFRAME_HEIGHTDETECTOR_THRESHOLDDETECT_NUM_FACESTRACK_MIN_FACE_SIZETRACK_AGGREGATION_STRATEGYTRACK_VOTING_TOP_KTRACK_MAX_HISTORYUSE_HALF_PRECISIONDEBUG)r   @py_assert1@py_assert4@py_assert3@py_format6@py_format8s         r   test_defaults_onlyrE      s   X]]_?F%%%%%%%%%%%%6%%%6%%%%%%%%%%%%%%#%#%%%%#%%%%%%6%%%6%%%%%%#%%%%%%%$$++$++++$++++++6+++6+++$++++++++++""(b("b(((("b((((((6(((6((("(((b(((((((%%++%++++%++++++6+++6+++%++++++++++,,;;,;;;;,;;;;;;6;;;6;;;,;;;;;;;;;;$$))$))))$))))))6)))6)))$))))))))))##)r)#r))))#r))))))6)))6)))#)))r)))))))$$,,$,,,,$,,,,,,6,,,6,,,$,,,,,,,,,,<< 5 <5    <5      6   6   <   5       r   c                    | j                  dd       | j                  dd       | j                  dd       | j                  dd       t        t        j                         d	
      }|j                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}|j                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}|j                  }d}||k(  }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}|j                  }d}||u }|st        j                  d|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}y)z3FR_-prefixed env vars should be loaded into config.FR_DETECTOR_THRESHOLDz0.5FR_DETECT_NUM_FACES10FR_TRACK_AGGREGATION_STRATEGYvotingFR_DEBUGtruer   r   g      ?r   r"   r   r   r   r   N
   r$   r(   Tr*   r,   )setenvr   r   r-   r8   r/   r0   r1   r2   r3   r4   r5   r6   r9   r;   r?   r   r   r@   rA   rB   rC   rD   s          r   test_env_vars_onlyrQ   !   s   .6,d36Az6*X]]_?F$$++$++++$++++++6+++6+++$++++++++++""(b("b(((("b((((((6(((6((("(((b(((((((,,88,8888,88888868886888,8888888888<<4<4<466<4r   c                 ~   | j                  dd       | j                  dd       | j                  dd       t        t        j                         d      }|j                  }d	}||k(  }|st        j                  d
|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}|j                  }d}||k(  }|st        j                  d
|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}|j                  }d}||k(  }|st        j                  d
|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}|j                  }d}||k(  }|st        j                  d
|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}|j                   }d}||k(  }|st        j                  d
|fd||f      dt        j                         v st        j                  |      rt        j                  |      ndt        j                  |      t        j                  |      dz  }dd|iz  }t        t        j                  |            dx}x}}y)z;FR_-prefixed env vars should take precedence over Defaults.FR_FRAME_WIDTH1920FR_FRAME_HEIGHT1080FR_TRACK_MIN_FACE_SIZE50r   r   i  r   r   r   r   r   r   Ni8  r    2   r&   r!   r"   r'   r(   )rO   r   r   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r:   r8   r;   rP   s          r   test_env_vars_override_defaultsrZ   0   s   '0(&1/6X]]_?F%%%%%%%%%%%%6%%%6%%%%%%%%%%%%%&$&$&&&&$&&&&&&6&&&6&&&&&&$&&&&&&&%%++%++++%++++++6+++6+++%++++++++++ $$++$++++$++++++6+++6+++$++++++++++,,;;,;;;;,;;;;;;6;;;6;;;,;;;;;;;;;;r   c                  <
   t        j                         } t        | t              }|sddt	        j
                         v st        j                  t              rt        j                  t              nddt	        j
                         v st        j                  |       rt        j                  |       nddt	        j
                         v st        j                  t              rt        j                  t              ndt        j                  |      dz  }t        t        j                  |            d}d | D        }t        |      }|sdd	t	        j
                         v st        j                  t              rt        j                  t              nd	t        j                  |      t        j                  |      d
z  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }dd|iz  }t        t        j                  |            dx}}d}|| v }|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }dd|iz  }t        t        j                  |            dx}}d}|| v}|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }dd|iz  }t        t        j                  |            dx}}d}|| v}|st        j                  d|fd|| f      t        j                  |      dt	        j
                         v st        j                  |       rt        j                  |       nddz  }dd|iz  }t        t        j                  |            dx}}y)z=Defaults.dump() should return all uppercase class attributes.z5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}
isinstancedumpeddict)r   py1r   py4Nc              3   <   K   | ]  }|j                           y w)N)isupper).0ks     r   	<genexpr>z;test_defaults_dump_returns_all_uppercase.<locals>.<genexpr>F   s     +qqyy{+s   z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}all)r   r   r`   r.   )in)z%(py1)s in %(py3)s)r_   py3zassert %(py5)sr   r8   r;   r-   )not in)z%(py1)s not in %(py3)s__init__)r   r-   r\   r^   r1   r2   r/   r3   r4   r5   r6   rf   r0   )r]   rB   @py_format5r@   @py_assert0@py_assert2@py_format4rC   s           r   (test_defaults_dump_returns_all_uppercasero   A   s   ]]_Ffd########:###:######f###f######d###d##########+F++3+++++++++3+++3++++++++++++++"=F""""=F"""=""""""F"""F""""""")6))))6)))))))))6)))6)))))))'1'61111'6111'111111611161111111666#:V####:V###:######V###V#######r   )builtinsr1   _pytest.assertion.rewrite	assertionrewriter/   r	   pytestsanic.configr   
app.configr   fixturer   rE   rQ   rZ   ro    r   r   <module>ry      sH      	    $ $!  <"$r   