mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2026-06-18 21:58:34 -04:00
Message unpacking fixes and improved test coverage
Fix packjt truncation error and text3 null detection. Add additional test messages. Add check message capability to jt65code and jt9code so that comparison confirms expected output. jt65code and jt9code now should always have identical outputs..should allow for automatic regression testing. Thanks to Mike, W9MDB, for this contribution. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7649 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
+84
-47
@@ -1,47 +1,84 @@
|
||||
program jt9code
|
||||
|
||||
! Generate simulated data for testing of WSJT-X
|
||||
|
||||
character msg*22,decoded*22,bad*1,msgtype*13
|
||||
integer*4 i4tone(85) !Channel symbols (values 0-8)
|
||||
include 'testmsg.f90'
|
||||
include 'jt9sync.f90'
|
||||
|
||||
nargs=iargc()
|
||||
if(nargs.ne.1) then
|
||||
print*,'Usage: jt9code "message"'
|
||||
print*,' jt9code -t'
|
||||
go to 999
|
||||
endif
|
||||
|
||||
call getarg(1,msg)
|
||||
nmsg=1
|
||||
if(msg(1:2).eq."-t") nmsg=NTEST
|
||||
|
||||
write(*,1010)
|
||||
1010 format(" Message Decoded Err? Type"/ &
|
||||
74("-"))
|
||||
do imsg=1,nmsg
|
||||
if(nmsg.gt.1) msg=testmsg(imsg)
|
||||
call fmtmsg(msg,iz) !To upper case, collapse multiple blanks
|
||||
ichk=0
|
||||
call gen9(msg,ichk,decoded,i4tone,itype) !Encode message into tone #s
|
||||
|
||||
msgtype=""
|
||||
if(itype.eq.1) msgtype="Std Msg"
|
||||
if(itype.eq.2) msgtype="Type 1 prefix"
|
||||
if(itype.eq.3) msgtype="Type 1 suffix"
|
||||
if(itype.eq.4) msgtype="Type 2 prefix"
|
||||
if(itype.eq.5) msgtype="Type 2 suffix"
|
||||
if(itype.eq.6) msgtype="Free text"
|
||||
|
||||
bad=" "
|
||||
if(decoded.ne.msg) bad="*"
|
||||
write(*,1020) imsg,msg,decoded,bad,itype,msgtype
|
||||
1020 format(i2,'.',2x,a22,2x,a22,3x,a1,i3,": ",a13)
|
||||
enddo
|
||||
|
||||
if(nmsg.eq.1) write(*,1030) i4tone
|
||||
1030 format(/'Channel symbols'/(30i2))
|
||||
|
||||
999 end program jt9code
|
||||
program jt9code
|
||||
|
||||
! Generate simulated data for testing of WSJT-X
|
||||
|
||||
character*22 msg,msgchk,msg0,msg1,decoded,cok*3,bad*1,msgtype*10,expected
|
||||
integer*4 i4tone(85) !Channel symbols (values 0-8)
|
||||
include 'testmsg.f90'
|
||||
include 'jt9sync.f90'
|
||||
|
||||
nargs=iargc()
|
||||
if(nargs.ne.1) then
|
||||
print*,'Usage: jt9code "message"'
|
||||
print*,' jt9code -t'
|
||||
go to 999
|
||||
endif
|
||||
|
||||
call getarg(1,msg)
|
||||
nmsg=1
|
||||
if(msg(1:2).eq."-t") then
|
||||
if (NTEST+5 > MAXTEST) then
|
||||
write(*,*) "NTEST exceed MAXTEST"
|
||||
endif
|
||||
testmsg(NTEST+1)="KA1ABC WB9XYZ EN34 OOO"
|
||||
testmsg(NTEST+2)="KA1ABC WB9XYZ OOO"
|
||||
testmsg(NTEST+3)="RO"
|
||||
testmsg(NTEST+4)="RRR"
|
||||
testmsg(NTEST+5)="73"
|
||||
testmsgchk(NTEST+1)="KA1ABC WB9XYZ EN34 OOO"
|
||||
testmsgchk(NTEST+2)="KA1ABC WB9XYZ OOO"
|
||||
testmsgchk(NTEST+3)="RO"
|
||||
testmsgchk(NTEST+4)="RRR"
|
||||
testmsgchk(NTEST+5)="73"
|
||||
nmsg=NTEST+5
|
||||
endif
|
||||
|
||||
write(*,1010)
|
||||
1010 format(" Message Decoded Err? Type Expected"/ &
|
||||
76("-"))
|
||||
do imsg=1,nmsg
|
||||
if(nmsg.gt.1) then
|
||||
msg=testmsg(imsg)
|
||||
msgchk=testmsgchk(imsg)
|
||||
endif
|
||||
call fmtmsg(msg,iz) !To upper case, collapse multiple blanks
|
||||
msg0=msg
|
||||
ichk=0
|
||||
call chkmsg(msg,cok,nspecial,flip) !See if it includes "OOO" report
|
||||
msg1=msg !Message without "OOO"
|
||||
|
||||
if(nspecial.gt.0) then !or is a shorthand message
|
||||
if(nspecial.eq.2) decoded="RO"
|
||||
if(nspecial.eq.3) decoded="RRR"
|
||||
if(nspecial.eq.4) decoded="73"
|
||||
itype=-1
|
||||
msgtype="Shorthand"
|
||||
go to 10
|
||||
endif
|
||||
|
||||
call gen9(msg,ichk,decoded,i4tone,itype) !Encode message into tone #s
|
||||
|
||||
msgtype=""
|
||||
if(itype.eq.1) msgtype="Std Msg"
|
||||
if(itype.eq.2) msgtype="Type 1 pfx"
|
||||
if(itype.eq.3) msgtype="Type 1 sfx"
|
||||
if(itype.eq.4) msgtype="Type 2 pfx"
|
||||
if(itype.eq.5) msgtype="Type 2 sfx"
|
||||
if(itype.eq.6) msgtype="Free text"
|
||||
|
||||
if(cok.eq."OOO") decoded(20:22)=cok
|
||||
call fmtmsg(decoded,iz)
|
||||
|
||||
10 bad=" "
|
||||
expected = 'EXACT'
|
||||
if (msg0.ne.msgchk) expected = 'TRUNCATED'
|
||||
if (nmsg.eq.1) expected = 'UNKNOWN'
|
||||
if(decoded.ne.msgchk) bad="*"
|
||||
write(*,1020) imsg,msg0,decoded,bad,itype,msgtype,expected
|
||||
1020 format(i2,'.',1x,a22,1x,a22,1x,a1,i3,":",a10,2x,a22)
|
||||
enddo
|
||||
|
||||
if(nmsg.eq.1) write(*,1030) i4tone
|
||||
1030 format(/'Channel symbols'/(30i2))
|
||||
|
||||
999 end program jt9code
|
||||
|
||||
Reference in New Issue
Block a user