1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
# -*- coding: utf-8 -*-
import sys
if len(sys.argv) > 1:
sys.path.insert(0, sys.argv[1])
import hfst
for type in [hfst.ImplementationType.SFST_TYPE, hfst.ImplementationType.TROPICAL_OPENFST_TYPE, hfst.ImplementationType.FOMA_TYPE]:
if hfst.HfstTransducer.is_implementation_type_available(type):
f = open('cats_and_dogs.prolog', 'r')
F = open('tmp', 'w')
tr = hfst.read_prolog_transducer(f)
re = hfst.regex('{cat}')
assert(tr.compare(re))
tr.write_prolog(F, True)
F.write('\n')
tr = hfst.read_prolog_transducer(f)
re = hfst.regex('0 - 0')
assert(tr.compare(re))
tr.write_prolog(F, True)
F.write('\n')
tr = hfst.read_prolog_transducer(f)
re = hfst.regex('{dog}:{cat}::0.5')
assert(tr.compare(re))
tr.write_prolog(F, True)
F.write('\n')
tr = hfst.read_prolog_transducer(f)
re = hfst.regex('[c a:h t:a 0:t]::-1.5')
assert(tr.compare(re))
tr.write_prolog(F, True)
try:
tr = hfst.read_prolog_transducer(f)
assert(False)
except hfst.exceptions.EndOfStreamException as e:
pass
f.close()
F.close()
f = open('tmp', 'r')
tr = hfst.read_prolog_transducer(f)
re = hfst.regex('{cat}')
assert(tr.compare(re))
tr = hfst.read_prolog_transducer(f)
re = hfst.regex('0 - 0')
assert(tr.compare(re))
tr = hfst.read_prolog_transducer(f)
re = hfst.regex('{dog}:{cat}::0.5')
assert(tr.compare(re))
tr = hfst.read_prolog_transducer(f)
re = hfst.regex('[c a:h t:a 0:t]::-1.5')
try:
tr = hfst.read_prolog_transducer(f)
assert(False)
except hfst.exceptions.EndOfStreamException as e:
pass
f.close()
|