@@ -232,8 +232,9 @@ impl LongstaffScwhartzPricer {
232232mod tests_longstaff_schwartz_pricer_at_the_money {
233233 use super :: * ;
234234 use time:: macros:: date;
235+ use RustQuant_utils :: assert_approx_equal;
235236
236- const TOLERANCE : f64 = 0.25 ;
237+ const TOLERANCE : f64 = 0.125 ;
237238 const ATM_CALL_EXPECTED_PRICE : f64 = 0.680 ;
238239 const ATM_PUT_EXPECTED_PRICE : f64 = 0.243 ;
239240
@@ -252,8 +253,10 @@ mod tests_longstaff_schwartz_pricer_at_the_money {
252253 None
253254 ) ;
254255
255- assert ! (
256- ( longstaff_schwartz_pricer. generate_price( ) - ATM_CALL_EXPECTED_PRICE ) . abs( ) < TOLERANCE
256+ assert_approx_equal ! (
257+ longstaff_schwartz_pricer. generate_price( ) ,
258+ ATM_CALL_EXPECTED_PRICE ,
259+ TOLERANCE
257260 ) ;
258261 }
259262
@@ -272,8 +275,10 @@ mod tests_longstaff_schwartz_pricer_at_the_money {
272275 None
273276 ) ;
274277
275- assert ! (
276- ( longstaff_schwartz_pricer. generate_price( ) - ATM_PUT_EXPECTED_PRICE ) . abs( ) < TOLERANCE
278+ assert_approx_equal ! (
279+ longstaff_schwartz_pricer. generate_price( ) ,
280+ ATM_PUT_EXPECTED_PRICE ,
281+ TOLERANCE
277282 ) ;
278283 }
279284}
@@ -286,8 +291,9 @@ mod tests_longstaff_schwartz_pricer_at_the_money {
286291mod tests_longstaff_schwartz_pricer_in_the_money {
287292 use super :: * ;
288293 use time:: macros:: date;
294+ use RustQuant_utils :: assert_approx_equal;
289295
290- const TOLERANCE : f64 = 0.25 ;
296+ const TOLERANCE : f64 = 0.125 ;
291297 const ITM_CALL_EXPECTED_PRICE : f64 = 5.4889 ;
292298 const ITM_PUT_EXPECTED_PRICE : f64 = 5.0000 ;
293299
@@ -305,9 +311,10 @@ mod tests_longstaff_schwartz_pricer_in_the_money {
305311 500 ,
306312 None
307313 ) ;
308-
309- assert ! (
310- ( longstaff_schwartz_pricer. generate_price( ) - ITM_CALL_EXPECTED_PRICE ) . abs( ) < TOLERANCE
314+ assert_approx_equal ! (
315+ longstaff_schwartz_pricer. generate_price( ) ,
316+ ITM_CALL_EXPECTED_PRICE ,
317+ TOLERANCE
311318 ) ;
312319 }
313320
@@ -326,8 +333,10 @@ mod tests_longstaff_schwartz_pricer_in_the_money {
326333 None
327334 ) ;
328335
329- assert ! (
330- ( longstaff_schwartz_pricer. generate_price( ) - ITM_PUT_EXPECTED_PRICE ) . abs( ) < TOLERANCE
336+ assert_approx_equal ! (
337+ longstaff_schwartz_pricer. generate_price( ) ,
338+ ITM_PUT_EXPECTED_PRICE ,
339+ TOLERANCE
331340 ) ;
332341 }
333342}
@@ -340,8 +349,9 @@ mod tests_longstaff_schwartz_pricer_in_the_money {
340349mod tests_longstaff_schwartz_pricer_out_the_money {
341350 use super :: * ;
342351 use time:: macros:: date;
352+ use RustQuant_utils :: assert_approx_equal;
343353
344- const TOLERANCE : f64 = 0.25 ;
354+ const TOLERANCE : f64 = 0.125 ;
345355 const OTM_CALL_EXPECTED_PRICE : f64 = 0.0000 ;
346356 const OTM_PUT_EXPECTED_PRICE : f64 = 0.0000 ;
347357
@@ -360,8 +370,10 @@ mod tests_longstaff_schwartz_pricer_out_the_money {
360370 None
361371 ) ;
362372
363- assert ! (
364- ( longstaff_schwartz_pricer. generate_price( ) - OTM_CALL_EXPECTED_PRICE ) . abs( ) < TOLERANCE
373+ assert_approx_equal ! (
374+ longstaff_schwartz_pricer. generate_price( ) ,
375+ OTM_CALL_EXPECTED_PRICE ,
376+ TOLERANCE
365377 ) ;
366378 }
367379
@@ -380,8 +392,10 @@ mod tests_longstaff_schwartz_pricer_out_the_money {
380392 None
381393 ) ;
382394
383- assert ! (
384- ( longstaff_schwartz_pricer. generate_price( ) - OTM_PUT_EXPECTED_PRICE ) . abs( ) < TOLERANCE
395+ assert_approx_equal ! (
396+ longstaff_schwartz_pricer. generate_price( ) ,
397+ OTM_PUT_EXPECTED_PRICE ,
398+ TOLERANCE
385399 ) ;
386400 }
387401}
0 commit comments