Skip to content

Commit f1eb475

Browse files
committed
Add some floating-format print test cases
1 parent 492deec commit f1eb475

File tree

1 file changed

+341
-0
lines changed

1 file changed

+341
-0
lines changed

check/fixes.frm

Lines changed: 341 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3030,6 +3030,347 @@ EndTerm;
30303030
#require wordsize >= 4
30313031
assert succeeded?
30323032
*--#] Issue512_4 :
3033+
*--#[ Issue546 :
3034+
#-
3035+
Off statistics;
3036+
Symbol x,y;
3037+
3038+
Local test =
3039+
+ 1
3040+
+ 3*x
3041+
+ 3/4*x^2
3042+
+ (2^y-1)*x^3
3043+
+ (2^y)*x^4
3044+
+ 1/(2^y-1)*x^5
3045+
+ 1/(2^y)*x^6
3046+
+ 3/(2^y-1)*x^7
3047+
+ 3/(2^y)*x^8
3048+
+ (2^y)/(2^y-1)*x^9
3049+
+ (2^y-1)/(2^y)*x^10
3050+
+ (2^y)/(2^y+1)*x^11
3051+
;
3052+
.sort
3053+
Drop;
3054+
Local test31 = replace_(y,31)*test;
3055+
Local test32 = replace_(y,32)*test;
3056+
3057+
#message C
3058+
Format C;
3059+
Print +s;
3060+
.sort
3061+
#message Fortran
3062+
Format Fortran;
3063+
Print +s;
3064+
.sort
3065+
#message Doublefortran
3066+
Format Doublefortran;
3067+
Print +s;
3068+
.sort
3069+
#message Quadfortran
3070+
Format Quadfortran;
3071+
Print +s;
3072+
.sort
3073+
#message Fortran90
3074+
Format Fortran90;
3075+
Print +s;
3076+
.sort
3077+
#message Fortran90_ki
3078+
Format Fortran90,_ki;
3079+
Print +s;
3080+
.sort
3081+
#message Pfortran;
3082+
Format Pfortran;
3083+
Print +s;
3084+
.sort
3085+
#message Float
3086+
Format Float;
3087+
Print +s;
3088+
.sort
3089+
#message Normal
3090+
Format Normal;
3091+
Print +s;
3092+
.sort
3093+
.end
3094+
# 32bit FORM prints these differently: there a WORD is 16 bits so 2^31-1 etc
3095+
# all require multiple WORD to store, and so trigger a floating suffix.
3096+
#require wordsize >= 4
3097+
assert succeeded?
3098+
assert stdout =~ exact_pattern(<<'EOF')
3099+
~~~C
3100+
3101+
test31 =
3102+
+ 1
3103+
+ 3*x
3104+
+ 3./4.*pow(x,2)
3105+
+ 2147483647*pow(x,3)
3106+
+ 2147483648*pow(x,4)
3107+
+ 1./2147483647.*pow(x,5)
3108+
+ 1./2147483648.*pow(x,6)
3109+
+ 3./2147483647.*pow(x,7)
3110+
+ 3./2147483648.*pow(x,8)
3111+
+ 2147483648./2147483647.*pow(x,9)
3112+
+ 2147483647./2147483648.*pow(x,10)
3113+
+ 2147483648./2147483649.*pow(x,11)
3114+
;
3115+
3116+
test32 =
3117+
+ 1
3118+
+ 3*x
3119+
+ 3./4.*pow(x,2)
3120+
+ 4294967295*pow(x,3)
3121+
+ 4294967296.*pow(x,4)
3122+
+ 1./4294967295.*pow(x,5)
3123+
+ 1./4294967296.*pow(x,6)
3124+
+ 1./1431655765.*pow(x,7)
3125+
+ 3./4294967296.*pow(x,8)
3126+
+ 4294967296./4294967295.*pow(x,9)
3127+
+ 4294967295./4294967296.*pow(x,10)
3128+
+ 4294967296./4294967297.*pow(x,11)
3129+
;
3130+
3131+
~~~Fortran
3132+
3133+
test31 = + 1
3134+
& + 3*x
3135+
& + 3./4.*x**2
3136+
& + 2147483647*x**3
3137+
& + 2147483648.*x**4
3138+
& + 1./2147483647.*x**5
3139+
& + 1./2147483648.*x**6
3140+
& + 3./2147483647.*x**7
3141+
& + 3./2147483648.*x**8
3142+
& + 2147483648./2147483647.*x**9
3143+
& + 2147483647./2147483648.*x**10
3144+
& + 2147483648./2147483649.*x**11
3145+
&
3146+
3147+
test32 = + 1
3148+
& + 3*x
3149+
& + 3./4.*x**2
3150+
& + 4294967295.*x**3
3151+
& + 4294967296.*x**4
3152+
& + 1./4294967295.*x**5
3153+
& + 1./4294967296.*x**6
3154+
& + 1./1431655765.*x**7
3155+
& + 3./4294967296.*x**8
3156+
& + 4294967296./4294967295.*x**9
3157+
& + 4294967295./4294967296.*x**10
3158+
& + 4294967296./4294967297.*x**11
3159+
&
3160+
3161+
~~~Doublefortran
3162+
3163+
test31 = + 1
3164+
& + 3*x
3165+
& + 3.D0/4.D0*x**2
3166+
& + 2147483647*x**3
3167+
& + 2147483648.D0*x**4
3168+
& + 1.D0/2147483647.D0*x**5
3169+
& + 1.D0/2147483648.D0*x**6
3170+
& + 3.D0/2147483647.D0*x**7
3171+
& + 3.D0/2147483648.D0*x**8
3172+
& + 2147483648.D0/2147483647.D0*x**9
3173+
& + 2147483647.D0/2147483648.D0*x**10
3174+
& + 2147483648.D0/2147483649.D0*x**11
3175+
&
3176+
3177+
test32 = + 1
3178+
& + 3*x
3179+
& + 3.D0/4.D0*x**2
3180+
& + 4294967295.D0*x**3
3181+
& + 4294967296.D0*x**4
3182+
& + 1.D0/4294967295.D0*x**5
3183+
& + 1.D0/4294967296.D0*x**6
3184+
& + 1.D0/1431655765.D0*x**7
3185+
& + 3.D0/4294967296.D0*x**8
3186+
& + 4294967296.D0/4294967295.D0*x**9
3187+
& + 4294967295.D0/4294967296.D0*x**10
3188+
& + 4294967296.D0/4294967297.D0*x**11
3189+
&
3190+
3191+
~~~Quadfortran
3192+
3193+
test31 = + 1
3194+
& + 3*x
3195+
& + 3.Q0/4.Q0*x**2
3196+
& + 2147483647*x**3
3197+
& + 2147483648.Q0*x**4
3198+
& + 1.Q0/2147483647.Q0*x**5
3199+
& + 1.Q0/2147483648.Q0*x**6
3200+
& + 3.Q0/2147483647.Q0*x**7
3201+
& + 3.Q0/2147483648.Q0*x**8
3202+
& + 2147483648.Q0/2147483647.Q0*x**9
3203+
& + 2147483647.Q0/2147483648.Q0*x**10
3204+
& + 2147483648.Q0/2147483649.Q0*x**11
3205+
&
3206+
3207+
test32 = + 1
3208+
& + 3*x
3209+
& + 3.Q0/4.Q0*x**2
3210+
& + 4294967295.Q0*x**3
3211+
& + 4294967296.Q0*x**4
3212+
& + 1.Q0/4294967295.Q0*x**5
3213+
& + 1.Q0/4294967296.Q0*x**6
3214+
& + 1.Q0/1431655765.Q0*x**7
3215+
& + 3.Q0/4294967296.Q0*x**8
3216+
& + 4294967296.Q0/4294967295.Q0*x**9
3217+
& + 4294967295.Q0/4294967296.Q0*x**10
3218+
& + 4294967296.Q0/4294967297.Q0*x**11
3219+
&
3220+
3221+
~~~Fortran90
3222+
3223+
test31 = + 1
3224+
& + 3*x
3225+
& + 3./4.*x**2
3226+
& + 2147483647*x**3
3227+
& + 2147483648.*x**4
3228+
& + 1./2147483647.*x**5
3229+
& + 1./2147483648.*x**6
3230+
& + 3./2147483647.*x**7
3231+
& + 3./2147483648.*x**8
3232+
& + 2147483648./2147483647.*x**9
3233+
& + 2147483647./2147483648.*x**10
3234+
& + 2147483648./2147483649.*x**11
3235+
&
3236+
3237+
test32 = + 1
3238+
& + 3*x
3239+
& + 3./4.*x**2
3240+
& + 4294967295.*x**3
3241+
& + 4294967296.*x**4
3242+
& + 1./4294967295.*x**5
3243+
& + 1./4294967296.*x**6
3244+
& + 1./1431655765.*x**7
3245+
& + 3./4294967296.*x**8
3246+
& + 4294967296./4294967295.*x**9
3247+
& + 4294967295./4294967296.*x**10
3248+
& + 4294967296./4294967297.*x**11
3249+
&
3250+
3251+
~~~Fortran90_ki
3252+
3253+
test31 = + 1_ki
3254+
& + 3_ki*x
3255+
& + 3_ki/4_ki*x**2
3256+
& + 2147483647_ki*x**3
3257+
& + 2147483648_ki*x**4
3258+
& + 1_ki/2147483647_ki*x**5
3259+
& + 1_ki/2147483648_ki*x**6
3260+
& + 3_ki/2147483647_ki*x**7
3261+
& + 3_ki/2147483648_ki*x**8
3262+
& + 2147483648_ki/2147483647_ki*x**9
3263+
& + 2147483647_ki/2147483648_ki*x**10
3264+
& + 2147483648_ki/2147483649_ki*x**11
3265+
&
3266+
3267+
test32 = + 1_ki
3268+
& + 3_ki*x
3269+
& + 3_ki/4_ki*x**2
3270+
& + 4294967295_ki*x**3
3271+
& + 4294967296_ki*x**4
3272+
& + 1_ki/4294967295_ki*x**5
3273+
& + 1_ki/4294967296_ki*x**6
3274+
& + 1_ki/1431655765_ki*x**7
3275+
& + 3_ki/4294967296_ki*x**8
3276+
& + 4294967296_ki/4294967295_ki*x**9
3277+
& + 4294967295_ki/4294967296_ki*x**10
3278+
& + 4294967296_ki/4294967297_ki*x**11
3279+
&
3280+
3281+
~~~Pfortran
3282+
3283+
test31 = + one
3284+
& + 3*x
3285+
& + ((one*3)/4)*x**2
3286+
& + 2147483647*x**3
3287+
& + 2147483648.D0*x**4
3288+
& + (one/2147483647)*x**5
3289+
& + (one/2147483648.D0)*x**6
3290+
& + ((one*3)/2147483647)*x**7
3291+
& + ((one*3)/2147483648.D0)*x**8
3292+
& + ((one*2147483648.D0)/2147483647)*x**9
3293+
& + ((one*2147483647)/2147483648.D0)*x**10
3294+
& + ((one*2147483648.D0)/2147483649.D0)*x**11
3295+
&
3296+
3297+
test32 = + one
3298+
& + 3*x
3299+
& + ((one*3)/4)*x**2
3300+
& + 4294967295.D0*x**3
3301+
& + 4294967296.D0*x**4
3302+
& + (one/4294967295.D0)*x**5
3303+
& + (one/4294967296.D0)*x**6
3304+
& + (one/1431655765)*x**7
3305+
& + ((one*3)/4294967296.D0)*x**8
3306+
& + ((one*4294967296.D0)/4294967295.D0)*x**9
3307+
& + ((one*4294967295.D0)/4294967296.D0)*x**10
3308+
& + ((one*4294967296.D0)/4294967297.D0)*x**11
3309+
&
3310+
3311+
~~~Float
3312+
3313+
test31 = + 1.E+0
3314+
& + 3.E+0*x
3315+
& + 7.5E-1*x**2
3316+
& + 2.147483647E+9*x**3
3317+
& + 2.147483648E+9*x**4
3318+
& + 4.656612875E-10*x**5
3319+
& + 4.656612873E-10*x**6
3320+
& + 1.396983862E-9*x**7
3321+
& + 1.396983861E-9*x**8
3322+
& + 1.000000000E+0*x**9
3323+
& + 9.999999995E-1*x**10
3324+
& + 9.999999995E-1*x**11
3325+
&
3326+
3327+
test32 = + 1.E+0
3328+
& + 3.E+0*x
3329+
& + 7.5E-1*x**2
3330+
& + 4.294967295E+9*x**3
3331+
& + 4.294967296E+9*x**4
3332+
& + 2.328306437E-10*x**5
3333+
& + 2.328306436E-10*x**6
3334+
& + 6.984919311E-10*x**7
3335+
& + 6.984919309E-10*x**8
3336+
& + 1.000000000E+0*x**9
3337+
& + 9.999999997E-1*x**10
3338+
& + 9.999999997E-1*x**11
3339+
&
3340+
3341+
~~~Normal
3342+
3343+
test31 =
3344+
+ 1
3345+
+ 3*x
3346+
+ 3/4*x^2
3347+
+ 2147483647*x^3
3348+
+ 2147483648*x^4
3349+
+ 1/2147483647*x^5
3350+
+ 1/2147483648*x^6
3351+
+ 3/2147483647*x^7
3352+
+ 3/2147483648*x^8
3353+
+ 2147483648/2147483647*x^9
3354+
+ 2147483647/2147483648*x^10
3355+
+ 2147483648/2147483649*x^11
3356+
;
3357+
3358+
test32 =
3359+
+ 1
3360+
+ 3*x
3361+
+ 3/4*x^2
3362+
+ 4294967295*x^3
3363+
+ 4294967296*x^4
3364+
+ 1/4294967295*x^5
3365+
+ 1/4294967296*x^6
3366+
+ 1/1431655765*x^7
3367+
+ 3/4294967296*x^8
3368+
+ 4294967296/4294967295*x^9
3369+
+ 4294967295/4294967296*x^10
3370+
+ 4294967296/4294967297*x^11
3371+
;
3372+
EOF
3373+
*--#] Issue546 :
30333374
*--#[ Issue525 :
30343375
#:threadbucketsize 5
30353376
#:processbucketsize 5

0 commit comments

Comments
 (0)