Organize raq into standard GAP package file tree

In preparation for a beta release of the raq package, it's important for it to
be conformant to current GAP package conventions. Therefore, I have rearranged
the file tree to match the Example package quite thoroughly. In so doing, this
laid the foundation for the following aspects of the package:

  - Package documentation. Added makedoc.g at the top level to generate
  AutoDoc/GAPDoc documentation for raq. Currently the documentation is empty;
  future development will bring the documentation to cover all existing code.

  - Package tests. The basic structure to add .tst files in the tst
  subdirectory of the package is in place. The coverage of tests provided in
  this commit is minimal; again, further development will extend the test
  coverage.

In addition, PackageInfo.g has been elaborated to include much more complete
information about raq and where it will (initially) be posted on line.

Resolves: #1
This commit is contained in:
Glen Whitney 2018-08-16 21:12:38 -07:00
parent d6b6a11d85
commit be82518697
19 changed files with 113 additions and 45 deletions

3
CHANGES Normal file
View File

@ -0,0 +1,3 @@
Version 0.1: 2018/10/01
Initial beta release. GW

View File

@ -1,3 +0,0 @@
Code in this package is made available under whatever terms preferred by
Leandro Vendramin and Matias Graña, the authors of the RIG package on which it
is (more or less) based.

View File

