chargrp.sa
Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
class TEST_CHAR_GROUP
class TEST_CHAR_GROUP is
-- This is a test program to test the character group class. Note that
-- it is not portable for simplicity in building a local library.
-- Version 1.0 Oct 97. Copyright K Hopper, U of Waikato
-- Development History
-- -------------------
-- Date Who By Detail
-- ---- ------ ------
-- 13 Oct 97 kh Original
include TEST ;
const File_Name : STR := "group-test" ;
main is
class_name("CHAR_GROUP") ;
group : CHAR_GROUP := CHAR_GROUP::create ;
lib : LIBCHARS := LIBCHARS::default ;
if void(group) then
return
end ;
-- Insert a few ranges
group := group.insert(RANGE::create(0,31)) ;
group := group.insert(RANGE::create(128,159)) ;
-- test some membership values
test("contains(0)",
group.contains(CHAR_CODE::create(0,lib)).str,true.str) ;
test("contains(31)",
group.contains(CHAR_CODE::create(31,lib)).str,true.str) ;
test("contains(32)",
group.contains(CHAR_CODE::create(32,lib)).str,false.str) ;
test("contains(127)",
group.contains(CHAR_CODE::create(127,lib)).str,false.str) ;
test("contains(128)",
group.contains(CHAR_CODE::create(128,lib)).str,true.str) ;
test("contains(159)",
group.contains(CHAR_CODE::create(159,lib)).str,true.str) ;
test("contains(160)",
group.contains(CHAR_CODE::create(160,lib)).str,false.str) ;
-- now write to a file, read and do test comparisons
fyle : BIN_FILE := BIN_FILE::open_for_write(File_Name) ;
if void(fyle) then
fyle := BIN_FILE::create_for_write(File_Name) ;
if void(fyle) then
raise File_Name
end ;
end ;
group.write(fyle) ;
fyle.close ;
-- now readfrom it!
fyle := BIN_FILE::open_for_read(File_Name) ;
test("read " + File_Name, ~void(fyle),true.str) ;
if void(fyle) then
return
end ;
cursor : BIN_CURSOR := fyle.buffer.binstr.cursor ;
fyle.close ;
read_group : CHAR_GROUP := CHAR_GROUP::build(cursor) ;
loc_code : CHAR_CODE := CHAR_CODE::create(0,lib) ;
test("contains(0) equality",group.contains(loc_code).str,
read_group.contains(loc_code).str) ;
loc_code := CHAR_CODE::create(31,lib) ;
test("contains(31) equality",group.contains(loc_code).str,
read_group.contains(loc_code).str) ;
loc_code := CHAR_CODE::create(32,lib) ;
test("contains(32) equality",group.contains(loc_code).str,
read_group.contains(loc_code).str) ;
loc_code := CHAR_CODE::create(127,lib) ;
test("contains(127) equality",group.contains(loc_code).str,
read_group.contains(loc_code).str) ;
loc_code := CHAR_CODE::create(128,lib) ;
test("contains(128) equality",group.contains(loc_code).str,
read_group.contains(loc_code).str) ;
loc_code := CHAR_CODE::create(159,lib) ;
test("contains(159) equality",group.contains(loc_code).str,
read_group.contains(loc_code).str) ;
loc_code := CHAR_CODE::create(160,lib) ;
test("contains(160) equality",group.contains(loc_code).str,
read_group.contains(loc_code).str) ;
-- finally discard the test file!
cwd : DIRECTORY := DIRECTORY::current ;
cwd.delete(File_Name) ;
finish
end ;
end ; -- TEST_CHAR_GROUP