#!/usr/bin/env python
# -*- Python -*-

import spec

class SPEC2000_254_gap(spec.TestModule):
    year = '2000'
    category = 'int'
    benchmark = '254.gap'

    train_input_set = ['all/input/abattoir.g', 'all/input/agcoset.g', 'all/input/aghomomo.g', 'all/input/agsubgrp.g', 'all/input/algfld.g', 'all/input/basic.grp', 'all/input/combinat.g', 'all/input/ctfilter.g', 'all/input/ctmapcon.g', 'all/input/ctsymmet.g', 'all/input/field.g', 'all/input/fptietze.g', 'all/input/grpcoset.g', 'all/input/grplatt.g', 'all/input/lattperf.g', 'all/input/matgrp.grp', 'all/input/monomial.g', 'all/input/onecohom.g', 'all/input/permcose.g', 'all/input/permhomo.g', 'all/input/permstbc.g', 'all/input/polynom.g', 'all/input/ratclass.g', 'all/input/rowspace.g', 'all/input/sqstuff.g', 'all/input/agcent.g', 'all/input/agctbl.g', 'all/input/aginters.g', 'all/input/agwords.g', 'all/input/algfp.g', 'all/input/cdaggrp.g', 'all/input/ctautoms.g', 'all/input/ctgapmoc.g', 'all/input/ctmapusi.g', 'all/input/cyclotom.g', 'all/input/finfield.g', 'all/input/galois.g', 'all/input/grpctbl.g', 'all/input/grpprods.g', 'all/input/list.g', 'all/input/matring.g', 'all/input/morpheus.g', 'all/input/operatio.g', 'all/input/permcser.g', 'all/input/permnorm.g', 'all/input/permutat.g', 'all/input/polyrat.g', 'all/input/rational.g', 'all/input/saggroup.g', 'all/input/string.g', 'all/input/agclass.g', 'all/input/aggroup.g', 'all/input/agnorm.g', 'all/input/algebra.g', 'all/input/alghomom.g', 'all/input/chartabl.g', 'all/input/ctbasic.g', 'all/input/ctgeneri.g', 'all/input/ctpermch.g', 'all/input/dispatch.g', 'all/input/fpgrp.g', 'all/input/gaussian.g', 'all/input/grpelms.g', 'all/input/init.g', 'all/input/mapping.g', 'all/input/matrix.g', 'all/input/numfield.g', 'all/input/permag.g', 'all/input/permctbl.g', 'all/input/permoper.g', 'all/input/polyfin.g', 'all/input/polystff.g', 'all/input/ring.g', 'all/input/sagsbgrp.g', 'all/input/tom.g', 'all/input/agcomple.g', 'all/input/aghall.g', 'all/input/agprops.g', 'all/input/algfac.g', 'all/input/algmat.g', 'all/input/classfun.g', 'all/input/ctcharac.g', 'all/input/ctlattic.g', 'all/input/ctpgrp.g', 'all/input/domain.g', 'all/input/fpsgpres.g', 'all/input/group.g', 'all/input/grphomom.g', 'all/input/integer.g', 'all/input/matgrp.g', 'all/input/module.g', 'all/input/numtheor.g', 'all/input/permbckt.g', 'all/input/permgrp.g', 'all/input/permprod.g', 'all/input/polyfld.g', 'all/input/pq.g', 'all/input/rowmodul.g', 'all/input/sq.g', 'all/input/vecspace.g', 'train/input/train.in']
    train_output_set = ['train/output/train.out']
    train_args = ['< train.in -l ./ -q -m 128M > 254.gap.train.out 2> 254.gap.train.err']
    train_cmp_cmds = ['diff 254.gap.train.out train.out --strip-trailing-cr > 254.gap.train.cmp']
    ref_input_set = ['all/input/abattoir.g', 'all/input/agcoset.g', 'all/input/aghomomo.g', 'all/input/agsubgrp.g', 'all/input/algfld.g', 'all/input/basic.grp', 'all/input/combinat.g', 'all/input/ctfilter.g', 'all/input/ctmapcon.g', 'all/input/ctsymmet.g', 'all/input/field.g', 'all/input/fptietze.g', 'all/input/grpcoset.g', 'all/input/grplatt.g', 'all/input/lattperf.g', 'all/input/matgrp.grp', 'all/input/monomial.g', 'all/input/onecohom.g', 'all/input/permcose.g', 'all/input/permhomo.g', 'all/input/permstbc.g', 'all/input/polynom.g', 'all/input/ratclass.g', 'all/input/rowspace.g', 'all/input/sqstuff.g', 'all/input/agcent.g', 'all/input/agctbl.g', 'all/input/aginters.g', 'all/input/agwords.g', 'all/input/algfp.g', 'all/input/cdaggrp.g', 'all/input/ctautoms.g', 'all/input/ctgapmoc.g', 'all/input/ctmapusi.g', 'all/input/cyclotom.g', 'all/input/finfield.g', 'all/input/galois.g', 'all/input/grpctbl.g', 'all/input/grpprods.g', 'all/input/list.g', 'all/input/matring.g', 'all/input/morpheus.g', 'all/input/operatio.g', 'all/input/permcser.g', 'all/input/permnorm.g', 'all/input/permutat.g', 'all/input/polyrat.g', 'all/input/rational.g', 'all/input/saggroup.g', 'all/input/string.g', 'all/input/agclass.g', 'all/input/aggroup.g', 'all/input/agnorm.g', 'all/input/algebra.g', 'all/input/alghomom.g', 'all/input/chartabl.g', 'all/input/ctbasic.g', 'all/input/ctgeneri.g', 'all/input/ctpermch.g', 'all/input/dispatch.g', 'all/input/fpgrp.g', 'all/input/gaussian.g', 'all/input/grpelms.g', 'all/input/init.g', 'all/input/mapping.g', 'all/input/matrix.g', 'all/input/numfield.g', 'all/input/permag.g', 'all/input/permctbl.g', 'all/input/permoper.g', 'all/input/polyfin.g', 'all/input/polystff.g', 'all/input/ring.g', 'all/input/sagsbgrp.g', 'all/input/tom.g', 'all/input/agcomple.g', 'all/input/aghall.g', 'all/input/agprops.g', 'all/input/algfac.g', 'all/input/algmat.g', 'all/input/classfun.g', 'all/input/ctcharac.g', 'all/input/ctlattic.g', 'all/input/ctpgrp.g', 'all/input/domain.g', 'all/input/fpsgpres.g', 'all/input/group.g', 'all/input/grphomom.g', 'all/input/integer.g', 'all/input/matgrp.g', 'all/input/module.g', 'all/input/numtheor.g', 'all/input/permbckt.g', 'all/input/permgrp.g', 'all/input/permprod.g', 'all/input/polyfld.g', 'all/input/pq.g', 'all/input/rowmodul.g', 'all/input/sq.g', 'all/input/vecspace.g', 'ref/input/ref.in']
    ref_output_set = ['ref/output/ref.out']
    ref_args = ['< ref.in -l ./ -q -m 192M > 254.gap.ref.out 2> 254.gap.ref.err']
    ref_cmp_cmds = ['diff 254.gap.ref.out ref.out --strip-trailing-cr > 254.gap.ref.cmp']

# This is the only required entry point to the module.
test_class = SPEC2000_254_gap

# This is not required, but allows users with LNT in the environment (required
# for initial imports to work) to execute this test directly.
if __name__ == '__main__':
    test_class().main()
