Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
05bc4af4
Kaydet (Commit)
05bc4af4
authored
Şub 21, 1997
tarafından
Guido van Rossum
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Lee's next version. Careful: this now dumps core for me on SGI IRIX 5.3.
Lee is wondering whether to withdraw his patchs. Sigh.
üst
ad183bbf
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
76 additions
and
118 deletions
+76
-118
fpetestmodule.c
Modules/fpetestmodule.c
+76
-118
No files found.
Modules/fpetestmodule.c
Dosyayı görüntüle @
05bc4af4
...
@@ -46,11 +46,12 @@
...
@@ -46,11 +46,12 @@
static
PyObject
*
fpe_error
;
static
PyObject
*
fpe_error
;
void
initfpetest
(
void
);
void
initfpetest
(
void
);
static
PyObject
*
test
(
PyObject
*
self
,
PyObject
*
args
);
static
PyObject
*
test
(
PyObject
*
self
,
PyObject
*
args
);
static
int
db0
(
void
);
static
double
db0
(
double
);
static
int
overflow
(
void
);
static
double
overflow
(
double
);
static
int
nest1
(
double
);
static
double
nest1
(
int
,
double
);
static
int
nest2
(
double
);
static
double
nest2
(
int
,
double
);
static
double
nest3
(
double
);
static
double
nest3
(
double
);
static
void
printerr
(
double
);
static
PyMethodDef
fpetest_methods
[]
=
{
static
PyMethodDef
fpetest_methods
[]
=
{
{
"test"
,
(
PyCFunction
)
test
,
1
},
{
"test"
,
(
PyCFunction
)
test
,
1
},
...
@@ -59,159 +60,116 @@ static PyMethodDef fpetest_methods[] = {
...
@@ -59,159 +60,116 @@ static PyMethodDef fpetest_methods[] = {
static
PyObject
*
test
(
PyObject
*
self
,
PyObject
*
args
)
static
PyObject
*
test
(
PyObject
*
self
,
PyObject
*
args
)
{
{
int
i
=
0
,
r
;
double
r
;
fprintf
(
stderr
,
"Test trapping overflow
\n
"
);
fprintf
(
stderr
,
"overflow"
);
r
=
overflow
();
r
=
overflow
(
1.e160
);
if
(
r
){
printerr
(
r
);
fprintf
(
stderr
,
"(Note: No exception was raised.)
\n
"
);
PyErr_Clear
();
}
else
{
fprintf
(
stderr
,
"Trapped:: "
);
PyErr_Print
();
PyErr_Clear
();
}
i
+=
r
;
fprintf
(
stderr
,
"Test trapping division by zero
\n
"
);
fprintf
(
stderr
,
"
\n
div by 0"
);
r
=
db0
();
r
=
db0
(
0
.
0
);
if
(
r
){
printerr
(
r
);
fprintf
(
stderr
,
"(Note: No exception was raised.)
\n
"
);
PyErr_Clear
();
}
else
{
fprintf
(
stderr
,
"Trapped:: "
);
PyErr_Print
();
PyErr_Clear
();
}
i
+=
r
;
fprintf
(
stderr
,
"Test nested protection zones, outer zone
\n
"
);
fprintf
(
stderr
,
"
\n
nested outer"
);
r
=
nest1
(
0
.
0
);
r
=
nest1
(
0
,
0
.
0
);
if
(
r
){
printerr
(
r
);
fprintf
(
stderr
,
"(Note: No exception was raised.)
\n
"
);
PyErr_Clear
();
}
else
{
fprintf
(
stderr
,
"Trapped:: "
);
PyErr_Print
();
PyErr_Clear
();
}
i
+=
r
;
fprintf
(
stderr
,
"Test nested protection zones, inner zone
\n
"
);
fprintf
(
stderr
,
"(Note: Return will apparently come from outer zone.)
\n
"
);
r
=
nest1
(
1
.
0
);
if
(
r
){
fprintf
(
stderr
,
"(Note: No exception was raised.)
\n
"
);
PyErr_Clear
();
}
else
{
fprintf
(
stderr
,
"Trapped:: "
);
PyErr_Print
();
PyErr_Clear
();
}
i
+=
r
;
fprintf
(
stderr
,
"Test nested protection zones, trailing outer zone
\n
"
);
fprintf
(
stderr
,
"
\n
nested inner"
);
r
=
nest1
(
2
.
0
);
r
=
nest1
(
1
,
1
.
0
);
if
(
r
){
printerr
(
r
);
fprintf
(
stderr
,
"(Note: No exception was raised.)
\n
"
);
PyErr_Clear
();
}
else
{
fprintf
(
stderr
,
"Trapped:: "
);
PyErr_Print
();
PyErr_Clear
();
}
i
+=
r
;
fprintf
(
stderr
,
"Test nested function calls, prior error
\n
"
);
fprintf
(
stderr
,
"
\n
trailing outer"
);
r
=
nest2
(
0
.
0
);
r
=
nest1
(
2
,
2
.
0
);
if
(
r
){
printerr
(
r
);
fprintf
(
stderr
,
"(Note: No exception was raised.)
\n
"
);
PyErr_Clear
();
}
else
{
fprintf
(
stderr
,
"Trapped:: "
);
PyErr_Print
();
PyErr_Clear
();
}
i
+=
r
;
fprintf
(
stderr
,
"Test nested function calls, interior error
\n
"
);
fprintf
(
stderr
,
"
\n
nested prior"
);
r
=
nest2
(
1
.
0
);
r
=
nest2
(
0
,
0
.
0
);
if
(
r
){
printerr
(
r
);
fprintf
(
stderr
,
"(Note: No exception was raised.)
\n
"
);
PyErr_Clear
();
}
else
{
fprintf
(
stderr
,
"Trapped:: "
);
PyErr_Print
();
PyErr_Clear
();
}
i
+=
r
;
fprintf
(
stderr
,
"Test nested function calls, trailing error
\n
"
);
fprintf
(
stderr
,
"
\n
nested interior"
);
r
=
nest2
(
2
.
0
);
r
=
nest2
(
1
,
1
.
0
);
if
(
r
){
printerr
(
r
);
fprintf
(
stderr
,
"(Note: No exception was raised.)
\n
"
);
PyErr_Clear
();
fprintf
(
stderr
,
"
\n
nested trailing"
);
}
else
{
r
=
nest2
(
2
,
2
.
0
);
fprintf
(
stderr
,
"Trapped:: "
);
printerr
(
r
);
PyErr_Print
();
PyErr_Clear
();
}
i
+=
r
;
fprintf
(
stderr
,
"Number of tests failed: %d
\n
"
,
i
);
Py_INCREF
(
Py_None
);
Py_INCREF
(
Py_None
);
return
Py_None
;
return
Py_None
;
}
}
static
int
nest1
(
double
x
)
static
void
printerr
(
double
r
)
{
if
(
r
==
3
.
1416
){
fprintf
(
stderr
,
"
\t
PASS
\n
"
);
PyErr_Print
();
}
else
{
fprintf
(
stderr
,
"
\t
FAIL
\n
"
);
}
PyErr_Clear
();
}
static
double
nest1
(
int
i
,
double
x
)
{
{
double
a
=
1
.
0
;
double
a
=
1
.
0
;
PyFPE_START_PROTECT
(
"Division by zero, outer zone"
,
return
0
)
a
=
1
.
/
x
;
PyFPE_START_PROTECT
(
"Division by zero, outer zone"
,
return
3
.
1416
)
PyFPE_START_PROTECT
(
"Division by zero, inner zone"
,
return
0
)
if
(
i
==
0
){
a
=
1
.
/
x
;
}
else
if
(
i
==
1
){
/* This (following) message is never seen. */
PyFPE_START_PROTECT
(
"Division by zero, inner zone"
,
return
3
.
1416
)
a
=
1
.
/
(
1
.
-
x
);
a
=
1
.
/
(
1
.
-
x
);
PyFPE_END_PROTECT
PyFPE_END_PROTECT
a
=
1
.
/
(
2
.
-
x
);
}
else
if
(
i
==
2
){
a
=
1
.
/
(
2
.
-
x
);
}
PyFPE_END_PROTECT
PyFPE_END_PROTECT
return
(
1
);
return
a
;
}
}
static
int
nest2
(
double
x
)
static
double
nest2
(
int
i
,
double
x
)
{
{
double
a
=
1
.
0
;
double
a
=
1
.
0
;
PyFPE_START_PROTECT
(
"Division by zero, prior error"
,
return
0
)
PyFPE_START_PROTECT
(
"Division by zero, prior error"
,
return
3
.
1416
)
a
=
1
.
/
x
;
if
(
i
==
0
){
a
=
nest3
(
x
);
a
=
1
.
/
x
;
a
=
1
.
/
(
2
.
-
x
);
}
else
if
(
i
==
1
){
a
=
nest3
(
x
);
}
else
if
(
i
==
2
){
a
=
1
.
/
(
2
.
-
x
);
}
PyFPE_END_PROTECT
PyFPE_END_PROTECT
return
(
1
)
;
return
a
;
}
}
static
double
nest3
(
double
x
)
static
double
nest3
(
double
x
)
{
{
double
result
;
double
result
;
PyFPE_START_PROTECT
(
"Division by zero, nest3 error"
,
return
0
)
/* This (following) message is never seen. */
PyFPE_START_PROTECT
(
"Division by zero, nest3 error"
,
return
3
.
1416
)
result
=
1
.
/
(
1
.
-
x
);
result
=
1
.
/
(
1
.
-
x
);
PyFPE_END_PROTECT
PyFPE_END_PROTECT
return
result
;
return
result
;
}
}
static
int
db0
(
void
)
static
double
db0
(
double
x
)
{
{
double
a
=
1
.
0
;
double
a
;
PyFPE_START_PROTECT
(
"Division by zero"
,
return
0
)
PyFPE_START_PROTECT
(
"Division by zero"
,
return
3
.
1416
)
a
=
1
.
/
(
a
-
1
.)
;
a
=
1
.
/
x
;
PyFPE_END_PROTECT
PyFPE_END_PROTECT
return
(
1
)
;
return
a
;
}
}
static
int
overflow
(
void
)
static
double
overflow
(
double
b
)
{
{
double
a
,
b
=
1.e200
;
double
a
;
PyFPE_START_PROTECT
(
"Overflow"
,
return
0
)
PyFPE_START_PROTECT
(
"Overflow"
,
return
3
.
1416
)
a
=
b
*
b
;
a
=
b
*
b
;
PyFPE_END_PROTECT
PyFPE_END_PROTECT
return
(
1
)
;
return
a
;
}
}
void
initfpetest
(
void
)
void
initfpetest
(
void
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment