Changeset ffb545d in tol for tol_tests


Ignore:
Timestamp:
Oct 22, 2008, 2:56:57 PM (18 years ago)
Author:
Víctor de Buen <vdebuen@…>
Branches:
1941-docker-image-to-test, devel, master
Children:
898821f
Parents:
53020ad
Message:

Setting higher tolerance for zero comparissons and storing failed cases

git-svn-id: ​https://www.tol-project.org/svn/tolp/trunk@54 be4846ae-f051-483a-831f-b64e7d08527f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • tol_tests/tol/LinearAlgebra/vmatrix/test_0009/test.tol

    r53020ad rffb545d  
    1717NameBlock check.data.01 =
    1818[[
     19  Text _.name = "check.data.01";
    1920  Real n = 1;
    2021  Real r = 2;
    … …  
    2829NameBlock check.data.02 =
    2930[[
     31  Text _.name = "check.data.02";
    3032  Real n = 1;
    3133  Real r = 2;
    … …  
    3941NameBlock rand.check.data(Real unused)
    4042{[[
     43  Real seed =
     44  {
     45    Real aux = IntRand(1, 999999999);
     46    Real PutRandomSeed(aux);
     47    GetRandomSeed(0)
     48  };
     49  Text _.name = "rand.check.data."+IntText(seed);
    4150  Real n = IntRand(1,3);
    4251  Real r = IntRand(1,5);
    … …  
    5059
    5160NameBlock Checker(NameBlock data)
    52 {[[
     61{
     62  NameBlock aux = [[
    5363  NameBlock _.data = data;
    54   Real ok.1 = LE(VMatMax(_.data::D*_.data::z-_.data::d),0);
     64  Real ok.0 = LE(VMatMax(_.data::D*_.data::z-_.data::d),0);
    5565  Set bounds = GetBoundsInPolytope(_.data::D,_.data::d,_.data::z,_.data::j);
    56   Real tol = data::r * data::n;
     66  Real tol = 100*(data::r * data::n);
    5767//Real trc.1={WriteLn("bounds=["<<bounds::Lower+","<<bounds::Upper+"]"),0};
    58   Real checkBounds(Real zj)
    59   {
    60     VMatrix z_ = Copy(data::z);
    61     Real PutVMatDat(z_,_.data::j,1,zj);
     68  NameBlock checkBounds(Real zj_)
     69  {[[
     70    Real zj = zj_;
     71    VMatrix z_ =
     72    {
     73      VMatrix aux = Copy(data::z);
     74      Real PutVMatDat(aux,_.data::j,1,zj);
     75      aux
     76    };
    6277    VMatrix g = _.data::D*z_-_.data::d;
    6378    Real g.max = (VMatMax(g)+tol)-tol;
    … …  
    7085/* */
    7186    ok
    72   };
     87  ]]};
    7388 
    7489  Real lower = Max(bounds::Lower,-100000);
    7590  Real upper = Min(bounds::Upper,+100000);
    7691
    77   Real ok.2 = checkBounds(lower);
    78   Real ok.3 = checkBounds(upper);
     92  NameBlock cb.1 = checkBounds(lower);
     93  Real ok.1 = cb.1::ok;
     94  NameBlock cb.2 = checkBounds(upper);
     95  Real ok.2 = cb.2::ok;
     96  NameBlock cb.3 = checkBounds((lower+upper)/2);
     97  Real ok.3 = cb.3::ok;
     98  NameBlock cb.4 = checkBounds(lower-0.00001);
     99  Real ok.4 = If(bounds::Lower>-1/0, Not(cb.4::ok), cb.4::ok);
     100  NameBlock cb.5 = checkBounds(upper+0.00001);
     101  Real ok.5 = If(bounds::Upper<+1/0, Not(cb.5::ok), cb.5::ok);
    79102
    80   Real ok.4 =
    81   {
    82     Real aux = checkBounds(lower-0.00001);
    83     If(bounds::Lower>-1/0, !aux, aux)
    84   };
    85   Real ok.5 =
    86   {
    87     Real aux = checkBounds(upper+0.00001);
    88     If(bounds::Upper<+1/0, !aux, aux)
    89   };
    90   Real ok = And(ok.1,ok.2,ok.3,ok.4,ok.5)
    91 
    92 ]]};
     103  Real ok = And(ok.0,ok.1,ok.2,ok.3,ok.4,ok.5) ]];
     104  Eval(data::_.name+"=aux")
     105};
    93106
    94107Set check.all =
    … …  
    97110  NameBlock check.02 = Checker(check.data.02)
    98111]] <<
    99 For(1,1000,NameBlock(Real iter) { Checker(rand.check.data(0)) });
     112For(1,10000,NameBlock(Real iter)
     113{
     114  NameBlock aux = Checker(rand.check.data(0));
     115  Real If(Not(aux::ok),
     116  {
     117    Text path = "fail/"+aux::_.data::_.name;
     118    WriteLn("Case "+path+" has failed and will be stored.","E");
     119    Real Ois.Store([[aux]],path);
     120    0
     121  });
     122  Eval(aux::_.data::_.name+"=aux")
     123});
    100124
     125Set failed = Select(check.all,  Real(NameBlock chk) { Not(chk::ok)} );
    101126Set ok.all = EvalSet(check.all, Real(NameBlock chk) { chk::ok} );
    102127Real ok = SetMin(ok.all);
Note: See TracChangeset for help on using the changeset viewer.