File: translate_tr.crm

package info (click to toggle)
crm114 20100106-10
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, sid, trixie
  • size: 3,184 kB
  • sloc: ansic: 34,910; sh: 617; makefile: 578; lisp: 208
file content (72 lines) | stat: -rwxr-xr-x 2,167 bytes parent folder | download | duplicates (6)
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
69
70
71
72
#! /usr/bin/crm
#
#	translate_tr.crm - Test basic TRANSLATE functionality

# Copyright 2009 William S. Yerazunis.
# This file is under GPLv3, as described in COPYING.

window
output /\nTRANSLATE basic functionality test\n\n/

#    Basic test - does it rot13?  Does it come back?
alter (:_dw:) \
  /foo bar zappa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
output /original: :*:_dw:\n/
translate /a-z/ /n-za-m/
output /rot13:    :*:_dw:\n/
translate /a-z/ /n-za-m/
output /again:    :*:_dw:\n/

#    Ascending and descending ranges?
translate /a-z0-9/ /z-a9-0/
output /invrange: :*:_dw:\n/

#    Does uniquing work?
alter (:_dw:) \
  /foo bar zappa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
translate <unique> /a-z/ /a-z/
output /unique:   :*:_dw:\n/

#    Does literal work?  Prove it.
alter (:_dw:) \
  /foo bar zappa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
translate  /a-z/ /z-a/
output /invrange: :*:_dw:\n/
alter (:_dw:) \
  /foo bar zappa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
translate <literal> /a-z/ /z-a/
output /literal:  :*:_dw:\n/

#     How about literal and unique together?
alter (:_dw:) \
  /foo bar zappaaaaa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
translate <literal unique> /a-z/ /z-a/
output /lit+uniq: :*:_dw:\n/

#      deletion?
alter (:_dw:) \
  /foo bar zappa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
translate /a-z13579/
output /deletion: :*:_dw:\n/

#      inversions of first charset?
alter (:_dw:) \
  /foo bar zappa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
translate /^a-z13579/
output /del-inv:  :*:_dw:\n/

#      inversions of second charset?
alter (:_dw:) \
  /foo bar zappa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
translate /a-z13579/ /^a-z/
translate /^a-zA-Z0-9/ /wxyz/
output /del-inv2: :*:_dw:\n/

#      source var and dest. var?
isolate (:my_src:) \
  /foo bar zappa 0123456789.,?`~!@#$%^&*()_-+= XYZZY QUICK BROWN FOX a-e/
translate [:my_src:] /a-zA-Z/ /A-Za-z/
output /srcvar:   :*:_dw:\n/
isolate (:my_dest:)
translate [:my_src:] (:my_dest:) /a-zA-Z/ /Z-Az-a/
output /src-dest: :*:my_dest:\n/