
    9j                     b    d Z ddlZddlmc mZ ddlmZmZm	Z	 ddl
Z
ddlmZmZ  G d d      Zy)z(Tests for go/no-go production evaluator.    N)datetime	timedeltatimezone)GoNoGoCriteriaGoNoGoEvaluatorc                       e Zd Zd Zd Zy)
TestGoNoGoc           	         t        t        dd            }t        d      D cg c]  }ddi }}|j                  |ddgt	        j
                  t        j                        t        d	
      z
  dddd      }|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$                  }
t'        |
      }d}||k(  }|s
t        j                  d|fd||f      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t        j                  |
      t        j                  |      t        j                  |      dz  }dd|iz  }t!        t        j"                  |            d x}
x}x}}y c c}w )N   2   )min_paper_days
min_trades7   pnl
   '  i)  #   daysg333333?g       @      ?g333333?)tradesequity_curvepaper_startsharpemax_drawdownprofit_factoravg_slippage_diff_pctTisz.%(py2)s
{%(py2)s = %(py0)s.passed
} is %(py5)sresultpy0py2py5assert %(py7)spy7r   )==)zN%(py5)s
{%(py5)s = %(py0)s(%(py3)s
{%(py3)s = %(py1)s.failures
})
} == %(py8)slen)r#   py1py3r%   py8zassert %(py10)spy10)r   r   rangeevaluater   nowr   utcr   passed
@pytest_ar_call_reprcompare@py_builtinslocals_should_repr_global_name	_safereprAssertionError_format_explanationfailuresr)   )self	evaluator_r   r!   @py_assert1@py_assert4@py_assert3@py_format6@py_format8@py_assert2@py_assert7@py_assert6@py_format9@py_format11s                  =C:\xampp\htdocs\tradingbinance\backend\tests\test_go_no_go.pytest_passes_all_criteriaz#TestGoNoGo.test_passes_all_criteria   s   #N"QS$TU	',Ry1y!5"+y1## X\\2YB5GG"% $ 
 }}$$}$$$$}$$$$$$v$$$v$$$}$$$$$$$$$$??(s?#(q(#q((((#q((((((s(((s((((((6(((6(((?(((#(((q((((((( 2s   I4c                    t               }|j                  ddigdz  dgt        j                  t        j
                        t        d      z
  ddd	
      }|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}}d |j                   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}}y )Nr      r   r   (   r   r      g       @)r   r   r   r   r   r   Fr   r    r!   r"   r&   r'   c              3   @   K   | ]  }d |j                         v   yw)r   N)lower).0fs     rI   	<genexpr>z<TestGoNoGo.test_fails_insufficient_trades.<locals>.<genexpr>%   s     B/Q8qwwy(/s   z,assert %(py4)s
{%(py4)s = %(py0)s(%(py2)s)
}any)r#   r$   py4)r   r/   r   r0   r   r1   r   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   rT   )	r<   r=   r!   r?   r@   rA   rB   rC   @py_format5s	            rI   test_fails_insufficient_tradesz)TestGoNoGo.test_fails_insufficient_trades   s'   #%	##AJ<"$ X\\2YB5GG $ 
 }}%%}%%%%}%%%%%%v%%%v%%%}%%%%%%%%%%B&//BBsBBBBBBBBBsBBBsBBBBBBBBBBBBBB    N)__name__
__module____qualname__rJ   rW    rX   rI   r	   r	   
   s    )CrX   r	   )__doc__builtinsr5   _pytest.assertion.rewrite	assertionrewriter3   r   r   r   pytestapp.services.go_no_gor   r   r	   r\   rX   rI   <module>rd      s%    .    2 2  AC CrX   