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

import os, shutil
import spec

class SPEC2006_482_sphinx3(spec.TestModule):
    year = '2006'
    category = 'fp'
    benchmark = '482.sphinx3'

    train_input_set = ['all/input/model', 'train/input/beams.dat', 'train/input/an406-fcaw-b.le.raw', 'train/input/an407-fcaw-b.le.raw', 'train/input/an408-fcaw-b.le.raw', 'train/input/an409-fcaw-b.le.raw', 'train/input/an410-fcaw-b.le.raw', 'train/input/args.an4']
    train_output_set = ['train/output/an4.log']
    train_args = ['ctlfile . args.an4 > 482.sphinx3.an4.out 2> 482.sphinx3.an4.err']
    train_cmp_cmds = ['sed -i bak "s/\\.le//g" 482.sphinx3.an4.out ; sed -i bak "s,[^ ]*/\\([^/]*\\.c\\),\\1," 482.sphinx3.an4.out; fpcmp -r .001 482.sphinx3.an4.out an4.log > 482.sphinx3.an4.cmp']
    ref_input_set = ['all/input/model', 'ref/input/beams.dat', 'ref/input/an391-mjwl-b.le.raw', 'ref/input/an400-miry-b.le.raw', 'ref/input/an419-fjlp-b.le.raw', 'ref/input/an428-fvap-b.le.raw', 'ref/input/an437-mjgm-b.le.raw', 'ref/input/cen1-fjlp-b.le.raw', 'ref/input/cen2-fjlp-b.le.raw', 'ref/input/cen3-fjlp-b.le.raw', 'ref/input/cen4-fjlp-b.le.raw', 'ref/input/cen5-fjlp-b.le.raw', 'ref/input/cen6-fjlp-b.le.raw', 'ref/input/cen7-fjlp-b.le.raw', 'ref/input/cen8-fjlp-b.le.raw', 'ref/input/an392-mjwl-b.le.raw', 'ref/input/an401-mdms2-b.le.raw', 'ref/input/an420-fjlp-b.le.raw', 'ref/input/an429-fvap-b.le.raw', 'ref/input/an438-mjgm-b.le.raw', 'ref/input/cen1-fvap-b.le.raw', 'ref/input/cen2-fvap-b.le.raw', 'ref/input/cen3-fvap-b.le.raw', 'ref/input/cen4-fvap-b.le.raw', 'ref/input/cen5-fvap-b.le.raw', 'ref/input/cen6-fvap-b.le.raw', 'ref/input/cen7-fvap-b.le.raw', 'ref/input/cen8-fvap-b.le.raw', 'ref/input/an393-mjwl-b.le.raw', 'ref/input/an402-mdms2-b.le.raw', 'ref/input/an421-menk-b.le.raw', 'ref/input/an430-fvap-b.le.raw', 'ref/input/an439-mjgm-b.le.raw', 'ref/input/cen1-marh-b.le.raw', 'ref/input/cen2-marh-b.le.raw', 'ref/input/cen3-marh-b.le.raw', 'ref/input/cen4-marh-b.le.raw', 'ref/input/cen5-marh-b.le.raw', 'ref/input/cen6-marh-b.le.raw', 'ref/input/cen7-marh-b.le.raw', 'ref/input/cen8-marh-b.le.raw', 'ref/input/an394-mjwl-b.le.raw', 'ref/input/an403-mdms2-b.le.raw', 'ref/input/an422-menk-b.le.raw', 'ref/input/an431-marh-b.le.raw', 'ref/input/an440-mjgm-b.le.raw', 'ref/input/cen1-mdms2-b.le.raw', 'ref/input/cen2-mdms2-b.le.raw', 'ref/input/cen3-mdms2-b.le.raw', 'ref/input/cen4-mdms2-b.le.raw', 'ref/input/cen5-mdms2-b.le.raw', 'ref/input/cen6-mdms2-b.le.raw', 'ref/input/cen7-mdms2-b.le.raw', 'ref/input/cen8-mdms2-b.le.raw', 'ref/input/an395-mjwl-b.le.raw', 'ref/input/an404-mdms2-b.le.raw', 'ref/input/an423-menk-b.le.raw', 'ref/input/an432-marh-b.le.raw', 'ref/input/an441-mmxg-b.le.raw', 'ref/input/cen1-menk-b.le.raw', 'ref/input/cen2-menk-b.le.raw', 'ref/input/cen3-menk-b.le.raw', 'ref/input/cen4-menk-b.le.raw', 'ref/input/cen5-menk-b.le.raw', 'ref/input/cen6-menk-b.le.raw', 'ref/input/cen7-menk-b.le.raw', 'ref/input/cen8-menk-b.le.raw', 'ref/input/an396-miry-b.le.raw', 'ref/input/an405-mdms2-b.le.raw', 'ref/input/an424-menk-b.le.raw', 'ref/input/an433-marh-b.le.raw', 'ref/input/an442-mmxg-b.le.raw', 'ref/input/cen1-miry-b.le.raw', 'ref/input/cen2-miry-b.le.raw', 'ref/input/cen3-miry-b.le.raw', 'ref/input/cen4-miry-b.le.raw', 'ref/input/cen5-miry-b.le.raw', 'ref/input/cen6-miry-b.le.raw', 'ref/input/cen7-miry-b.le.raw', 'ref/input/cen8-miry-b.le.raw', 'ref/input/an397-miry-b.le.raw', 'ref/input/an416-fjlp-b.le.raw', 'ref/input/an425-menk-b.le.raw', 'ref/input/an434-marh-b.le.raw', 'ref/input/an443-mmxg-b.le.raw', 'ref/input/cen1-mjgm-b.le.raw', 'ref/input/cen2-mjgm-b.le.raw', 'ref/input/cen3-mjgm-b.le.raw', 'ref/input/cen4-mjgm-b.le.raw', 'ref/input/cen5-mjgm-b.le.raw', 'ref/input/cen6-mjgm-b.le.raw', 'ref/input/cen7-mjgm-b.le.raw', 'ref/input/cen8-mjgm-b.le.raw', 'ref/input/an398-miry-b.le.raw', 'ref/input/an417-fjlp-b.le.raw', 'ref/input/an426-fvap-b.le.raw', 'ref/input/an435-marh-b.le.raw', 'ref/input/an444-mmxg-b.le.raw', 'ref/input/cen1-mjwl-b.le.raw', 'ref/input/cen2-mjwl-b.le.raw', 'ref/input/cen3-mjwl-b.le.raw', 'ref/input/cen4-mjwl-b.le.raw', 'ref/input/cen5-mjwl-b.le.raw', 'ref/input/cen6-mjwl-b.le.raw', 'ref/input/cen7-mjwl-b.le.raw', 'ref/input/cen8-mjwl-b.le.raw', 'ref/input/an399-miry-b.le.raw', 'ref/input/an418-fjlp-b.le.raw', 'ref/input/an427-fvap-b.le.raw', 'ref/input/an436-mjgm-b.le.raw', 'ref/input/an445-mmxg-b.le.raw', 'ref/input/cen1-mmxg-b.le.raw', 'ref/input/cen2-mmxg-b.le.raw', 'ref/input/cen3-mmxg-b.le.raw', 'ref/input/cen4-mmxg-b.le.raw', 'ref/input/cen5-mmxg-b.le.raw', 'ref/input/cen6-mmxg-b.le.raw', 'ref/input/cen7-mmxg-b.le.raw', 'ref/input/cen8-mmxg-b.le.raw', 'ref/input/args.an4']
    ref_output_set = ['ref/output/an4.log']
    ref_args = ['ctlfile . args.an4 > 482.sphinx3.an4.out 2> 482.sphinx3.an4.err']
    ref_cmp_cmds = ['sed -i bak "s/\\.le//g" 482.sphinx3.an4.out ; sed -i bak "s,[^ ]*/\\([^/]*\\.c\\),\\1," 482.sphinx3.an4.out; fpcmp -r .001 482.sphinx3.an4.out an4.log > 482.sphinx3.an4.cmp']

    def copy_input_set(self, dest_dir, size):
        spec.TestModule.copy_input_set(self, dest_dir, size)
        # FIXME: this currently only supports little endian!
        shutil.copy(os.path.join(self.SRCROOT, size, 'ctlfile.little-endian'), os.path.join(dest_dir, 'ctlfile'))

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

# 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()
