Proyectos de Subversion Moodle

Rev

Rev 11 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 11 Rev 1441
Línea 27... Línea 27...
27
 * @coversDefaultClass \graph
27
 * @coversDefaultClass \graph
28
 * @package    core
28
 * @package    core
29
 * @copyright  2023 Meirza (meirza.arson@moodle.com)
29
 * @copyright  2023 Meirza (meirza.arson@moodle.com)
30
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
30
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
31
 */
31
 */
32
class graphlib_test extends \basic_testcase {
32
final class graphlib_test extends \basic_testcase {
Línea 33... Línea 33...
33
 
33
 
34
    /**
34
    /**
35
     * Data provider for test_graphlib.
35
     * Data provider for test_graphlib.
36
     *
36
     *
37
     * @return array
37
     * @return array
38
     */
38
     */
39
    public function create_data(): array {
39
    public static function create_data(): array {
40
        return [
40
        return [
41
            'data' =>
41
            'data' =>
42
            [
42
            [
43
                'mock' => [
43
                'mock' => [
44
                    'survey_name' => 'Survey 101',
44
                    'survey_name' => 'Survey 101',
-
 
45
                    'names' => [
45
                    'names' => [
46
                        'Relevance',
-
 
47
                        'Reflective thinking',
-
 
48
                        'Interactivity',
-
 
49
                        'Tutor support',
-
 
50
                        'Peer support',
46
                        'Relevance', 'Reflective thinking', 'Interactivity', 'Tutor support', 'Peer support', 'Interpretation'
51
                        'Interpretation',
47
                    ],
52
                    ],
48
                    'buckets1' => [
53
                    'buckets1' => [
-
 
54
                        0.75,
-
 
55
                        2.5,
-
 
56
                        1.5,
-
 
57
                        1.5,
-
 
58
                        2.5,
49
                        0.75, 2.5, 1.5, 1.5, 2.5, 2.5
59
                        2.5,
50
                    ],
60
                    ],
51
                    'stractual' => 'Actual',
61
                    'stractual' => 'Actual',
-
 
62
                    'buckets2' => [
-
 
63
                        -1,
-
 
64
                        -1,
52
                    'buckets2' => [
65
                        -1,
-
 
66
                        -1,
-
 
67
                        -1,
53
                        -1, -1, -1, -1, -1, -1
68
                        -1,
54
                    ],
69
                    ],
-
 
70
                    'strpreferred' => 'Preferred',
-
 
71
                    'strimagine' => 'Imagine',
-
 
72
                    'buckets3' => [
-
 
73
                        1,
-
 
74
                        2.75,
-
 
75
                        0.5,
-
 
76
                        3.5,
-
 
77
                        1.25,
-
 
78
                        3,
55
                    'strpreferred' => 'Preferred',
79
                    ],
56
                    'stdev1' => [
80
                    'stdev1' => [
-
 
81
                        0.82915619758885,
-
 
82
                        1.1180339887499,
-
 
83
                        1.1180339887499,
-
 
84
                        1.1180339887499,
-
 
85
                        1.1180339887499,
57
                        0.82915619758885, 1.1180339887499, 1.1180339887499, 1.1180339887499, 1.1180339887499, 1.1180339887499
86
                        1.1180339887499,
58
                    ],
87
                    ],
-
 
88
                    'stdev2' => [
-
 
89
                        0,
-
 
90
                        0,
-
 
91
                        0,
-
 
92
                        0,
-
 
93
                        0,
-
 
94
                        0,
-
 
95
                    ],
59
                    'stdev2' => [
96
                    'stdev3' => [
-
 
97
                        0.92915619758885,
-
 
98
                        2.1180339887499,
-
 
99
                        2.1180339887499,
-
 
100
                        2.1180339887499,
-
 
101
                        2.1180339887499,
60
                        0, 0, 0, 0, 0, 0
102
                        2.1180339887499,
61
                    ],
103
                    ],
62
                    'options' => [
104
                    'options' => [
-
 
105
                        'Almost never',
-
 
106
                        'Seldom',
-
 
107
                        'Sometimes',
-
 
108
                        'Often',
63
                        'Almost never', 'Seldom', 'Sometimes', 'Often', 'Almost always'
109
                        'Almost always',
64
                    ],
110
                    ],
65
                    'maxbuckets1' => 2.5,
111
                    'maxbuckets1' => 2.5,
-
 
112
                    'maxbuckets2' => -1,
66
                    'maxbuckets2' => -1
113
                    'maxbuckets3' => 3.5,
67
                ]
114
                ]
68
            ]
115
            ]
69
        ];
116
        ];
Línea 79... Línea 126...
79
     */
126
     */
80
    public function test_graphlib($mock): void {
127
    public function test_graphlib($mock): void {
81
        $graph = new \graph(300, 200);
128
        $graph = new \graph(300, 200);
82
        ob_start();
129
        ob_start();
83
        $graph->parameter['title'] = strip_tags(format_string($mock['survey_name'], true));
130
        $graph->parameter['title'] = strip_tags(format_string($mock['survey_name'], true));
-
 
131
        $graph->parameter['zero_axis'] = 'black';
84
        $graph->x_data = $mock['names'];
132
        $graph->x_data = $mock['names'];
85
        $graph->y_data['answers1'] = $mock['buckets1'];
133
        $graph->y_data['answers1'] = $mock['buckets1'];
86
        $graph->y_format['answers1'] = array('colour' => 'ltblue', 'line' => 'line', 'point' => 'square',
134
        $graph->y_format['answers1'] = [
-
 
135
            'colour' => 'ltblue',
-
 
136
            'line' => 'line',
-
 
137
            'point' => 'square',
-
 
138
            'shadow_offset' => 4,
87
                'shadow_offset' => 4, 'legend' => $mock['stractual']);
139
            'legend' => $mock['stractual'],
-
 
140
        ];
88
        $graph->y_data['answers2'] = $mock['buckets2'];
141
        $graph->y_data['answers2'] = $mock['buckets2'];
89
        $graph->y_format['answers2'] = array('colour' => 'ltorange', 'line' => 'line', 'point' => 'square',
142
        $graph->y_format['answers2'] = [
-
 
143
            'colour' => 'ltorange',
-
 
144
            'line' => 'line',
-
 
145
            'point' => 'square',
-
 
146
            'shadow_offset' => 4,
90
                'shadow_offset' => 4, 'legend' => $mock['strpreferred']);
147
            'legend' => $mock['strpreferred'],
-
 
148
        ];
-
 
149
        $graph->y_data['answers3'] = $mock['buckets3'];
-
 
150
        $graph->y_format['answers3'] = [
-
 
151
            'colour' => 'ltred',
-
 
152
            'line' => 'brush',
-
 
153
            'point' => 'square',
-
 
154
            'shadow_offset' => 4,
-
 
155
            'legend' => $mock['stractual'],
-
 
156
        ];
91
        $graph->y_data['stdev1'] = $mock['stdev1'];
157
        $graph->y_data['stdev1'] = $mock['stdev1'];
92
        $graph->y_format['stdev1'] = array('colour' => 'ltltblue', 'bar' => 'fill',
158
        $graph->y_format['stdev1'] = [
-
 
159
            'colour' => 'ltltblue',
-
 
160
            'bar' => 'fill',
93
                'shadow_offset' => '4', 'legend' => 'none', 'bar_size' => 0.3);
161
            'shadow_offset' => '4',
-
 
162
            'legend' => 'none',
-
 
163
            'bar_size' => 0.3,
-
 
164
        ];
94
        $graph->y_data['stdev2'] = $mock['stdev2'];
165
        $graph->y_data['stdev2'] = $mock['stdev2'];
-
 
166
        $graph->y_format['stdev2'] = [
-
 
167
            'colour' => 'ltltorange',
-
 
168
            'bar' => 'fill',
-
 
169
            'shadow_offset' => '4',
-
 
170
            'legend' => 'none',
-
 
171
            'bar_size' => 0.2,
-
 
172
        ];
95
        $graph->y_format['stdev2'] = array('colour' => 'ltltorange', 'bar' => 'fill',
173
        $graph->y_data['stdev3'] = $mock['stdev3'];
-
 
174
        $graph->y_format['stdev3'] = [
-
 
175
            'colour' => 'ltred',
-
 
176
            'bar' => 'fill',
96
                'shadow_offset' => '4', 'legend' => 'none', 'bar_size' => 0.2);
177
            'shadow_offset' => '4',
-
 
178
            'legend' => 'none',
-
 
179
            'bar_size' => 0.2,
-
 
180
        ];
97
        $graph->offset_relation['stdev1'] = 'answers1';
181
        $graph->offset_relation['stdev1'] = 'answers1';
98
        $graph->offset_relation['stdev2'] = 'answers2';
182
        $graph->offset_relation['stdev2'] = 'answers2';
-
 
183
        $graph->offset_relation['stdev3'] = 'answers3';
99
        $graph->parameter['legend'] = 'outside-top';
184
        $graph->parameter['legend'] = 'outside-top';
100
        $graph->parameter['legend_border'] = 'black';
185
        $graph->parameter['legend_border'] = 'black';
101
        $graph->parameter['legend_offset'] = 4;
186
        $graph->parameter['legend_offset'] = 4;
102
        $graph->y_tick_labels = $mock['options'];
187
        $graph->y_tick_labels = $mock['options'];
103
        if (($mock['maxbuckets1'] > 0.0) && ($mock['maxbuckets2'] > 0.0)) {
188
        if (($mock['maxbuckets1'] > 0.0) && ($mock['maxbuckets2'] > 0.0) && ($mock['maxbuckets3'] > 0.0)) {
104
            $graph->y_order = array('stdev1', 'answers1', 'stdev2', 'answers2');
189
            $graph->y_order = [
-
 
190
                'stdev1',
-
 
191
                'answers1',
-
 
192
                'stdev2',
-
 
193
                'answers2',
-
 
194
                'stdev3',
-
 
195
                'answers3',
-
 
196
            ];
105
        } else if ($mock['maxbuckets1'] > 0.0) {
197
        } else if ($mock['maxbuckets1'] > 0.0) {
-
 
198
            $graph->y_order = [
-
 
199
                'stdev1',
-
 
200
                'answers1',
-
 
201
            ];
-
 
202
        } else if ($mock['maxbuckets2'] > 0.0) {
106
            $graph->y_order = array('stdev1', 'answers1');
203
            $graph->y_order = [
-
 
204
                'stdev2',
-
 
205
                'answers2',
-
 
206
            ];
107
        } else {
207
        } else {
108
            $graph->y_order = array('stdev2', 'answers2');
208
            $graph->y_order = [
-
 
209
                'stdev3',
-
 
210
                'answers3',
-
 
211
            ];
109
        }
212
        }
110
        $graph->parameter['y_max_left'] = 4;
213
        $graph->parameter['y_max_left'] = 4;
111
        $graph->parameter['y_axis_gridlines'] = 5;
214
        $graph->parameter['y_axis_gridlines'] = 5;
112
        $graph->parameter['y_resolution_left'] = 1;
215
        $graph->parameter['y_resolution_left'] = 1;
113
        $graph->parameter['y_decimal_left'] = 1;
216
        $graph->parameter['y_decimal_left'] = 1;