From 0aa39cc81322e16fd80df47e2e66db225ee6998d Mon Sep 17 00:00:00 2001 From: Cyrille Henry Date: Mon, 28 Apr 2014 16:49:22 +0000 Subject: add new test options svn path=/trunk/externals/pmpd/; revision=17301 --- pmpd2d_test.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) (limited to 'pmpd2d_test.c') diff --git a/pmpd2d_test.c b/pmpd2d_test.c index a73d43e..54c8023 100644 --- a/pmpd2d_test.c +++ b/pmpd2d_test.c @@ -1,7 +1,7 @@ int test_2d_mass(int i, t_pmpd2d *x, int argc, t_atom *argv) { t_float tmp; - t_int j = 1; + t_int j = 1, k; while (j < argc) { if (argv[j].a_type != A_SYMBOL) @@ -119,6 +119,66 @@ int test_2d_mass(int i, t_pmpd2d *x, int argc, t_atom *argv) if ( x->mass[i].forceY >= atom_getfloatarg(j+1,argc,argv) ) { return(0); } j+=2; } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkSup") ) + { // link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].mass1->num == x->mass[i].num) || (x->link[k].mass2->num == x->mass[i].num) ) tmp++; + } + if ( tmp <= atom_getfloatarg(j+1,argc,argv) ) { return(0); } + j+=2; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkInf") ) + { // link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].mass1->num == x->mass[i].num) || (x->link[k].mass2->num == x->mass[i].num) ) tmp++; + } + if ( tmp >= atom_getfloatarg(j+1,argc,argv) ) { return(0); } + j+=2; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkEqual") ) + { // link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].mass1->num == x->mass[i].num) || (x->link[k].mass2->num == x->mass[i].num) ) tmp++; + } + if ( tmp != atom_getfloatarg(j+1,argc,argv) ) { return(0); } + j+=2; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkNameSup") ) + { // link name, link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].Id == atom_getsymbolarg(j+1,argc,argv)) && ((x->link[k].mass2->num == x->mass[i].num) || (x->link[k].mass1->num == x->mass[i].num)) ) tmp++; + } + if ( tmp <= atom_getfloatarg(j+2,argc,argv) ) { return(0); } + j+=3; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkNameInf") ) + { // link name, link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].Id == atom_getsymbolarg(j+1,argc,argv)) && ((x->link[k].mass2->num == x->mass[i].num) || (x->link[k].mass1->num == x->mass[i].num)) ) tmp++; + } + if ( tmp >= atom_getfloatarg(j+2,argc,argv) ) { return(0); } + j+=3; + } + else if (atom_getsymbolarg(j,argc,argv) == gensym("nbLinkNameEqual") ) + { // link name, link number + tmp=0; + for (k=0; k < x->nb_link; k++) + { + if ( (x->link[k].Id == atom_getsymbolarg(j+1,argc,argv)) && ((x->link[k].mass2->num == x->mass[i].num) || (x->link[k].mass1->num == x->mass[i].num)) ) tmp++; + } + if ( tmp != atom_getfloatarg(j+2,argc,argv) ) { return(0); } + j+=3; + } else { pd_error(x, "Option \"%s\" not reconized, stoping test",atom_getsymbolarg(j,argc,argv)->s_name); -- cgit v1.2.1