changeset 683:9aeb836a99aa

Moar work.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 16 Apr 2013 15:56:11 +0300
parents 34064af037fd
children dae4db2512c4
files tests/evaltest.c
diffstat 1 files changed, 12 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/tests/evaltest.c	Tue Apr 16 15:31:56 2013 +0300
+++ b/tests/evaltest.c	Tue Apr 16 15:56:11 2013 +0300
@@ -3,7 +3,8 @@
 #include "dmargs.h"
 
 
-BOOL    optBenchmark = FALSE;
+BOOL    optBenchmark = FALSE,
+        optFloor = FALSE;
 char *  optFormula = "";
 
 
@@ -12,7 +13,8 @@
     { 0, '?', "help",       "Show this help", OPT_NONE },
     { 1, 'v', "verbose",    "Be more verbose", OPT_NONE },
     { 2, 'b', "benchmark",  "Run in benchmark mode", OPT_NONE },
-    { 3, 'f', "formula",    "Next argument is the formula", OPT_ARGREQ },
+    { 3, 'e', "expression", "Next argument is the expression/formula", OPT_ARGREQ },
+    { 4, 'f', "floor",      "Clamp/floor the result value", OPT_NONE },
 };
 
 const int optListN = sizeof(optList) / sizeof(optList[0]);
@@ -20,7 +22,7 @@
 
 void argShowHelp()
 {
-    dmPrintBanner(stdout, dmProgName, "[options] [-f] '<formula>'");
+    dmPrintBanner(stdout, dmProgName, "[options] [-e] '<formula>'");
     dmArgsPrintHelp(stdout, optList, optListN);
 }
 
@@ -46,6 +48,10 @@
         optFormula = optArg;
         break; 
 
+    case 4:
+        optFloor = TRUE;
+        break;
+
     default:
         dmError("Unknown option '%s'.\n", currArg);
         return FALSE;
@@ -69,9 +75,6 @@
     DMValue result, t, f = 44100.0f;
     int ret;
 
-//    dmVerbosity = 2;
-//    optFormula = "-pi * -2";
-
     dmInitProg("evaltest", "evaltest", "0.1", NULL, NULL);
 
     // Parse arguments
@@ -80,9 +83,11 @@
         exit(1);
 
 
+    // Register some variables
     dm_eval_add_var(ev, "t", &t);
     dm_eval_add_var(ev, "f", &f);
 
+
     // Parse expression
     ret = dm_eval_parse_expr(ev, optFormula, &parsed);
     dmMsg(1, "parse ret=%d\n", ret);
@@ -119,7 +124,7 @@
     else
     {
         ret = dm_eval_exec(ev, ordered, &result);
-        printf("%1.5f\n", result);
+        printf("%1.5f\n", optFloor ? (int) result : result);
     }
 
     dmMsg(1, "eval ret=%d\n", ret);