
    |j                     |    d dl Zd dlmc mZ d dlmZmZ d dl	m
Z
  e
d          Zd Zd Zd Zd Zd	 Zd
 Zd ZdS )    N)NCP5623StatusLEDcommands_for)load_bin_module
led_statusc                     d} d}t          | |          }dg}||k    }|st          j        d|fd||f          dt          j                    v st          j        t                     rt          j        t                     ndt          j        |           t          j        |          t          j        |          t          j        |          dz  }d	d
|iz  }t          t          j        |                    d x} x}x}x}}d S )N)r   r   r   
   current_stepr   ==)zF%(py6)s
{%(py6)s = %(py0)s(%(py2)s, current_step=%(py4)s)
} == %(py9)sr   py0py2py4py6py9assert %(py11)spy11)	r   
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanation)@py_assert1@py_assert3@py_assert5@py_assert8@py_assert7@py_format10@py_format12s          AC:\Users\jvoigtlander\Desktop\BubbleCamCode\tests\test_ncp5623.py'test_black_is_a_single_shutdown_commandr%      s'   !==<	333=v=3v==========3v============<=====<======	========3====v=================================    c                  |   t          dd          } | d         }d}d}||z  }||k    }|st          j        d|fd||f          t          j        |          t          j        |          t          j        |          dz  }d	d
|iz  }t	          t          j        |                    d x}x}x}x}}| dd          }g d}||k    }|slt          j        d|fd||f          t          j        |          t          j        |          dz  }dd|iz  }	t	          t          j        |	                    d x}x}}d S )N)   r(   r(   r   r	   r       r   z%(py1)s == (%(py4)s | %(py6)s)py1r   r   assert %(py9)sr      )_         )z%(py1)s == %(py4)s)r,   r   zassert %(py6)sr   r   r   r   r   r   r   )
cmds@py_assert0r   r   r!   @py_assert2@py_format8r"   @py_format5@py_format7s
             r$   &test_full_white_maxes_all_pwm_channelsr9      s   b999D7dRdRi7i7i7dR888888888888888888888888888888888888888888888888888888888888r&   c                     t          dd          } | d         }d}d}||z  }||k    }|st          j        d|fd||f          t          j        |          t          j        |          t          j        |          d	z  }d
d|iz  }t	          t          j        |                    d x}x}x}x}}| d         }d}d}||z  }||k    }|st          j        d|fd||f          t          j        |          t          j        |          t          j        |          d	z  }d
d|iz  }t	          t          j        |                    d x}x}x}x}}| d         }d}d}||z  }||k    }|st          j        d|fd||f          t          j        |          t          j        |          t          j        |          d	z  }d
d|iz  }t	          t          j        |                    d x}x}x}x}}d S )N)r(   r         r	   r.   @      r   r*   r+   r-   r      `   r      r;      r2   )r3   r4   r   r   r!   r5   r6   r"   s           r$   %test_color_components_scale_to_5_bitsrC      s   A666D7dRdRi7i7i7dR7dQdQh7h7h7dQ7dRdRi7i7i7dRr&   c                     t          dd          d         } d}d}||z  }| |k    }|st          j        d|fd| |f          t          j        |           t          j        |          t          j        |          d	z  }d
d|iz  }t	          t          j        |                    d x} x}x}x}}t          dd          d         } d}d}||z  }| |k    }|st          j        d|fd| |f          t          j        |           t          j        |          t          j        |          d	z  }d
d|iz  }t	          t          j        |                    d x} x}x}x}}d S )N)r.   r.   r.   c   r	   r   r)   r>   r   r*   r+   r-   r   r.   r2   )r4   r   r   r!   r5   r6   r"   s          r$   +test_current_step_is_clamped_to_valid_rangerF      s   	333A6C$CC$)C6)CCCCCCCCCC6)CCCCC6CCCC$CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC 	22215AAAA5AAAAAAAAAA5AAAAA5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr&   c                    t                      }|                    d           |                    d           |                                j        }|j        }d} ||          }d}||k    }|st          j        d|fd||f          dt          j                    v st          j	        |          rt          j
        |          ndt          j
        |          t          j
        |          t          j
        |          t          j
        |          dz  }	dd	|	iz  }
t          t          j        |
                    d x}x}x}x}}d S )
N)r(   r   r   zcolor -> (255, 0, 0)r.   r   )zK%(py6)s
{%(py6)s = %(py2)s
{%(py2)s = %(py0)s.count
}(%(py4)s)
} == %(py9)soutr   r   r   )r   	set_color
readouterrrH   countr   r   r   r   r   r   r   r   )sim_envcapsysledrH   r   r   r   r    r!   r"   r#   s              r$   "test_sim_mode_set_color_and_deduperO      sj   


CMM+MM+





!C91+199+,,11,1111111111,111111111111311111311111191111+1111,1111111111111111111111111111111111111r&   c                    ddddddd}t                               |          }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 S )Nncp5623   r.   8   r   drivergpio_pin	led_countncp5623_busncp5623_addressncp5623_current_step5assert %(py4)s
{%(py4)s = %(py0)s(%(py1)s, %(py2)s)
}
isinstancerN   r   r   r,   r   r   )r   create_status_ledr\   r   r   r   r   r   r   r   r   )rL   cfgrN   r   r7   s        r$    test_led_factory_selects_ncp5623r`   '   sA    " C 
&
&s
+
+Cc+,,,,,,,,,,,,,,,:,,,,,:,,,,,,,,,,,,,c,,,,,c,,,,,,,,,,,,,+,,,,,+,,,,,,,,,,,,,,,,,,,,,,,,,,r&   c                 |   ddl m} ddddddd	}t                              |          }t	          ||          }|sd
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        |          rt          j	        |          ndt          j	        |          dz  }t          t          j        |                    d }d S )Nr   )	StatusLEDws2812brR   r)   r.   rS   r   rT   r[   r\   rN   rb   r]   )bubblecam.hardware.ws2812brb   r   r^   r\   r   r   r   r   r   r   r   )rL   rb   r_   rN   r   r7   s         r$   $test_led_factory_defaults_to_ws2812bre   4   sR   444444  " C 
&
&s
+
+Cc9%%%%%%%%%%%%%%%:%%%%%:%%%%%%%%%%%%%c%%%%%c%%%%%%%%%%%%%9%%%%%9%%%%%%%%%%%%%%%%%%%%%%%%%%r&   )builtinsr   _pytest.assertion.rewrite	assertionrewriter   bubblecam.hardware.ncp5623r   r   conftestr   r   r%   r9   rC   rF   rO   r`   re    r&   r$   <module>rm      s                  E E E E E E E E $ $ $ $ $ $_\**
> > >9 9 9     B B B2 2 2
- 
- 
-& & & & &r&   