diff --git a/SMILEBASIC/TEST.txt b/SMILEBASIC/TEST.txt index 203a13e..61e4ac3 100644 --- a/SMILEBASIC/TEST.txt +++ b/SMILEBASIC/TEST.txt @@ -1,3 +1,27 @@ +ASSERT__ FLOOR(0.5)==0, "FLOOR" +ASSERT__ FLOOR(1)==1, "FLOOR" +ASSERT__ FLOOR(1.5)==1, "FLOOR" +ASSERT__ CEIL(0.5)==1, "CEIL" +ASSERT__ CEIL(1)==1, "CEIL" +ASSERT__ CEIL(1.25)==2, "CEIL" +ASSERT__ CEIL(1.5)==2, "CEIL" +ASSERT__ ROUND(0.5)==1, "ROUND" +ASSERT__ ROUND(1)==1, "ROUND" +ASSERT__ ROUND(1.25)==1, "ROUND" +ASSERT__ ROUND(1.5)==2, "ROUND" + +ASSERT__ FLOOR(-0.5)==-1, "FLOOR" +ASSERT__ FLOOR(-1)==-1, "FLOOR" +ASSERT__ FLOOR(-1.5)==-2, "FLOOR" +ASSERT__ CEIL(-0.5)==-0, "CEIL" +ASSERT__ CEIL(-1)==-1, "CEIL" +ASSERT__ CEIL(-1.25)==-1, "CEIL" +ASSERT__ CEIL(-1.5)==-1, "CEIL" +ASSERT__ ROUND(-0.5)==-1, "ROUND" +ASSERT__ ROUND(-1)==-1, "ROUND" +ASSERT__ ROUND(-1.25)==-1, "ROUND" +ASSERT__ ROUND(-1.5)==-2, "ROUND" + ASSERT__ SUBST$("0123456789",0,"B")=="B","SUBST$" ASSERT__ SUBST$("0123456789",0,4,"B")=="B456789","SUBST$" ASSERT__ SUBST$("",0,4,"B")=="B","SUBST$" diff --git a/SMILEBASIC/builtinfunctions.d b/SMILEBASIC/builtinfunctions.d index 09c1f9e..3fe71ee 100644 --- a/SMILEBASIC/builtinfunctions.d +++ b/SMILEBASIC/builtinfunctions.d @@ -242,6 +242,14 @@ class BuiltinFunction { return val.floor; } + static double ROUND(double val) + { + return val.round; + } + static double CEIL(double val) + { + return val.ceil; + } static wstring MID(wstring str, int i, int len) { if(i + len > str.length) diff --git a/SMILEBASIC/petitcomputer.d b/SMILEBASIC/petitcomputer.d index edf104b..858e31f 100644 --- a/SMILEBASIC/petitcomputer.d +++ b/SMILEBASIC/petitcomputer.d @@ -735,12 +735,12 @@ class PetitComputer //とりあえず auto parser = new Parser( //readText("./SYS/GAME6TALK.TXT").to!wstring - readText("./SYS/GAME2RPG.TXT").to!wstring + //readText("./SYS/GAME2RPG.TXT").to!wstring //readText("./SYS/GAME1DOTRC.TXT").to!wstring //readText(input("LOAD PROGRAM:", true).to!string).to!wstring //readText("./SYS/EX1TEXT.TXT").to!wstring //readText("FIZZBUZZ.TXT").to!wstring - //readText("TEST.TXT").to!wstring + readText("TEST.TXT").to!wstring /*"?ABS(-1) LOCATE 0,10 COLOR 5