@ -2,9 +2,14 @@ SetPackageInfo( rec(
PackageName := "raq", PackageName := "raq",
Subtitle := "Racks And Quandles in GAP", Subtitle := "Racks And Quandles in GAP",
Version := "0.1.0", Version := "0.1.0",
Date := "2017-Oct-17", Date := "2018-Oct-1",
ArchiveURL := "<n/a>", PackageWWWHome := "http://code.studioinfinity.org/raq/wiki",
ArchiveFormats := "-win.zip .tar.gz", SourceRepository := rec( Type := "git",
URL := "http://code.studioinfity.org/raq" ),
IssueTrackerURL := "http://code.studioinfinity.org/raq/issues",
SupportEmail := "glen@studioinfinity.org",
ArchiveURL := "http://code.studioinfinity.org/raq/releases",
ArchiveFormats := ".tar.gz",
Persons := [ Persons := [
rec( rec(
@ -12,28 +17,14 @@ Persons := [
FirstNames := "Glen", FirstNames := "Glen",
IsAuthor := true, IsAuthor := true,
IsMaintainer := true, IsMaintainer := true,
Email := "gwhitney@post.harvard.edu", Email := "glen@studioinfinity.org",
WWWHome := "http://mathwalks.org", WWWHome := "http://studioinfinity.org",
PostalAddress := Concatenation( [ PostalAddress := Concatenation( [
"523 Rialto Ave.\n", "523 Rialto Ave.\n",
"Venice, CA 90291\n", "Venice, CA 90291\n",
"USA" ] ), "USA" ] ),
Place := "Venice", Place := "Venice",
Institution := "mathwalks.org" Institution := "studioInfinity.org"
),
rec(
LastName := "Vendramin",
FirstNames := "Leandro",
IsAuthor := true,
IsMaintainer := false,
Email := "lvendramin@dm.uba.ar",
WWWHome := "http://mate.dm.uba.ar/~lvendram/",
PostalAddress := Concatenation( [
"Departamento de matemática, FCEyN, UBA",
"Ciudad Universitaria, Pab. 1,\n",
"Buenos Aires, Argentina" ] ),
Place := "Buenos Aires",
Institution := "UBA"
) )
], ],
@ -44,12 +35,11 @@ Persons := [
## "dev" for development versions of packages ## "dev" for development versions of packages
## "other" for all other packages ## "other" for all other packages
## ##
Status := "dev", Status := "other",
README_URL := README_URL := "http://code.studioinfinity.org/raq/src/branch/master/README.md",
"<n/a>",
PackageInfoURL := PackageInfoURL :=
"<n/a>", "http://code.studioinfinity.org/raq/src/branch/master/PackageInfo.g",
AbstractHTML := Concatenation( AbstractHTML := Concatenation(
"The <span class=\"pkgname\">RAQ</span> package provides researchers ", "The <span class=\"pkgname\">RAQ</span> package provides researchers ",
@ -59,18 +49,16 @@ AbstractHTML := Concatenation(
"established in the <span class=\"pkgname\">LOOPS</span> package, and ", "established in the <span class=\"pkgname\">LOOPS</span> package, and ",
"and provides enhanced functionality, libraries, and implementations ", "and provides enhanced functionality, libraries, and implementations ",
"as compared to the earlier <span class=\"pkgname\">RIG</span> package ", "as compared to the earlier <span class=\"pkgname\">RIG</span> package ",
"on which <span class=\"pkgname\">RAQ</span> is loosely modeled." "on which <span class=\"pkgname\">RAQ</span> is generally modeled."
), ),
PackageWWWHome := "<n/a>",
PackageDoc := rec( PackageDoc := rec(
BookName := "raq", BookName := "raq",
ArchiveURLSubset := ["doc", "htm"], ArchiveURLSubset := ["doc"],
HTMLStart := "doc/chap0.html", HTMLStart := "doc/chap0.html",
PDFFile := "doc/manual.pdf", PDFFile := "doc/manual.pdf",
SixFile := "doc/manual.six", SixFile := "doc/manual.six",
LongTitle := "The RAQ Package: Racks And Quandles in GAP", LongTitle := "The raq Package: Racks And Quandles in GAP",
Autoload := true # only for the documentation, TEMPORARILY TURNED OFF Autoload := true # only for the documentation, TEMPORARILY TURNED OFF
), ),
@ -83,7 +71,7 @@ Dependencies := rec(
), ),
AvailabilityTest := ReturnTrue, AvailabilityTest := ReturnTrue,
BannerString := Concatenation("--\nRAQ, Racks And Quandles in GAP, Version ", BannerString := Concatenation("--\nraq, Racks And Quandles in GAP, Version ",
~.Version, ".\n--\n"), ~.Version, ".\n--\n"),
Autoload := false, # false for deposited packages Autoload := false, # false for deposited packages

View File

@ -1,3 +1,20 @@
# raq # raq, a GAP System package for Racks And Quandles.
RAQ, a GAP System package for Racks And Quandles. * Website: code.studioinfinity.org/raq/wiki
* Repository: code.studioinfinity.org/raq
This package provides a variety of facilities for computing with one-sided
quasigroups, racks, and quandles in GAP.
It uses no external binaries, so installation consists only of placing the raq
file tree in a directory in your package search path, e.g. the pkg directory of
your GAP installation, or perhaps the .gap/pkg subdirectory of your home
directory.
Authors/maintainers of raq: Glen Whitney <glen@studioinfinity.org>
The authors of raq would like to acknowledge their debt to the creators of
RIG, an earlier package for Racks in GAP; chaief among them is Leandro
Vendramin. RIG was an inspiration for the creation of raq, and using and
reading that package suggested many features needed in the development of
raq.

19
doc/.gitignore vendored Normal file
View File

@ -0,0 +1,19 @@
*.xml
*.html
*.txt
*.css
*.js
*.lab
*.pdf
*.six
*.aux
*.bbl
*.blg
*.idx
*.ilg
*.ind
*.log
*.out
*.pnr
*.tex
*.toc

3
doc/README.md Normal file
View File

@ -0,0 +1,3 @@
This directory is currently empty in the repository, except for this file,
since its entire contents are generated by AutoDoc (see the makedoc.g file in
the main package directory, one level up from this directory.)

10
init.g
View File

@ -1,13 +1,13 @@
## init.g RAQ: Racks and Quandles in GAP ## init.g raq
# Definitions, generation, and elementary properties and operations. # Definitions, generation, and elementary properties and operations.
ReadPackage("raq", "gap/structure.gd"); ReadPackage("raq", "lib/structure.gd");
# Quasigroups, racks, and quandles by multiplication tables # Quasigroups, racks, and quandles by multiplication tables
ReadPackage("raq", "gap/bytable.gd"); ReadPackage("raq", "lib/bytable.gd");
# Quandles by conjugation # Quandles by conjugation
ReadPackage("raq", "gap/byconj.gd"); ReadPackage("raq", "lib/byconj.gd");
# Other quandle constructions # Other quandle constructions
ReadPackage("raq", "gap/constructions.gd"); ReadPackage("raq", "lib/constructions.gd");

6
makedoc.g Normal file
View File

@ -0,0 +1,6 @@
# makedoc.g raq
# build the documentation for raq via AutoDoc
LoadPackage("AutoDoc");
AutoDoc(rec(scaffold := true, autodoc := true));
QUIT;

10
read.g
View File

@ -1,13 +1,13 @@
## read.g RAQ ## read.g raq
# Definitions, representations, and elementary operations. # Definitions, representations, and elementary operations.
ReadPackage("raq", "gap/structure.gi"); ReadPackage("raq", "lib/structure.gi");
# Quasigroups, racks, and quandles by multiplication tables # Quasigroups, racks, and quandles by multiplication tables
ReadPackage("raq", "gap/bytable.gi"); ReadPackage("raq", "lib/bytable.gi");
# Quandles by conjugation # Quandles by conjugation
ReadPackage("raq", "gap/byconj.gi"); ReadPackage("raq", "lib/byconj.gi");
# Other quandle constructions # Other quandle constructions
ReadPackage("raq", "gap/constructions.gi"); ReadPackage("raq", "lib/constructions.gi");

View File

@ -0,0 +1,25 @@
# bytableAndStructure.tst raq
# Test the functions in the bytable and structure files
gap> START_TEST("raq package: bytableAndStructure.tst");
gap> t4 := [[1,3,2,4], [3,2,1,4], [2,1,3,4], [1,2,3,4]];
[ [ 1, 3, 2, 4 ], [ 3, 2, 1, 4 ], [ 2, 1, 3, 4 ], [ 1, 2, 3, 4 ] ]
gap> IsRightSelfDistributiveTable(t4);
false
gap> IsLeftSelfDistributiveTable(t4);
true
gap> IsElementwiseIdempotentTable(t4);
true
gap> l4 := LeftQuasigroupByMultiplicationTable(t4);
<left quasigroup with 4 generators>
gap> Elements(l4);
[ lA1, lA2, lA3, lA4 ]
gap> IsLeftQuasigroup(l4);
true
gap> q1 := MagmaElement(l4,1); q2 := MagmaElement(l4,2);
lA1
lA2
gap> LeftQuotient(q1,q2);
lA3
gap> STOP_TEST( "bytableAndStructure.tst", 10000);

10
tst/testall.g Normal file
View File

@ -0,0 +1,10 @@
# tst/testall.g raq
LoadPackage( "raq" );
TestDirectory(DirectoriesPackageLibrary("raq","tst"),
rec(exitGAP := true,
testOptions := rec(compareFunction := "uptowhitespace"))
);
FORCE_QUIT_GAP(1); # should be unreachable