diff --git a/doc/en/Authoring/GeoGebra.md b/doc/en/Authoring/GeoGebra.md index 9ee9378b54cd53dcb4751bead2b9df645620c730..323300ff0f3aa657d0414161ba51dbc9ca5b2576 100644 --- a/doc/en/Authoring/GeoGebra.md +++ b/doc/en/Authoring/GeoGebra.md @@ -66,7 +66,7 @@ By default points are free to manipulate in the applet, unless you add `__fixed` Notes 1. No checking is done that the object in STACK matches one in GeoGebra. If it does not exist it will be created by GeoGebra. -2. Currently setting points and values are the only supported objects. Users can set objects, e.g. you could define `g:x^3` and set this in an appletm +2. Currently setting points and values are the only supported objects. Users can set objects, e.g. you could define `g:x^3` and set this in an applet. 3. Angles cannot be set directly, set points instead! @@ -126,7 +126,7 @@ Recall that since the object in `watch="A"` is written in upper case it must be Then complete the question as follows. -1. The question expects an in input `A`. In this input, make the model answer `ta1`. This is a list, and has a different name from the watched point.. +1. The question expects an input `A`. In this input, make the model answer `ta1`. This is a list, and has a different name from the watched point.. 2. Make sure you set "forbid floats" option in the input to be false, if you want to! 3. Complete the default potential response tree `prt1` as `ATAlgEquiv(ntupleify(A), ntupleify(ta1))` diff --git a/doc/en/Authoring/Testing.md b/doc/en/Authoring/Testing.md index 6cbd567106fa8627e591b5afc35a711bfa38cffd..90a7c2a20ae6b9c7d63f1a96aa7e4a2d492d31d1 100644 --- a/doc/en/Authoring/Testing.md +++ b/doc/en/Authoring/Testing.md @@ -50,7 +50,7 @@ In this way, the teacher can record, within the question itself, how they expect On the question testing page is a "Send to CAS" button. Pressing this sends the question variables and general feedback to a special page which enables more efficient authoring of the feedback in the context of the values of the variables. You still need to copy this by hand into the question edit form when you are satisfied. -A Moodle administrator can run all of the questions tests within a particular course, or across the whole site by following the links on the STACK admin page. It is useful do to this after upgrading the STACK code on the server to identify any test cases which have changed. +A Moodle administrator can run all of the questions tests within a particular course, or across the whole site by following the links on the STACK admin page. It is useful to do this after upgrading the STACK code on the server to identify any test cases which have changed. Test cases can include a meaningful description of up to 255 characters. This field is a simple string, and is not castext. diff --git a/doc/en/CAS/Matrix.md b/doc/en/CAS/Matrix.md index 0b2e67e0412844f8eb0b8223e9ba4ce1b39f3732..763c6d5d14665d387b1f716f2a26ea17c63d306d 100644 --- a/doc/en/CAS/Matrix.md +++ b/doc/en/CAS/Matrix.md @@ -98,7 +98,7 @@ Note, STACK only displays matrices with matching parentheses. If you want somet \[ f(x) = \left\{ \begin{array}{cc} 1, & x<0 \\ 0, & x\geq 0 \end{array}\right.\] then you will have to display the matrix without parentheses and sort out the mismatching parentheses in the CASText at the level of display. -For example, if we have the question variable `f:matrix([4*x+4, x<1],[-x^2-4*x-8, x>=1];` and the castext `\[ f(x) := \left\{ {@(lmxchar:"", f)@} \right. \]` the STACK generates +For example, if we have the question variable `f:matrix([4*x+4, x<1],[-x^2-4*x-8, x>=1];` and the castext `\[ f(x) := \left\{ {@(lmxchar:"", f)@} \right. \]` STACK generates \[ f(x) := \left\{ {\begin{array}{cc} 4\cdot x+4 & x < 1 \\ -x^2-4\cdot x-8 & x\geq 1 \end{array}} \right. \] Notice the use of LaTeX `\left\{` to automatically size the parentheses and `\right.` to represent a matching, but invisible closing parentesis. diff --git a/doc/en/Developer/index.md b/doc/en/Developer/index.md index d488ff9bae492783125855b15809acca5436775b..ad3a091488ec7de458742058adc693db4ce9c9f9 100644 --- a/doc/en/Developer/index.md +++ b/doc/en/Developer/index.md @@ -18,7 +18,7 @@ If you want to track the development of STACK or report bugs then you should vis Work towards the next release of STACK is detailed on [Development track](Development_track.md). -Plans looking futher into the future are described on [Future plans](Future_plans.md). +Plans looking further into the future are described on [Future plans](Future_plans.md). The past development history is documented on [Development history](Development_history.md). @@ -32,4 +32,4 @@ There is information on [clearing the cache](Question_state_caching.md). You can also read on [adding support for Maxima packages](Maxima_packages.md). -You can read about the design of the [PHP interface to the CAS](PHP-CAS.md). \ No newline at end of file +You can read about the design of the [PHP interface to the CAS](PHP-CAS.md). diff --git a/tests/api_tests_stateful.test.php b/tests/api_tests_stateful_test.php similarity index 91% rename from tests/api_tests_stateful.test.php rename to tests/api_tests_stateful_test.php index c0fd700500eb0518eaeda79189715ca9267f81dd..2f4d24226c2c2961d2cf4e7fead3b7bfe20c22b4 100644 --- a/tests/api_tests_stateful.test.php +++ b/tests/api_tests_stateful_test.php @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Stateful. If not, see <http://www.gnu.org/licenses/>. +namespace qtype_stack; + defined('MOODLE_INTERNAL') || die(); // Unit tests to check that the requirements of a related software @@ -49,7 +51,7 @@ require_once(__DIR__ . '/../stack/cas/evaluatable_object.interfaces.php'); * @group qtype_stateful * @group qtype_stack_compatibility */ -class api_tests_stateful_test extends qtype_stack_testcase { +class api_tests_stateful_test extends \qtype_stack_testcase { public function test_security_map_path() { $this->assertTrue(file_exists(__DIR__ . '/../stack/cas/security-map.json')); @@ -93,20 +95,20 @@ class api_tests_stateful_test extends qtype_stack_testcase { $this->assertTrue(method_exists('stack_utils', 'eliminate_strings')); $this->assertTrue(method_exists('stack_utils', 'list_to_array')); - $this->assertTrue(isset(stack_utils::get_config()->stackmaximaversion)); - $this->assertEquals('"\"foo"', stack_utils::php_string_to_maxima_string('"foo')); - $this->assertEquals('"foo', stack_utils::maxima_string_to_php_string('"\"foo"')); - $this->assertEquals('["","",1+""]', stack_utils::eliminate_strings('["foo","bar",1+"baz"]')); - $this->assertEquals(["foo", "bar", "baz"], stack_utils::all_substring_strings('["foo","bar",1+"baz"]')); + $this->assertTrue(isset(\stack_utils::get_config()->stackmaximaversion)); + $this->assertEquals('"\"foo"', \stack_utils::php_string_to_maxima_string('"foo')); + $this->assertEquals('"foo', \stack_utils::maxima_string_to_php_string('"\"foo"')); + $this->assertEquals('["","",1+""]', \stack_utils::eliminate_strings('["foo","bar",1+"baz"]')); + $this->assertEquals(["foo", "bar", "baz"], \stack_utils::all_substring_strings('["foo","bar",1+"baz"]')); } public function test_maxima_parser_utils() { $this->assertTrue(method_exists('maxima_parser_utils', 'parse')); $this->assertTrue(method_exists('maxima_parser_utils', 'variable_usage_finder')); - $ast = maxima_parser_utils::parse('x:y+sqrt(y)'); + $ast = \maxima_parser_utils::parse('x:y+sqrt(y)'); $update = ['read' => ['z' => true]]; - $usage = maxima_parser_utils::variable_usage_finder($ast, $update); + $usage = \maxima_parser_utils::variable_usage_finder($ast, $update); $this->assertEquals(['z' => true, 'y' => true], $usage['read']); $this->assertEquals(['x' => true], $usage['write']); $this->assertEquals(['sqrt' => true], $usage['calls']); diff --git a/tests/editform_test.php b/tests/editform_test.php index b5f03f6b1e022959e0f426bded85bef50092e977..39b71a461e426dd45d2ce2a0a6f12a9b150d9aca 100644 --- a/tests/editform_test.php +++ b/tests/editform_test.php @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Moodle. If not, see <http://www.gnu.org/licenses/>. +namespace qtype_stack; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -29,22 +31,22 @@ require_once(__DIR__ . '/../edit_stack_form.php'); * @group qtype_stack * @covers \qtype_stack_edit_form */ -class editform_test extends qtype_stack_edit_form { +class editform_test extends \qtype_stack_edit_form { public function __construct($questiontext, $specificfeedback) { global $USER; - $syscontext = context_system::instance(); + $syscontext = \context_system::instance(); $category = question_make_default_categories(array($syscontext)); - $fakequestion = new stdClass(); + $fakequestion = new \stdClass(); $fakequestion->qtype = 'stack'; $fakequestion->category = $category->id; $fakequestion->contextid = $syscontext->id; $fakequestion->createdby = $USER->id; $fakequestion->modifiedby = $USER->id; $fakequestion->questiontext = $questiontext; - $fakequestion->options = new stdClass(); + $fakequestion->options = new \stdClass(); $fakequestion->options->specificfeedback = $specificfeedback; - $fakequestion->formoptions = new stdClass(); + $fakequestion->formoptions = new \stdClass(); $fakequestion->formoptions->movecontext = null; $fakequestion->formoptions->repeatelements = true; $fakequestion->inputs = null; @@ -52,9 +54,9 @@ class editform_test extends qtype_stack_edit_form { if (class_exists('\core_question\local\bank\question_edit_contexts')) { $contexts = new \core_question\local\bank\question_edit_contexts($syscontext); } else { - $contexts = new question_edit_contexts($syscontext); + $contexts = new \question_edit_contexts($syscontext); } - parent::__construct(new moodle_url('/'), $fakequestion, $category, $contexts); + parent::__construct(new \moodle_url('/'), $fakequestion, $category, $contexts); } } @@ -67,31 +69,31 @@ class editform_test extends qtype_stack_edit_form { * @group qtype_stack * @covers \qtype_stack_edit_form */ -class qtype_stack_edit_form_test extends advanced_testcase { +class qtype_stack_edit_form_test extends \advanced_testcase { protected function get_form($questiontext, $specificfeedback) { $this->setAdminUser(); $this->resetAfterTest(); - return new qtype_stack_edit_form_testable($questiontext, $specificfeedback); + return new \qtype_stack_edit_form_testable($questiontext, $specificfeedback); } public function test_get_input_names_from_question_text_default() { - $form = $this->get_form(qtype_stack_edit_form::DEFAULT_QUESTION_TEXT, - qtype_stack_edit_form::DEFAULT_SPECIFIC_FEEDBACK); - $qtype = new qtype_stack(); + $form = $this->get_form(\qtype_stack_edit_form::DEFAULT_QUESTION_TEXT, + \qtype_stack_edit_form::DEFAULT_SPECIFIC_FEEDBACK); + $qtype = new \qtype_stack(); $this->assertEquals(array('ans1' => array(1, 1)), - $qtype->get_input_names_from_question_text(qtype_stack_edit_form::DEFAULT_QUESTION_TEXT)); + $qtype->get_input_names_from_question_text(\qtype_stack_edit_form::DEFAULT_QUESTION_TEXT)); } public function test_get_prt_names_from_question_default() { - $form = $this->get_form(qtype_stack_edit_form::DEFAULT_QUESTION_TEXT, - qtype_stack_edit_form::DEFAULT_SPECIFIC_FEEDBACK); - $qtype = new qtype_stack(); + $form = $this->get_form(\qtype_stack_edit_form::DEFAULT_QUESTION_TEXT, + \qtype_stack_edit_form::DEFAULT_SPECIFIC_FEEDBACK); + $qtype = new \qtype_stack(); $this->assertEquals(array('prt1' => 1), - $qtype->get_prt_names_from_question(qtype_stack_edit_form::DEFAULT_QUESTION_TEXT, - qtype_stack_edit_form::DEFAULT_SPECIFIC_FEEDBACK)); + $qtype->get_prt_names_from_question(\qtype_stack_edit_form::DEFAULT_QUESTION_TEXT, + \qtype_stack_edit_form::DEFAULT_SPECIFIC_FEEDBACK)); } } diff --git a/tests/restore_logic_test.php b/tests/restore_logic_test.php index 91fd02b890bdff9545991870b4a6b9131edb89cc..0c1f4fcf49055f096338e797da1fa53df1e7dae0 100644 --- a/tests/restore_logic_test.php +++ b/tests/restore_logic_test.php @@ -14,6 +14,8 @@ // You should have received a copy of the GNU General Public License // along with Stack. If not, see <http://www.gnu.org/licenses/>. +namespace qtype_stack; + defined('MOODLE_INTERNAL') || die(); global $CFG; @@ -26,7 +28,7 @@ require_once($CFG->dirroot . '/question/type/stack/backup/moodle2/restore_qtype_ * @copyright 2017 The Open University * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ -class restore_logic_test extends restore_qtype_stack_plugin { +class restore_logic_test extends \restore_qtype_stack_plugin { private $log = ''; public function __construct() { @@ -75,7 +77,7 @@ class restore_logic_test extends restore_qtype_stack_plugin { * @group qtype_stack * @covers \qtype_stack */ -class qtype_stack_restore_logic_testcase extends advanced_testcase { +class qtype_stack_restore_logic_testcase extends \advanced_testcase { public function test_fix_prt_roots() { global $DB; @@ -93,7 +95,7 @@ class qtype_stack_restore_logic_testcase extends advanced_testcase { $DB->set_field('qtype_stack_prt_nodes', 'truenextnode', 7, array('questionid' => $question->id, 'prtname' => 'oddeven', 'nodename' => 0)); - $restoreplugin = new testable_restore_qtype_stack_plugin(); + $restoreplugin = new \testable_restore_qtype_stack_plugin(); $restoreplugin->after_execute_question(); $this->assertStringContainsString('The PRT named "oddeven" is malformed', $restoreplugin->get_log());