clargs <- commandArgs(trailing=TRUE) source(file.path(clargs[1], "unittest.R")) dyn.load(paste("enum_thorough", .Platform$dynlib.ext, sep="")) source("enum_thorough.R") cacheMetaData(1) ## Anonymous enums are not wrapped by the R module ## # Colours - string interface, various function signatures unittest('red', colourTest1('red')) unittest('blue', colourTest1('blue')) unittest('green', colourTest1('green')) unittest('red', colourTest2('red')) unittest('blue', colourTest2('blue')) unittest('green', colourTest2('green')) unittest('red', colourTest3('red')) unittest('blue', colourTest3('blue')) unittest('green', colourTest3('green')) unittest('red', colourTest4('red')) unittest('blue', colourTest4('blue')) unittest('green', colourTest4('green')) ## Colours - underlying integers unittest(-1, enumToInteger('red', '_colour')) unittest(0, enumToInteger('blue', '_colour')) unittest(10, enumToInteger('green', '_colour')) ######## ## enum variable, wrapped as a function ## Is initialization to 0 a "standard" myColour() ## Test setting and retrieving myColour('green') unittest('green', myColour()) ######## ## SpeedClass s <- SpeedClass() v <- "medium" unittest(v, s$speedTest1(v)) unittest(v, s$speedTest2(v)) unittest(v, s$speedTest3(v)) unittest(v, s$speedTest4(v)) unittest(v, s$speedTest5(v)) unittest(v, s$speedTest6(v)) unittest(v, s$speedTest7(v)) unittest(v, s$speedTest8(v)) ## speedTest methods not in the class unittest(v, speedTest1(v)) unittest(v, speedTest2(v)) unittest(v, speedTest3(v)) unittest(v, speedTest4(v)) # enum reference unittest(v, speedTest5(v)) ## member access s <- SpeedClass() unittest("slow", s$mySpeedtd1) # check integer value unittest(10, enumToInteger(s$mySpeedtd1, "_SpeedClass__speed")) # set and check s$mySpeedtd1 <- "lightning" unittest("lightning", s$mySpeedtd1) unittest(31, enumToInteger(s$mySpeedtd1, "_SpeedClass__speed")) ## Named anon - not wrapped nicely, but can be retrieved: unittest("NamedAnon2", namedanon_NamedAnon2_get()) unittest(0, enumToInteger(namedanon_NamedAnon1_get(), "_namedanon")) unittest(1, enumToInteger(namedanon_NamedAnon2_get(), "_namedanon")) ## Twonames v <- "TwoNames1" unittest(v, twonamesTest1(v)) unittest(v, twonamesTest2(v)) unittest(v, twonamesTest3(v)) unittest(33, enumToInteger("TwoNames3", "_twonamestag")) tt <- TwoNamesStruct() v <- "TwoNamesStruct1" unittest(v, tt$twonamesTest1(v)) unittest(v, tt$twonamesTest2(v)) unittest(v, tt$twonamesTest3(v)) ## Try the wrong name unittest(TRUE, is.na(tt$twonamesTest3("TwoNames1"))) ## Namedanonspace ## can get the values v <- namedanonspace_NamedAnonSpace2_get() unittest(v, namedanonspaceTest1(v)) unittest(v, namedanonspaceTest2(v)) unittest(v, namedanonspaceTest3(v)) unittest(v, namedanonspaceTest4(v)) ## scientists tt <- TemplateClassInt() g <- "galileo" unittest(g, tt$scientistsTest1(g)) unittest(g, tt$scientistsTest2(g)) unittest(g, tt$scientistsTest3(g)) unittest(g, tt$scientistsTest4(g)) unittest(g, tt$scientistsTest5(g)) unittest(g, tt$scientistsTest6(g)) unittest(g, tt$scientistsTest7(g)) unittest(g, tt$scientistsTest8(g)) unittest(g, tt$scientistsTest9(g)) ## This one is commented out in csharp too ## unittest(g, tt$scientistsTestA(g)) unittest(g, tt$scientistsTestB(g)) ## This one is commented out in csharp too ## unittest(g, tt$scientistsTestC(g)) unittest(g, tt$scientistsTestD(g)) unittest(g, tt$scientistsTestE(g)) unittest(g, tt$scientistsTestF(g)) unittest(g, tt$scientistsTestG(g)) unittest(g, tt$scientistsTestH(g)) unittest(g, tt$scientistsTestI(g)) # enum reference unittest(g, tt$scientistsTestJ(g)) unittest(g, scientistsTest1(g)) unittest(g, scientistsTest2(g)) unittest(g, scientistsTest3(g)) unittest(g, scientistsTest4(g)) unittest(g, scientistsTest5(g)) unittest(g, scientistsTest6(g)) unittest(g, scientistsTest7(g)) ## enum reference unittest(g, scientistsTest8(g)) tt <- TClassInt() b <- "bell" unittest(b, tt$scientistsNameTest1(b)) unittest(b, tt$scientistsNameTest2(b)) unittest(b, tt$scientistsNameTest3(b)) unittest(b, tt$scientistsNameTest4(b)) unittest(b, tt$scientistsNameTest5(b)) unittest(b, tt$scientistsNameTest6(b)) unittest(b, tt$scientistsNameTest7(b)) unittest(b, tt$scientistsNameTest8(b)) unittest(b, tt$scientistsNameTest9(b)) ## This one is commented out in csharp too ## unittest(b, tt$scientistsNameTestA(b)) unittest(b, tt$scientistsNameTestB(b)) ## This one is commented out in csharp too ## unittest(b, tt$scientistsNameTestC(b)) unittest(b, tt$scientistsNameTestD(b)) unittest(b, tt$scientistsNameTestE(b)) unittest(b, tt$scientistsNameTestF(b)) unittest(b, tt$scientistsNameTestG(b)) unittest(b, tt$scientistsNameTestH(b)) unittest(b, tt$scientistsNameTestI(b)) unittest(b, tt$scientistsNameSpaceTest1(b)) unittest(b, tt$scientistsNameSpaceTest2(b)) unittest(b, tt$scientistsNameSpaceTest3(b)) unittest(b, tt$scientistsNameSpaceTest4(b)) unittest(b, tt$scientistsNameSpaceTest5(b)) unittest(b, tt$scientistsNameSpaceTest6(b)) unittest(b, tt$scientistsNameSpaceTest7(b)) unittest(g, tt$scientistsOtherTest1(g)) unittest(g, tt$scientistsOtherTest2(g)) unittest(g, tt$scientistsOtherTest3(g)) unittest(g, tt$scientistsOtherTest4(g)) unittest(g, tt$scientistsOtherTest5(g)) unittest(g, tt$scientistsOtherTest6(g)) unittest(g, tt$scientistsOtherTest7(g)) ## Global unittest(b, scientistsNameTest1(b)) unittest(b, scientistsNameTest2(b)) unittest(b, scientistsNameTest3(b)) unittest(b, scientistsNameTest4(b)) unittest(b, scientistsNameTest5(b)) unittest(b, scientistsNameTest6(b)) unittest(b, scientistsNameTest7(b)) unittest(b, scientistsNameSpaceTest1(b)) unittest(b, scientistsNameSpaceTest2(b)) unittest(b, scientistsNameSpaceTest3(b)) unittest(b, scientistsNameSpaceTest4(b)) unittest(b, scientistsNameSpaceTest5(b)) unittest(b, scientistsNameSpaceTest6(b)) unittest(b, scientistsNameSpaceTest7(b)) unittest(b, scientistsNameSpaceTest8(b)) unittest(b, scientistsNameSpaceTest9(b)) unittest(b, scientistsNameSpaceTestA(b)) unittest(b, scientistsNameSpaceTestB(b)) unittest(b, scientistsNameSpaceTestC(b)) unittest(b, scientistsNameSpaceTestD(b)) unittest(b, scientistsNameSpaceTestE(b)) unittest(b, scientistsNameSpaceTestF(b)) unittest(b, scientistsNameSpaceTestG(b)) unittest(b, scientistsNameSpaceTestH(b)) unittest(b, scientistsNameSpaceTestI(b)) unittest(b, scientistsNameSpaceTestJ(b)) unittest(b, scientistsNameSpaceTestK(b)) unittest(b, scientistsNameSpaceTestL(b)) ## rename test v <- "eek" unittest(v, renameTest1(v)) unittest(v, renameTest2(v)) ## NewName N <- NewNameStruct() ## Only half works: unittest("kerboom", NewNameStruct_bang_get()) ## Can't put in "bang" in the call ## confirm with: ## get(".__E___OldNameStruct__enumeration") ## TreeClass T <- TreesClass() p <- "pine" unittest(p, T$treesTest1(p)) unittest(p, T$treesTest2(p)) unittest(p, T$treesTest3(p)) unittest(p, T$treesTest4(p)) unittest(p, T$treesTest5(p)) unittest(p, T$treesTest6(p)) unittest(p, T$treesTest7(p)) unittest(p, T$treesTest8(p)) unittest(p, T$treesTest9(p)) unittest(p, T$treesTestA(p)) unittest(p, T$treesTestB(p)) unittest(p, T$treesTestC(p)) unittest(p, T$treesTestD(p)) unittest(p, T$treesTestE(p)) unittest(p, T$treesTestF(p)) unittest(p, T$treesTestG(p)) unittest(p, T$treesTestH(p)) unittest(p, T$treesTestI(p)) unittest(p, T$treesTestJ(p)) unittest(p, T$treesTestK(p)) unittest(p, T$treesTestL(p)) unittest(p, T$treesTestM(p)) unittest(p, T$treesTestN(p)) unittest(p, T$treesTestO(p)) unittest(p, treesTest1(p)) unittest(p, treesTest2(p)) unittest(p, treesTest3(p)) unittest(p, treesTest4(p)) unittest(p, treesTest5(p)) unittest(p, treesTest6(p)) unittest(p, treesTest7(p)) unittest(p, treesTest8(p)) unittest(p, treesTest9(p)) unittest(p, treesTestA(p)) unittest(p, treesTestB(p)) unittest(p, treesTestC(p)) unittest(p, treesTestD(p)) unittest(p, treesTestE(p)) unittest(p, treesTestF(p)) unittest(p, treesTestG(p)) unittest(p, treesTestH(p)) unittest(p, treesTestI(p)) unittest(p, treesTestJ(p)) unittest(p, treesTestK(p)) unittest(p, treesTestL(p)) unittest(p, treesTestM(p)) unittest(p, treesTestO(p)) unittest(p, treesTestP(p)) unittest(p, treesTestQ(p)) unittest(p, treesTestR(p)) ## Hair h <- HairStruct() g <- "ginger" unittest(g, h$hairTest1(g)) unittest(g, h$hairTest2(g)) unittest(g, h$hairTest3(g)) unittest(g, h$hairTest4(g)) unittest(g, h$hairTest5(g)) unittest(g, h$hairTest6(g)) unittest(g, h$hairTest7(g)) unittest(g, h$hairTest8(g)) unittest(g, h$hairTest9(g)) unittest(g, h$hairTestA(g)) unittest(g, h$hairTestB(g)) r <- "red" unittest(r, h$colourTest1(r)) unittest(r, h$colourTest2(r)) nmA <- "NamedAnon1" unittest(nmA, h$namedanonTest1(nmA)) unittest("NamedAnonSpace2", h$namedanonspaceTest1("NamedAnonSpace2")) f <- "fir" unittest(f, h$treesGlobalTest1(f)) unittest(f, h$treesGlobalTest2(f)) unittest(f, h$treesGlobalTest3(f)) unittest(f, h$treesGlobalTest4(f)) b <- "blonde" unittest(b, hairTest1(b)) unittest(b, hairTest2(b)) unittest(b, hairTest3(b)) unittest(b, hairTest4(b)) unittest(b, hairTest5(b)) unittest(b, hairTest6(b)) unittest(b, hairTest7(b)) unittest(b, hairTest8(b)) unittest(b, hairTest9(b)) unittest(b, hairTestA(b)) unittest(b, hairTestB(b)) ## enum reference unittest(b, hairTestC(b)) unittest(b, hairTestA1(b)) unittest(b, hairTestA2(b)) unittest(b, hairTestA3(b)) unittest(b, hairTestA4(b)) unittest(b, hairTestA5(b)) unittest(b, hairTestA6(b)) unittest(b, hairTestA7(b)) unittest(b, hairTestA8(b)) unittest(b, hairTestA9(b)) unittest(b, hairTestAA(b)) unittest(b, hairTestAB(b)) ## enum reference unittest(b, hairTestAC(b)) unittest(b, hairTestB1(b)) unittest(b, hairTestB2(b)) unittest(b, hairTestB3(b)) unittest(b, hairTestB4(b)) unittest(b, hairTestB5(b)) unittest(b, hairTestB6(b)) unittest(b, hairTestB7(b)) unittest(b, hairTestB8(b)) unittest(b, hairTestB9(b)) unittest(b, hairTestBA(b)) unittest(b, hairTestBB(b)) ## enum reference unittest(b, hairTestBC(b)) f <- FirStruct() b <- "blonde" unittest(b, f$hairTestFir1(b)) unittest(b, f$hairTestFir2(b)) unittest(b, f$hairTestFir3(b)) unittest(b, f$hairTestFir4(b)) unittest(b, f$hairTestFir5(b)) unittest(b, f$hairTestFir6(b)) unittest(b, f$hairTestFir7(b)) unittest(b, f$hairTestFir8(b)) unittest(b, f$hairTestFir9(b)) unittest(b, f$hairTestFirA(b)) ## Unnamed enum instance doesn't work ## Wrapper set/get exists, but there's ## no mapping between strings and integers GlobalInstance(1) unittest(1, GlobalInstance()) ii <- Instances() ii$MemberInstance <- 1 unittest(1, ii$MemberInstance) ii <- IgnoreTest() ## Testing integer values unittest(0, enumToInteger(IgnoreTest_ignoreA_zero_get(), "_IgnoreTest__IgnoreA")) unittest(3, enumToInteger(IgnoreTest_ignoreA_three_get(), "_IgnoreTest__IgnoreA")) unittest(10, enumToInteger(IgnoreTest_ignoreA_ten_get(), "_IgnoreTest__IgnoreA")) unittest(11, enumToInteger(IgnoreTest_ignoreA_eleven_get(), "_IgnoreTest__IgnoreA")) unittest(14, enumToInteger(IgnoreTest_ignoreA_fourteen_get(), "_IgnoreTest__IgnoreA")) unittest(20, enumToInteger(IgnoreTest_ignoreA_twenty_get(), "_IgnoreTest__IgnoreA")) unittest(30, enumToInteger(IgnoreTest_ignoreA_thirty_get(), "_IgnoreTest__IgnoreA")) unittest(32, enumToInteger(IgnoreTest_ignoreA_thirty_two_get(), "_IgnoreTest__IgnoreA")) unittest(33, enumToInteger(IgnoreTest_ignoreA_thirty_three_get(), "_IgnoreTest__IgnoreA")) unittest(11, enumToInteger(IgnoreTest_ignoreB_eleven_get(), "_IgnoreTest__IgnoreB")) unittest(12, enumToInteger(IgnoreTest_ignoreB_twelve_get(), "_IgnoreTest__IgnoreB")) unittest(31, enumToInteger(IgnoreTest_ignoreB_thirty_one_get(), "_IgnoreTest__IgnoreB")) unittest(32, enumToInteger(IgnoreTest_ignoreB_thirty_two_get(), "_IgnoreTest__IgnoreB")) unittest(41, enumToInteger(IgnoreTest_ignoreB_forty_one_get(), "_IgnoreTest__IgnoreB")) unittest(42, enumToInteger(IgnoreTest_ignoreB_forty_two_get(), "_IgnoreTest__IgnoreB")) unittest(10, enumToInteger(IgnoreTest_ignoreC_ten_get(), "_IgnoreTest__IgnoreC")) unittest(12, enumToInteger(IgnoreTest_ignoreC_twelve_get(), "_IgnoreTest__IgnoreC")) unittest(30, enumToInteger(IgnoreTest_ignoreC_thirty_get(), "_IgnoreTest__IgnoreC")) unittest(32, enumToInteger(IgnoreTest_ignoreC_thirty_two_get(), "_IgnoreTest__IgnoreC")) unittest(40, enumToInteger(IgnoreTest_ignoreC_forty_get(), "_IgnoreTest__IgnoreC")) unittest(42, enumToInteger(IgnoreTest_ignoreC_forty_two_get(), "_IgnoreTest__IgnoreC")) unittest(21, enumToInteger(IgnoreTest_ignoreD_twenty_one_get(), "_IgnoreTest__IgnoreD")) unittest(22, enumToInteger(IgnoreTest_ignoreD_twenty_two_get(), "_IgnoreTest__IgnoreD")) unittest(0, enumToInteger(IgnoreTest_ignoreE_zero_get(), "_IgnoreTest__IgnoreE")) unittest(21, enumToInteger(IgnoreTest_ignoreE_twenty_one_get(), "_IgnoreTest__IgnoreE")) unittest(22, enumToInteger(IgnoreTest_ignoreE_twenty_two_get(), "_IgnoreTest__IgnoreE")) ## confirm that an ignore directive is followed: unittest(TRUE, is.na(ignoreCTest("ignoreC_eleven"))) ## repeat test unittest(1, enumToInteger(repeatTest("one"), "_RepeatSpace__repeat")) unittest(1, enumToInteger(repeatTest("initial"), "_RepeatSpace__repeat")) unittest(2, enumToInteger(repeatTest("two"), "_RepeatSpace__repeat")) unittest(3, enumToInteger(repeatTest("three"), "_RepeatSpace__repeat")) unittest(3, enumToInteger(repeatTest("llast"), "_RepeatSpace__repeat")) unittest(3, enumToInteger(repeatTest("end"), "_RepeatSpace__repeat")) ## Macro test - nothing in csharp ## Note - this enum is set up with both entries the same ## This means that mapping back from the integer value to the ## string value isn't unique, so asking for "ABCD2" will return ## a string of "ABCD" unittest("ABCD", enumWithMacroTest("ABCD")) ## Different types unittest(10, enumToInteger(differentTypesTest("typeint"), "_DifferentSpace__DifferentTypes")) unittest(0, enumToInteger(differentTypesTest("typeboolfalse"), "_DifferentSpace__DifferentTypes")) unittest(1, enumToInteger(differentTypesTest("typebooltrue"), "_DifferentSpace__DifferentTypes")) unittest(2, enumToInteger(differentTypesTest("typebooltwo"), "_DifferentSpace__DifferentTypes")) unittest(utf8ToInt('C'), enumToInteger(differentTypesTest("typechar"), "_DifferentSpace__DifferentTypes")) unittest(utf8ToInt('D'), enumToInteger(differentTypesTest("typedefaultint"), "_DifferentSpace__DifferentTypes")) unittest(utf8ToInt('A') + 1, enumToInteger(differentTypesTest("typecharcompound"), "_DifferentSpace__DifferentTypes")) ## Global different types ## Test uses an anonymous type so the string mapping ## framework doesn't exist.
Generated by dwww version 1.15 on Tue Jul 2 00:36:17 CEST 2024.