.. | ||
src | ||
.gitignore | ||
LICENSE.txt | ||
pom.xml | ||
README.md |
How to Test
This documentation provides a step-by-step guide to test the EO
code in eo-parser
package. There
are two files provide testing EO
files: PacksTest
and TypoTests
.
The PacksTest
class contains two test methods:
parsesPacks()
- This method tests if the packs are parsed correctly. It reads YAML files from theorg/eolang/parser/packs/
directory and checks if there are any failures. If there are any failures, the test is aborted.createsXaxStoryWithXslStylesheets()
- This method tests if the XSL stylesheets are created correctly. It reads YAML files from theorg/eolang/parser/xax/
directory and creates an XaxStory object. The test passes if the object is created successfully.
TypoTests
contains only checksPacks()
method with same functionality as parsesPacks()
. But it
takes YAML files from org/eolang/parser/typos/
directory.
To create YAML file, you can follow the following steps:
- Start by creating a brief introduction to the file and its purpose. In this case, the YAML file is used for defining the XSLT stylesheets and the tests for a program, as well as defining aliases and the main function.
- Next, provide a section that explains the different sections of the YAML file. In this case,
there are three sections:
xsls
,tests
, andeo
. - For the
xsls
section, explain that it is used to define the XSLT stylesheets that will be used for transforming the input program. Provide a brief explanation of each stylesheet listed in the section. - For the
tests
section, explain that it is used for defining the tests that will be run on the program. Provide a brief explanation of each test listed in the section. - For the
eo
section, explain that it is used for defining aliases and the main function for the program. Provide a brief explanation of each alias listed in the section, and how they can be used in the program. Also, explain the purpose of themain
function and how it works. - Finally, provide a conclusion that summarizes the purpose and contents of the YAML file. You can also include any additional information that might be helpful for users who are working with the file.
Here is an example of what the YAML file might look like:
YAML File Documentation
Considering the following yaml
file:
xsls:
- /org/eolang/parser/add-refs.xsl
- /org/eolang/parser/expand-aliases.xsl
- /org/eolang/parser/resolve-aliases.xsl
- /org/eolang/parser/add-default-package.xsl
tests:
- /program/errors[count(*)=0]
- /program/objects[count(o)=1]
- //o[@base='org.eolang.and' and @line='8']
- //o[@base='foo']
- //o[@base='$']
- //o[@base='^']
- //o[@base='Q']
eo: |
+alias foo
+alias scanner org.eolang.txt.scanner
+alias stdin org.eolang.io.stdin
+alias stdout org.eolang.io.stdout
+foo Some other meta
[args] > main
and
(scanner stdin).next-line > line!
(stdout "You entered" line).print
$
^.i
foo
Q.org.eolang.random
Sections
This YAML file is used to define the XSLT stylesheets and tests for a program, as well as defining
aliases and the main function. It consists of three sections: xsls
, tests
, and eo
. The xsls
section is used to define the XSLT stylesheets, the tests
section is used for defining the tests,
and the eo
section is used for defining aliases and the main function.
xsls
This section is used to define the XSLT stylesheets that will be used for transforming the input program. The following stylesheets are defined in this section:
/org/eolang/parser/add-refs.xsl
: This stylesheet is used to add references to the program./org/eolang/parser/expand-aliases.xsl
: This stylesheet is used to expand aliases in the program./org/eolang/parser/resolve-aliases.xsl
: This stylesheet is used to resolve aliases in the program./org/eolang/parser/add-default-package.xsl
: This stylesheet is used to add a default package to the program.
tests
This section is used for defining the tests that will be run on the program. The following tests are defined in this section:
/program/errors[count(*)=0]
: This test checks that there are no errors in the program./program/objects[count(o)=1]
: This test checks that there is only one object in the program.//o[@base='org.eolang.and' and @line='8']
: This test checks that there is an object with the baseorg.eolang.and
and the line number8
.//o[@base='foo']
: This test checks that there is an object with the basefoo
.//o[@base='$']
: This test checks that there is an object with the base$
.//o[@base='^']
: This test checks that there is an object with the base^
.//o[@base='Q']
: This test checks that there is an object with the baseQ
.
eo
This section is used for EO code which should be tested.