MCPcopy Create free account
hub / github.com/ElementsProject/lightning / test_edge_probability

Function test_edge_probability

plugins/renepay/test/run-testflow.c:407–514  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

405};
406
407static void test_edge_probability(void)
408{
409 const double eps = 1e-8;
410
411 struct amount_msat min = AMOUNT_MSAT(10); // known min
412 struct amount_msat max = AMOUNT_MSAT(19); // known max
413
414 struct amount_msat X = AMOUNT_MSAT(0); // in flight
415 struct amount_msat f;
416
417 for(int i=0;i<=min.millisatoshis;++i)
418 {
419 f.millisatoshis = i;
420 // prob = 1
421 assert(fabs(edge_probability(min,max,X,f)-1.0)< eps);
422 }
423 for(int i=max.millisatoshis+1;i<=100;++i)
424 {
425 f.millisatoshis = i;
426 // prob = 0
427 assert(fabs(edge_probability(min,max,X,f))< eps);
428 }
429 f.millisatoshis=11;
430 assert(fabs(edge_probability(min,max,X,f)-0.9)< eps);
431
432 f.millisatoshis=12;
433 assert(fabs(edge_probability(min,max,X,f)-0.8)< eps);
434
435 f.millisatoshis=13;
436 assert(fabs(edge_probability(min,max,X,f)-0.7)< eps);
437
438 f.millisatoshis=14;
439 assert(fabs(edge_probability(min,max,X,f)-0.6)< eps);
440
441 f.millisatoshis=15;
442 assert(fabs(edge_probability(min,max,X,f)-0.5)< eps);
443
444 f.millisatoshis=16;
445 assert(fabs(edge_probability(min,max,X,f)-0.4)< eps);
446
447 f.millisatoshis=17;
448 assert(fabs(edge_probability(min,max,X,f)-0.3)< eps);
449
450 f.millisatoshis=18;
451 assert(fabs(edge_probability(min,max,X,f)-0.2)< eps);
452
453 f.millisatoshis=19;
454 assert(fabs(edge_probability(min,max,X,f)-0.1)< eps);
455
456 X = AMOUNT_MSAT(5);
457
458 // X<A, f<A-X
459 for(int i=0;i<=5;++i)
460 {
461 f.millisatoshis = i;
462 // prob = 1
463 assert(fabs(edge_probability(min,max,X,f)-1.0)< eps);
464 }

Callers 1

mainFunction · 0.85

Calls 1

edge_probabilityFunction · 0.50

Tested by

no test coverage detected