o
    ¶N iŸ  ã                   @   sX   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
 G dd„ deƒZdS )	é    N)Úndarray)Úxrange)ÚTestCase)Úissparse)Útrunkc                       sD   e Zd Z‡ fdd„Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z‡  Z	S )Ú	TestTrunkc                    s(   t t| ƒ ¡  tj tj t¡¡| _d S )N)	Úsuperr   ÚsetUpÚosÚpathÚdirnameÚabspathÚ__file__Útest_dir)Úself©Ú	__class__© úU/home/ubuntu/.local/lib/python3.10/site-packages/indictrans/trunk/tests/test_trunk.pyr	      s   zTestTrunk.setUpc                 C   sF   t  d| j ¡\}}tt|ƒƒD ]}|  t|| ƒt|| ƒ¡ qd S )Nú%s/hin2rom.tnt)r   Ú	load_datar   r   ÚlenÚassertEqual)r   ÚXÚyÚir   r   r   Útest_data_load   s   ÿzTestTrunk.test_data_loadc                 C   st   t dƒt dƒt dƒg}tj|dd}|  t|ƒt|ƒ¡ |D ]}|dd … D ]}|  t|d d ƒt|ƒ¡ q&qd S )NÚhelloÚwelcomeÚtesting_is_funé   ©Úngramé   r   )Úlistr   Úbuild_contextr   r   )r   r   ÚX_ÚseqÚ
ch_contextr   r   r   Útest_context_build   s   ýÿzTestTrunk.test_context_buildc                 C   sˆ   t  d| j ¡\}}t j|dd}t  |¡\}}|  t|ƒt|ƒ¡ |D ]}|j|dd}|  t	|ƒ¡ |j|dd}|  
|t¡ q$d S )Nr   r    r!   T)ÚsparseF)r   r   r   r%   Úfit_encoderr   r   Ú	transformÚ
assertTruer   ÚassertIsInstancer   )r   r   r   r&   ÚencÚX_encÚxÚx_r   r   r   Útest_encoder#   s   üzTestTrunk.test_encoderc           	      C   sÄ   t  d| j ¡\}}t j|dd}t  |¡\}}t  ||¡}| |¡}tt|ƒƒD ]}|  	t|| ƒt|| ƒ¡ q)t  
||d| j ¡ t  ||d¡ t  ||d¡ t  ||d¡ t  ||d¡ d S )Nr   r    r!   z/tmp/models)r   r   r   r%   r+   Útrain_spÚpredictr   r   r   Útest_spÚsave_models)	r   r   r   r&   r/   r0   ÚclfÚy_outr   r   r   r   Útest_sp_train/   s   
zTestTrunk.test_sp_trainc                 C   s‚   t  g d¢¡}|  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |jd¡ |  |j	d¡ |  |j
d	¡ d S )
N)z--data-fileúpath/to/train_filez--output-dirúpath/to/modelsz--ngramsÚ4z--lr-expz0.1z
--max-iterÚ15z--random-stateÚ127z--verbosityÚ3z--test-fileúpath/to/test_filer;   r<   r    gš™™™™™¹?é   é   é   rA   )r   Ú
parse_argsr   Ú	data_fileÚout_dirr"   Úlr_expÚn_iterÚrandom_stateÚverboseÚ	test_file)r   Úparserr   r   r   Útest_parserA   s   zTestTrunk.test_parser)
Ú__name__Ú
__module__Ú__qualname__r	   r   r)   r3   r:   rN   Ú__classcell__r   r   r   r   r      s    r   )r
   Únumpyr   Ú	six.movesr   Ú	testtoolsr   Úscipy.sparser   Ú
indictransr   r   r   r   r   r   Ú<module>   s   