From a4b1176d13a8f1c80f6bafc26b3d914f246cb6f8 Mon Sep 17 00:00:00 2001 From: murphy Date: Sat, 5 Nov 2005 03:33:11 +0000 Subject: test suite updated C Tests added! --- test/c/strange.in.c | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 test/c/strange.in.c (limited to 'test/c/strange.in.c') diff --git a/test/c/strange.in.c b/test/c/strange.in.c new file mode 100644 index 0000000..42f339d --- /dev/null +++ b/test/c/strange.in.c @@ -0,0 +1,90 @@ +#include "ruby.h" /* + /sLaSh * + oBfUsCaTeD RuBy * + cOpYrIgHt 2005 * +bY SiMoN StRaNdGaArD * + #{X=320;Y=200;Z=20} */ + +#define GUN1 42: +#define GUN2 43: +#define bo do +#define when(gun) /**/ +#define DATA "p 'Hello embedded world'" +#define DIRTY(argc,argv)\ +argc,argv,char=eval(\ +"#{DATA.read}\n[3,2,1]"\ +);sun=O.new\ +if(0) + +int +sun[]={12,9,16,9,2,1,7,1,3,9,27,4, 13,2,11,5,4,1,25, +5,0,1,14,9,15,4,26,9,23,2,17,6,31, 6,10,8,22,9,21,1, +24,8,20,8,18,9,29,5,9,5,1,1,28,8,8,1,30, 9,6,8, 5,1, +19,9,36,19,43, 9,34,11,50,19,48,18,49,9, 35,8,42,18, +51,8,44,11,32, 11,47,9,37,1,39,9,38,19, 45,8,40,12, +41,9,46,12,33,1,57,1,85,5,88,28,83,4,87, 6,62,28,89, +9,80,28,60,21,52,21,72,29,54,21,75,8,70,29,58,28,65, +9,91,8,74,29,79,2,77,1,53,1,81,5, 69,2,64,21, 86,29, +67,9,59,1,61,5,73,6,76,28,56,21,68,29,78,29,63,5,66, +28,90,29, 71,4,55,9,84,28,82,29,101,5, 103,9, 98,35, +97,1,94,35,93,1,100,35,92,31,99,5,96,39,95,5,102,35}; + +void run(int gun=0) { // [gun]=[:GUN1,:GUN2] + printf("run() %i\n", gun); + switch(gun) { + case GUN1 when(2) + printf("when2\n"); + break; // end + case GUN2 when(3) + printf("when3\n"); + break; // end + } +} + +int main(int argc, char** argv) { + printf("hello world. number of arguments=%i\n", argc); + int fun=5; + bo { + fun -= 1; //.id - gun = fun + run(fun); + } while(fun>0); + ruby_init(); + rb_eval_string(DATA); + return 0; +} + +# if 0 // nobody reads un-defined code +def goto*s;$s=[];Y.times{s=[];X.times{s<<[0]*3};$s<< s}end;A=0.5 +include Math;def u g,h,i,j,k,l;f,*m=((j-h).abs>(k-i).abs)?[proc{ +|n,o| g[o] [n ]=l },[h ,i ],[j,k]]:[proc{ +|p,q| g[ p][ q] =l} ,[ i,h ], [k,j]];b,a=m.sort +c,d=a [1 ]-b [1 ],a [0 ]-b [0 ];d.times{|e|f. +call( e+b[ 0] ,c* e/d+b [1])};end;V=0;def bo&u +$u||= V; ;$u += 1+V ;; return u.call if$u>1;q=128.0 +;x=(V .. 255 ). map {| y|f1,z =sin(y.to_f*PI/q), +sin(( y. to_f + 200 )*PI/( q));[(f1*30.0+110.0). +to_i,((f1+z)*10.0+40.0).to_i,(z*20.0+120.0).to_i]};Y.times{|i|X. +times{|j|i1=((i*0.3+150)*(j*1.1+50)/50.0).to_i;i2=((i*0.8+510)*( +j*0.9+1060)/51.0).to_i;$s[i][j]=x[(i1*i2)%255].clone}};$a=(0..25). +inject([]){|a,i|a<<(V..3).inject([]){|r,j|r<<$c[i*4+j]}};u.call;end +I=LocalJumpError;def run*a,&b;return if a.size==V;if a[V]==666;$b=b +elsif$b;$b.call;end;end;def main s,&u;$m=V;u.call rescue I;end +def rb_eval_string(*a);end # you promised not to look here +def ruby_init;q=2.0;l=((X**q)*A+(Y**q)*A)**A;V.upto(Y-4){|s|V. +upto(X-4){|q|d=((q-X/A)**q+(s-Y/A)**q)**A;e=(cos(d*PI/(l/q))/q ++A)*3.0+1.0;v=2;f=v/e;a,p,b=$s[s],$s[s+1],$s[s+v];r=a[q][V]*e+ +p[q][V]+a[q+1][V]+b[q][V]+a[q+v][V]+b[q+v/v][V]+p[q+v][V]+b[q+ +v][V]*f;g=[a[q][V],b[q][V],a[q+v][V],b[q+v][V]];h=(g.max-g.min +)*f;$s[s][q][V]=[[(r/(e+f+6.0)+A+(h*0.4)).to_i,255].min,V].max +}};File.open("res.ppm","w+"){|f|f.write(# secret.greetings :-) +"P3\n# res.ppm\n#{X} #{Y}\n255\n"+$s.map{|a|a.map{|b|b.join' ' +}.join(' ')+"\n"}.join)};end;def switch i,&b;b.call;return unless +defined?($m);b=(X*0.01).to_i;d=1.0/40.0;e=0.09;c=(Y*0.01).to_i +a=$a.map{|(f,g,h,j)|[f*d,g*e,h*d,j*e]};a.each{|(k,l,m,n)|u($s,(k*X +).to_i+b+i,(l*Y).to_i+c+i,(m*X).to_i+b+i,(n*Y).to_i+c+i,[Z]*3)} +a.each{|(o,q,r,s)|u($s,(o*(X-Z)).to_i+i,(q*(Y-Z)).to_i+i,(r*(X- +Z)).to_i+i,(s*(Y-Z)).to_i+i,[(1<<8)-1]*3)};end;Q=Object;class +Regexp;def []=(v,is);is.each{|s|Q.send(:remove_const,s)if Q. +const_defined? s;Q.const_set(s,v)};end;end;def int*ptr;666 +end;class O;def []=(a,b=nil);$c=a;end;end;alias:void:goto +#endif // pretend as if you havn't seen anything -- cgit v1.2.1