
    Ng                        d Z ddlmZ ddlmZmZmZ ddlZddlm	Z	m
Z
 ddlmZmZ ddlmZmZmZ  G d d	          Z G d
 d          Z G d d          Z	 	 dddZddZdS )z@Unit-test suite for the `unstructured.chunking.dispatch` module.    )annotations)AnyIterableOptionalN)add_chunking_strategyregister_chunking_strategy)_ChunkerSpecchunk)CompositeElementElementTextc                      e Zd ZdZd Zd ZdS )Describe_add_chunking_strategyzNUnit-test suite for `unstructured.chunking.add_chunking_strategy()` decorator.c                r    t          t                    } |d          }|t          d          gk    sJ d S )Nbasic)chunking_strategyzLorem ipsum.

Sit amet.)r   partition_thisr   )selfdecorated_partitionerchunkss      d/var/www/html/ai-engine/env/lib/python3.11/site-packages/test_unstructured/chunking/test_dispatch.py?it_dispatches_the_partitioned_elements_to_the_indicated_chunkerz^Describe_add_chunking_strategy.it_dispatches_the_partitioned_elements_to_the_indicated_chunker   sG     5n E E&&AAA*+FGGHHHHHHH    c                    t          t                    } |            }|t          d          t          d          gk    sJ d S )NLorem ipsum.	Sit amet.)r   r   r   )r   r   elementss      r   <but_it_skips_dispatch_when_no_chunking_strategy_is_specifiedz[Describe_add_chunking_strategy.but_it_skips_dispatch_when_no_chunking_strategy_is_specified   sJ     5n E E((**D00${2C2CDDDDDDDr   N)__name__
__module____qualname____doc__r   r    r   r   r   r      s@        XXI I IE E E E Er   r   c                      e Zd ZdZd Zd ZdS )Describe_chunkzFUnit-test suite for `unstructured.chunking.dispatch.chunk()` function.c                    t          dt                     ddd}t          t          d          t          d          gdfi |}|t	          d          gk    sJ d S )Nby_something_elsei  bar)max_charactersfooLoremIpsumz=chunked 2 elements with `(max_characters=750, whizbang=None)`)r   chunk_by_something_elser
   r   r   )r   kwargsr   s      r   Ait_dispatches_to_the_chunker_registered_for_the_chunking_strategyzPDescribe_chunk.it_dispatches_to_the_chunker_registered_for_the_chunking_strategy%   s    "#68OPPP! 	
 
 WtG}}57JUUfUU\]]
 
 
 
 
 
 
r   c                    t          j        t          d          5  t          g d           d d d            d S # 1 swxY w Y   d S )Nz'unrecognized chunking strategy 'foobar')matchfoobar)r   r   )pytestraises
ValueErrorr
   )r   s    r   @it_raises_when_the_requested_chunking_strategy_is_not_registeredzODescribe_chunk.it_raises_when_the_requested_chunking_strategy_is_not_registered4   s    ];
 
 
 	; 	; 2::::		; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;s   ;??N)r   r    r!   r"   r/   r6   r#   r   r   r%   r%   "   s8        PP
 
 
; ; ; ; ;r   r%   c                      e Zd ZdZd Zd ZdS )Describe_ChunkerSpeczJUnit-test suite for `unstructured.chunking.dispatch._ChunkerSpec` objects.c                N    t          t                    }|j        t          u sJ d S )N)r	   r-   chunkerr   specs     r   +it_provides_access_to_the_chunking_functionz@Describe_ChunkerSpec.it_provides_access_to_the_chunking_function?   s*    344|6666666r   c                H    t          t                    }|j        dk    sJ d S )N)r)   whizbang)r	   r-   kw_arg_namesr;   s     r   <it_knows_which_keyword_args_the_chunking_function_can_acceptzQDescribe_ChunkerSpec.it_knows_which_keyword_args_the_chunking_function_can_acceptC   s+    344 $BBBBBBBr   N)r   r    r!   r"   r=   rA   r#   r   r   r8   r8   <   s=        TT7 7 7C C C C Cr   r8   r   Iterable[Element]r)   Optional[int]r?   Optional[float]returnlist[Element]c           	     n    t          |           }t          dt          |           d| d| d          gS )z3A "fake" minimal chunker suitable for use in tests.zchunked z  elements with `(max_characters=z, whizbang=z)`)listr   len)r   r)   r?   elss       r   r-   r-   K   sd     x..CIs3xx I I!/I I<DI I I	
 	
 r   r.   r   c                 >    t          d          t          d          gS )zA fake partitioner.r   r   )r   )r.   s    r   r   r   Z   s      ${"3"344r   )NN)r   rB   r)   rC   r?   rD   rE   rF   )r.   r   rE   rF   )r"   
__future__r   typingr   r   r   r3   unstructured.chunkingr   r   unstructured.chunking.dispatchr	   r
   unstructured.documents.elementsr   r   r   r   r%   r8   r-   r   r#   r   r   <module>rQ      s\   G F " " " " " " * * * * * * * * * *  S S S S S S S S > > > > > > > > K K K K K K K K K KE E E E E E E E$; ; ; ; ; ; ; ;4	C 	C 	C 	C 	C 	C 	C 	C" %) $    5 5 5 5 5 5r   