My Project
Loading...
Searching...
No Matches
Singular
dyn_modules
machinelearning
tests
test_init_ml.c
Go to the documentation of this file.
1
#include <stdio.h>
2
#include <stdlib.h>
3
#include "
kernel/mod2.h
"
4
#if defined(HAVE_READLINE) && defined(HAVE_READLINE_READLINE_H)
5
#ifdef HAVE_PYTHON
6
#include <Python.h>
7
#include "
mlpredict.h
"
8
9
10
/* this is found as an internal function in mlpredict.c, for use in testing */
11
ml_internal
*
_get_internals
();
12
13
int
test_ml_is_initialised
();
14
void
remove_dictionary
();
15
void
remove_vectors
();
16
void
remove_file_list
();
17
18
void
remove_dictionary
()
19
{
20
ml_internal
*
internal_obs
=
NULL
;
21
/* get internal datastructures */
22
internal_obs
=
_get_internals
();
23
24
printf
(
"Removing pDictionary\n"
);
25
Py_DECREF
(
internal_obs
->pDictionary);
26
internal_obs
->pDictionary =
NULL
;
27
28
return
;
29
}
30
31
void
remove_vectors
()
32
{
33
ml_internal
*
internal_obs
=
NULL
;
34
/* get internal datastructures */
35
internal_obs
=
_get_internals
();
36
37
printf
(
"Removing pVectors\n"
);
38
Py_DECREF
(
internal_obs
->pVectors);
39
internal_obs
->pVectors =
NULL
;
40
}
41
42
void
remove_file_list
()
43
{
44
ml_internal
*
internal_obs
=
NULL
;
45
/* get internal datastructures */
46
internal_obs
=
_get_internals
();
47
48
printf
(
"Removing pFile_list\n"
);
49
Py_DECREF
(
internal_obs
->pFile_list);
50
internal_obs
->pFile_list =
NULL
;
51
}
52
53
int
test_ml_is_initialised
()
54
{
55
int
i
;
56
57
ml_initialise
();
58
59
i
=
ml_is_initialised
();
60
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
61
if
(
i
!= 1)
62
{
63
printf
(
"Cannot test - initialization failed\n"
);
64
return
0;
65
}
66
67
remove_dictionary
();
68
69
i
=
ml_is_initialised
();
70
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
71
if
(
i
!= 0)
return
1;
72
73
i
=
ml_initialise
();
74
printf
(
"Returnvalue for ml_initialise: \t\t%d\n"
,
i
);
75
if
(
i
!= 1)
return
1;
76
77
i
=
ml_is_initialised
();
78
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
79
if
(
i
!= 1)
return
1;
80
81
remove_vectors
();
82
83
i
=
ml_is_initialised
();
84
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
85
if
(
i
!= 0)
return
1;
86
87
i
=
ml_initialise
();
88
printf
(
"Returnvalue for ml_initialise: \t\t%d\n"
,
i
);
89
if
(
i
!= 1)
return
1;
90
91
i
=
ml_is_initialised
();
92
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
93
if
(
i
!= 1)
return
1;
94
95
remove_file_list
();
96
97
i
=
ml_is_initialised
();
98
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
99
if
(
i
!= 0)
return
1;
100
101
i
=
ml_initialise
();
102
printf
(
"Returnvalue for ml_initialise: \t\t%d\n"
,
i
);
103
if
(
i
!= 1)
return
1;
104
105
i
=
ml_is_initialised
();
106
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
107
if
(
i
!= 1)
return
1;
108
109
return
0;
110
}
111
112
113
int
main
(
int
argc,
char
*
argv
[])
114
{
115
int
i
= 0;
116
117
if
(argc != 1) {
118
printf
(
"Usage: %s\n"
,
argv
[0]);
119
return
1;
120
}
121
122
/* initially should not be initialised */
123
i
=
ml_is_initialised
();
124
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
125
if
(
i
!= 1)
126
{
127
printf
(
"Cannot test - initialization failed\n"
);
128
return
0;
129
}
130
131
/* check that python script says it's not initialised */
132
Py_Initialize
();
133
i
=
ml_is_initialised
();
134
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
135
if
(
i
!= 0)
return
1;
136
137
i
=
ml_initialise
();
138
printf
(
"Returnvalue for ml_initialise: \t\t%d\n"
,
i
);
139
if
(
i
!= 1)
return
1;
140
141
/* Should now be initialised */
142
i
=
ml_is_initialised
();
143
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
144
if
(
i
!= 1)
return
1;
145
146
if
(
test_ml_is_initialised
())
return
1;
147
148
i
=
ml_finalise
();
149
printf
(
"Returnvalue for ml_finalise: \t\t%d\n"
,
i
);
150
if
(
i
!= 1)
return
1;
151
152
i
=
ml_is_initialised
();
153
printf
(
"Returnvalue for ml_is_initialised: \t%d\n"
,
i
);
154
if
(
i
!= 0)
return
1;
155
156
return
0;
157
}
158
#else
/*!HAVE_PYTHON*/
159
int
main
(
int
argc,
char
*
argv
[])
160
{
161
return
0;
162
}
163
#endif
164
#else
/*!HAVE_READLINE*/
165
int
main
(
int
argc,
char
*
argv
[])
166
{
167
return
0;
168
}
169
#endif
i
int i
Definition
cfEzgcd.cc:132
List
Definition
ftmpl_list.h:52
mlpredict.h
Function definitions for using python to do machine learning in Singular.
mod2.h
NULL
#define NULL
Definition
omList.c:12
main
int main()
Definition
p_Procs_Generate.cc:227
Generated on Wed Mar 13 2024 00:00:00 for My Project by
doxygen 1.10.0
for
Singular