§ y<ˆj O ã óP — d dl Z d dlZd dlmZmZmZmZmZm Z m Z d dlmZm Z mZmZmZmZmZmZmZmZmZ G d„ d¦ « Z G d„ d¦ « Z G d„ d ¦ « Z G d „ d¦ « Z G d„ d ¦ « Z G d„ d¦ « Zd„ Z G d„ d¦ « Zd„ Z G d„ d¦ « Z d„ Z!dS )é N)Úassert_Úassert_equalÚassert_array_equalÚassert_almost_equalÚassert_array_almost_equalÚ assert_raisesÚassert_raises_regex)ÚmgridÚogridÚndenumerateÚ fill_diagonalÚdiag_indicesÚdiag_indices_fromÚ index_expÚndindexÚr_Ús_Úix_c óŠ — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e j dg d ¢¦ « d „ ¦ « Z d„ ZdS ) ÚTestRavelUnravelIndexc ó — t t j dd¦ « d¦ « t t j dd¬¦ « d¦ « t t ¦ « 5 t j dd¬¦ « d d d ¦ « n# 1 swxY w Y t t ¦ « 5 t j dd¬¦ « d d d ¦ « n# 1 swxY w Y t t ¦ « 5 t j dd¬ ¦ « d d d ¦ « n# 1 swxY w Y t t ¦ « 5 t j dd¬ ¦ « d d d ¦ « n# 1 swxY w Y t t j dd¦ « d¦ « t t j dd¦ « d¦ « t t j dd¦ « d¦ « t t t j dd¦ « t t t j d d¦ « t t t j dd¦ « t t t j dd¦ « t t t j dd¦ « t t t j dd¦ « t t t j dd¦ « t t t j dd¦ « t t j dd¦ « g d¢¦ « t t j g d¢d¦ « d¦ « t j g d¢g d¢g¦ « }t t j |d¦ « g d¢¦ « t t j |dd¬¦ « g d¢¦ « t t j |dd¬ ¦ « g d!¢¦ « t t j |d"d#¬ ¦ « g d$¢¦ « t t j d%d&¦ « d'¦ « t t j t j g d¢¦ « d¦ « g d¢g d¢g¦ « t t j t j g d¢¦ « dd¬¦ « g d¢g d¢g¦ « t t j d'd&¦ « g d%¢¦ « d S )(Né )r r ©é r )ÚindicesÚshape)r Úhape)r éþ )é é^ )Úims)Údims)r éB éÿÿÿÿg à?é )éýÿÿÿr )r r )r r&