Skip to content
Snippets Groups Projects
Commit dd0bfbcd authored by Chris Sangwin's avatar Chris Sangwin
Browse files

Tidy and prepare for next release.

parent 0058b5f3
No related branches found
No related tags found
No related merge requests found
# STACK 4.3.9 [![Build Status](https://api.travis-ci.org/maths/moodle-qtype_stack.svg?branch=master)](https://travis-ci.org/github/maths/moodle-qtype_stack/) # STACK 4.3.10 [![Build Status](https://api.travis-ci.org/maths/moodle-qtype_stack.svg?branch=master)](https://travis-ci.org/github/maths/moodle-qtype_stack/)
STACK is an assessment system for mathematics, science and related disciplines. STACK is a question type for the Moodle learning management system, and also the ILIAS learning management system. STACK is an assessment system for mathematics, science and related disciplines. STACK is a question type for the Moodle learning management system, and also the ILIAS learning management system.
...@@ -8,7 +8,7 @@ STACK is based on continuing research and use at the University of Edinburgh, th ...@@ -8,7 +8,7 @@ STACK is based on continuing research and use at the University of Edinburgh, th
## Current state of development ## Current state of development
STACK 4.3 contains some important re-engineering of core components. This will enable significant new features in future releases. STACK 4.3.9 contains minor bug fixes and minor improvements, especially to performance. STACK 4.3 contains some important re-engineering of core components. This will enable significant new features in future releases. STACK 4.3.10 contains bug fixes and minor improvements.
Please continue to report any bugs you find at https://github.com/maths/moodle-qtype_stack/issues. Please continue to report any bugs you find at https://github.com/maths/moodle-qtype_stack/issues.
......
...@@ -53,7 +53,7 @@ Note there is a subtle (and perhaps confusing) difference between atoms in Maxim ...@@ -53,7 +53,7 @@ Note there is a subtle (and perhaps confusing) difference between atoms in Maxim
The atoms `a1` and `a_1` are not considered to be algebraically equivalent. The atoms `a1` and `a_1` are not considered to be algebraically equivalent.
See the inputs extra option [consolidatesubscripts](Input.md). See the inputs extra option [consolidatesubscripts](Inputs.md).
Normally an atom `theta2` is displayed by Maxima as `{\it theta_2}`. This is problematic as the Greek letter is not rendered as LaTeX `\theta`, and the subscript is in italic which is wrong. We have fixed this in STACK. Maxima "atoms" with a subscript will be displayed using subscripts. For example Normally an atom `theta2` is displayed by Maxima as `{\it theta_2}`. This is problematic as the Greek letter is not rendered as LaTeX `\theta`, and the subscript is in italic which is wrong. We have fixed this in STACK. Maxima "atoms" with a subscript will be displayed using subscripts. For example
......
...@@ -41,7 +41,7 @@ The following type predicates are defined by STACK. ...@@ -41,7 +41,7 @@ The following type predicates are defined by STACK.
| `simp_numberp(ex)` | Determines if \(ex\) is a number when `simp:false`. | `simp_numberp(ex)` | Determines if \(ex\) is a number when `simp:false`.
| `simp_integerp(ex)` | Determines if \(ex\) is an integer when `simp:false`. | `simp_integerp(ex)` | Determines if \(ex\) is an integer when `simp:false`.
| `real_numberp(ex)` | Determines if \(ex\) is a real number. | `real_numberp(ex)` | Determines if \(ex\) is a real number.
| `rational_numberp(ex)` | Determines if \(ex\) is a rational number. | `rational_numberp(ex)` | Determines if \(ex\) is written as a fraction. For a true mathematical rational number use `rational_numberp(ex) or simp_integerp(ex)`
| `lowesttermsp(ex)` | Determines if a fraction \(ex\) is in lowest terms. | `lowesttermsp(ex)` | Determines if a fraction \(ex\) is in lowest terms.
| `complex_exponentialp(ex)` | Determines if \(ex\) is written in complex exponential form, \(r e^{i\theta} \). Needs `simp:false`. | `complex_exponentialp(ex)` | Determines if \(ex\) is written in complex exponential form, \(r e^{i\theta} \). Needs `simp:false`.
| `imag_numberp(ex)` | Determines if \(ex\) is a purely imaginary number. | `imag_numberp(ex)` | Determines if \(ex\) is a purely imaginary number.
......
...@@ -22,7 +22,7 @@ and then re-start the web server. ...@@ -22,7 +22,7 @@ and then re-start the web server.
## 1. Set up Moodle. ## 1. Set up Moodle.
* Please ensure you have [installed Moodle](http://docs.moodle.org/en/Main_page). We intend to support STACK within the normal Moodle [release cycle](https://docs.moodle.org/dev/Releases). STACK has been tested on Moodle 3.8 to 3.10. STACK is untested on versions before Moodle 3.8. We intend to support all future Moodle releases. If your version of Moodle is not listed here please contact the developers: we probably simply have not done the testing of future versions yet. For longer support of older versions of Moodle please contact us, otherwise will will drop them from our list. * Please ensure you have [installed Moodle](http://docs.moodle.org/en/Main_page). We intend to support STACK within the normal Moodle [release cycle](https://docs.moodle.org/dev/Releases). STACK has been tested on Moodle 3.9 to 3.11. STACK is untested on versions before Moodle 3.9. We intend to support all future Moodle releases. If your version of Moodle is not listed here please contact the developers: we probably simply have not done the testing of future versions yet. For longer support of older versions of Moodle please contact us, otherwise will will drop them from our list.
* Please ensure LaTeX can be displayed. We currently support [MathJax](Mathjax.md) through the Moodle MathJax filter. * Please ensure LaTeX can be displayed. We currently support [MathJax](Mathjax.md) through the Moodle MathJax filter.
Consider updating the MathJax settings to wrap long equations. In particular, add Consider updating the MathJax settings to wrap long equations. In particular, add
......
...@@ -210,14 +210,21 @@ class stack_utils_test extends qtype_stack_testcase { ...@@ -210,14 +210,21 @@ class stack_utils_test extends qtype_stack_testcase {
} }
public function test_alttext() { public function test_alttext() {
$this->assertEquals(0, stack_utils::count_missing_alttext('random <img alt="Hello world!" src="https://nowhere.com/images/image0.png" > stuff')); $this->assertEquals(0, stack_utils::count_missing_alttext(
$this->assertEquals(0, stack_utils::count_missing_alttext('random <IMG alt="Hello world!" src="https://nowhere.com/images/image0.png" > stuff')); 'random <img alt="Hello world!" src="https://nowhere.com/images/image0.png" > stuff'));
$this->assertEquals(0, stack_utils::count_missing_alttext('random <img ALT = "Hello world!" src="https://nowhere.com/images/image0.png" > stuff')); $this->assertEquals(0, stack_utils::count_missing_alttext(
$this->assertEquals(0, stack_utils::count_missing_alttext('random <img src="https://nowhere.com/images/image0.png" alt="Hello world!" /> stuff')); 'random <IMG alt="Hello world!" src="https://nowhere.com/images/image0.png" > stuff'));
$this->assertEquals(1, stack_utils::count_missing_alttext('random <img src = "https://nowhere.com/images/image0.png" > stuff')); $this->assertEquals(0, stack_utils::count_missing_alttext(
$this->assertEquals(1, stack_utils::count_missing_alttext('random <img alt = \'\' src="https://nowhere.com/images/image0.png" > stuff')); 'random <img ALT = "Hello world!" src="https://nowhere.com/images/image0.png" > stuff'));
$this->assertEquals(1, stack_utils::count_missing_alttext('random <img alt = \' \' src="https://nowhere.com/images/image0.png" > stuff')); $this->assertEquals(0, stack_utils::count_missing_alttext(
$this->assertEquals(2, 'random <img src="https://nowhere.com/images/image0.png" alt="Hello world!" /> stuff'));
stack_utils::count_missing_alttext('<img src="https://nowhere.com/images/image0.png" > stuff <img src="https://nowhere.com/images/image1.png" >')); $this->assertEquals(1, stack_utils::count_missing_alttext(
'random <img src = "https://nowhere.com/images/image0.png" > stuff'));
$this->assertEquals(1, stack_utils::count_missing_alttext(
'random <img alt = \'\' src="https://nowhere.com/images/image0.png" > stuff'));
$this->assertEquals(1, stack_utils::count_missing_alttext(
'random <img alt = \' \' src="https://nowhere.com/images/image0.png" > stuff'));
$this->assertEquals(2, stack_utils::count_missing_alttext(
'<img src="https://nowhere.com/images/image0.png" > stuff <img src="https://nowhere.com/images/image1.png" >'));
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment