📄 ckn_strnum.cpp
字号:
// base sample + "e1" {"0e1",3,0,0,0,1},{"+0e1",4,0,0,0,1},{"-0e1",4,0,0,0,1}, {".0e1",4,0,0,-1,1},{"+.0e1",5,0,0,-1,1},{"-.0e1",5,0,0,-1,1}, {".00e1",5,0,0,-2,1},{"+.00e1",6,0,0,-2,1},{"-.00e1",6,0,0,-2,1}, {"0.e1",4,0,0,0,1},{"+0.e1",5,0,0,0,1},{"-0.e1",5,0,0,0,1}, {"0.0e1",5,0,0,-1,1},{"+0.0e1",6,0,0,-1,1},{"-0.0e1",6,0,0,-1,1}, {"00.0e1",6,0,0,-1,1},{"+00.0e1",7,0,0,-1,1},{"-00.0e1",7,0,0,-1,1}, {"0.010e1",7,0,10,-3,1},{"+0.010e1",8,0,10,-3,1},{"-0.010e1",8,0,-10,-3,1}, {"123e1",5,123,0,0,1}, {"+123e1",6,123,0,0,1}, {"-123e1",6,-123,0,0,1}, {".123e1",6,0,123,-3,1}, {"+.123e1",7,0,123,-3,1}, {"-.123e1",7,0,-123,-3,1}, {".120e1",6,0,120,-3,1}, {"+.120e1",7,0,120,-3,1}, {"-.120e1",7,0,-120,-3,1}, {"123.e1",6,123,0,0,1},{"+123.e1",7,123,0,0,1},{"-123.e1",7,-123,0,0,1}, {"123.0e1",7,123,0,-1,1},{"+123.0e1",8,123,0,-1,1},{"-123.0e1",8,-123,0,-1,1}, {"23.45e1",7,23,45,-2,1},{"+23.45e1",8,23,45,-2,1},{"-23.45e1",8,-23,-45,-2,1}, {"23.40e1",7,23,40,-2,1},{"+23.40e1",8,23,40,-2,1},{"-23.40e1",8,-23,-40,-2,1}, // base sample + "e+1" {"0e+1",4,0,0,0,1},{"+0e+1",5,0,0,0,1},{"-0e+1",5,0,0,0,1}, {".0e+1",5,0,0,-1,1},{"+.0e+1",6,0,0,-1,1},{"-.0e+1",6,0,0,-1,1}, {".00e+1",6,0,0,-2,1},{"+.00e+1",7,0,0,-2,1},{"-.00e+1",7,0,0,-2,1}, {"0.e+1",5,0,0,0,1},{"+0.e+1",6,0,0,0,1},{"-0.e+1",6,0,0,0,1}, {"0.0e+1",6,0,0,-1,1},{"+0.0e+1",7,0,0,-1,1},{"-0.0e+1",7,0,0,-1,1}, {"00.0e+1",7,0,0,-1,1},{"+00.0e+1",8,0,0,-1,1},{"-00.0e+1",8,0,0,-1,1}, {"0.010e+1",8,0,10,-3,1},{"+0.010e+1",9,0,10,-3,1},{"-0.010e+1",9,0,-10,-3,1}, {"123e+1",6,123,0,0,1}, {"+123e+1",7,123,0,0,1}, {"-123e+1",7,-123,0,0,1}, {".123e+1",7,0,123,-3,1}, {"+.123e+1",8,0,123,-3,1}, {"-.123e+1",8,0,-123,-3,1}, {".120e+1",7,0,120,-3,1}, {"+.120e+1",8,0,120,-3,1}, {"-.120e+1",8,0,-120,-3,1}, {"123.e+1",7,123,0,0,1},{"+123.e+1",8,123,0,0,1},{"-123.e+1",8,-123,0,0,1}, {"123.0e+1",8,123,0,-1,1},{"+123.0e+1",9,123,0,-1,1},{"-123.0e+1",9,-123,0,-1,1}, {"23.45e+1",8,23,45,-2,1},{"+23.45e+1",9,23,45,-2,1},{"-23.45e+1",9,-23,-45,-2,1}, {"23.40e+1",8,23,40,-2,1},{"+23.40e+1",9,23,40,-2,1},{"-23.40e+1",9,-23,-40,-2,1}, // base sample + "e-1" {"0e-1",4,0,0,0,-1},{"+0e-1",5,0,0,0,-1},{"-0e-1",5,0,0,0,-1}, {".0e-1",5,0,0,-1,-1},{"+.0e-1",6,0,0,-1,-1},{"-.0e-1",6,0,0,-1,-1}, {".00e-1",6,0,0,-2,-1},{"+.00e-1",7,0,0,-2,-1},{"-.00e-1",7,0,0,-2,-1}, {"0.e-1",5,0,0,0,-1},{"+0.e-1",6,0,0,0,-1},{"-0.e-1",6,0,0,0,-1}, {"0.0e-1",6,0,0,-1,-1},{"+0.0e-1",7,0,0,-1,-1},{"-0.0e-1",7,0,0,-1,-1}, {"00.0e-1",7,0,0,-1,-1},{"+00.0e-1",8,0,0,-1,-1},{"-00.0e-1",8,0,0,-1,-1}, {"0.010e-1",8,0,10,-3,-1},{"+0.010e-1",9,0,10,-3,-1},{"-0.010e-1",9,0,-10,-3,-1}, {"123e-1",6,123,0,0,-1}, {"+123e-1",7,123,0,0,-1}, {"-123e-1",7,-123,0,0,-1}, {".123e-1",7,0,123,-3,-1}, {"+.123e-1",8,0,123,-3,-1}, {"-.123e-1",8,0,-123,-3,-1}, {".120e-1",7,0,120,-3,-1}, {"+.120e-1",8,0,120,-3,-1}, {"-.120e-1",8,0,-120,-3,-1}, {"123.e-1",7,123,0,0,-1},{"+123.e-1",8,123,0,0,-1},{"-123.e-1",8,-123,0,0,-1}, {"123.0e-1",8,123,0,-1,-1},{"+123.0e-1",9,123,0,-1,-1},{"-123.0e-1",9,-123,0,-1,-1}, {"23.45e-1",8,23,45,-2,-1},{"+23.45e-1",9,23,45,-2,-1},{"-23.45e-1",9,-23,-45,-2,-1}, {"23.40e-1",8,23,40,-2,-1},{"+23.40e-1",9,23,40,-2,-1},{"-23.40e-1",9,-23,-40,-2,-1}, // base sample + "E1" (these expressions are checked, check for 'E') {"0E1",3,0,0,0,1},{"+0E1",4,0,0,0,1},{"-0E1",4,0,0,0,1}, {".0E1",4,0,0,-1,1},{"+.0E1",5,0,0,-1,1},{"-.0E1",5,0,0,-1,1}, {".00E1",5,0,0,-2,1},{"+.00E1",6,0,0,-2,1},{"-.00E1",6,0,0,-2,1}, {"0.E1",4,0,0,0,1},{"+0.E1",5,0,0,0,1},{"-0.E1",5,0,0,0,1}, {"0.0E1",5,0,0,-1,1},{"+0.0E1",6,0,0,-1,1},{"-0.0E1",6,0,0,-1,1}, {"00.0E1",6,0,0,-1,1},{"+00.0E1",7,0,0,-1,1},{"-00.0E1",7,0,0,-1,1}, {"0.010E1",7,0,10,-3,1},{"+0.010E1",8,0,10,-3,1},{"-0.010E1",8,0,-10,-3,1}, {"123E1",5,123,0,0,1}, {"+123E1",6,123,0,0,1}, {"-123E1",6,-123,0,0,1}, {".123E1",6,0,123,-3,1}, {"+.123E1",7,0,123,-3,1}, {"-.123E1",7,0,-123,-3,1}, {".120E1",6,0,120,-3,1}, {"+.120E1",7,0,120,-3,1}, {"-.120E1",7,0,-120,-3,1}, {"123.E1",6,123,0,0,1},{"+123.E1",7,123,0,0,1},{"-123.E1",7,-123,0,0,1}, {"123.0E1",7,123,0,-1,1},{"+123.0E1",8,123,0,-1,1},{"-123.0E1",8,-123,0,-1,1}, {"23.45E1",7,23,45,-2,1},{"+23.45E1",8,23,45,-2,1},{"-23.45E1",8,-23,-45,-2,1}, {"23.40E1",7,23,40,-2,1},{"+23.40E1",8,23,40,-2,1},{"-23.40E1",8,-23,-40,-2,1}, }; for(size_t i=0; i<sizeof(chk_tab)/sizeof(ChkSmp3<NumT>); ++i) { chk_tab[i].verify(); } WyRet r; NumT res1,res2; int res3; const char* endptr; //{ // NumT Max=std::numeric_limits<NumT>::max(); // NumT Min=std::numeric_limits<NumT>::min(); //} // check error { const char s1[]="a"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_ENOENT) { WY_THROW(r); } if(endptr-s1!=0) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,"",0))!=Wym_ENOENT) { WY_THROW(r); } } { const char s1[]="2a"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=1) { WY_THROW( WyRet() ); } if(res1!=NumT(2)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="2ea"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=1) { WY_THROW( WyRet() ); } if(res1!=NumT(2)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="."; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_ENOENT) { WY_THROW(r); } if(endptr-s1!=0) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]=".e"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_ENOENT) { WY_THROW(r); } if(endptr-s1!=0) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="-."; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_ENOENT) { WY_THROW(r); } if(endptr-s1!=0) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="-.e"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_ENOENT) { WY_THROW(r); } if(endptr-s1!=0) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]=".x"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_ENOENT) { WY_THROW(r); } if(endptr-s1!=0) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]=".3x"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=2) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(3)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="+.3x"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=3) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(3)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="-.3x"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=3) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(-3)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="-.3e"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=3) { WY_THROW( WyRet() ); } if(res1!=NumT(0)) { WY_THROW( WyRet() ); } if(res2!=NumT(-3)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="1.x"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=2) { WY_THROW( WyRet() ); } if(res1!=NumT(1)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="1.e"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=2) { WY_THROW( WyRet() ); } if(res1!=NumT(1)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="+1.x"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=3) { WY_THROW( WyRet() ); } if(res1!=NumT(1)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="+1.e"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=3) { WY_THROW( WyRet() ); } if(res1!=NumT(1)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="-1.x"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=3) { WY_THROW( WyRet() ); } if(res1!=NumT(-1)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="-1ee"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=2) { WY_THROW( WyRet() ); } if(res1!=NumT(-1)) { WY_THROW( WyRet() ); } if(res2!=NumT(0)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } } { const char s1[]="12.34ee"; int frdig=100; res1=res2=100; res3=100; if((r=Wy::wy_strnum3(res1,res2,frdig,res3,&endptr,s1,sizeof(s1)-1))!=Wym_EBADMSG) { WY_THROW(r); } if(endptr-s1!=5) { WY_THROW( WyRet() ); } if(res1!=NumT(12)) { WY_THROW( WyRet() ); } if(res2!=NumT(34)) { WY_THROW( WyRet() ); } if(res3!=0) { WY_THROW( WyRet() ); } }};void ck_strnum(void){ ck_strnum2_typed<signed int>(); ck_strnum2_typed<signed long>(); ck_strnum2_typed<signed long long>(); ck_strnum3_typed<signed int>(); ck_strnum3_typed<signed long>(); ck_strnum3_typed<signed long long>();};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -