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