summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2020-01-06 19:49:46 -0500
committerrsiddharth <s@ricketyspace.net>2020-04-17 20:56:36 -0400
commit0cb98cf1fd7368c2f03821f62f5ab4e9cf07613e (patch)
treedf6c5b87288a3d56fdbd5315e89235ae163bce82
parentc4b34755401eae260c5090588db056b2a2ad49ce (diff)
nserver: protocol.h: Update sssample.
* nserver/src/protocol.c (sssample): Return mean on success. * nserver/src/protocol.h (sssample): Change return data type to double. * nserver/tests/protocol_tests.c (test_sssample): Update test.
-rw-r--r--nserver/src/protocol.c7
-rw-r--r--nserver/src/protocol.h2
-rw-r--r--nserver/tests/protocol_tests.c30
3 files changed, 21 insertions, 18 deletions
diff --git a/nserver/src/protocol.c b/nserver/src/protocol.c
index aee10c6..1a388c3 100644
--- a/nserver/src/protocol.c
+++ b/nserver/src/protocol.c
@@ -64,7 +64,7 @@ int ssdelete(char *key)
return -1;
}
-int sssample(char *key, double s)
+double sssample(char *key, double s)
{
check(hash != NULL, "hash not initialized");
@@ -79,7 +79,10 @@ int sssample(char *key, double s)
// 3. sample!
Stats_sample(st, s);
- return 0;
+ // 4. get mean.
+ double m = Stats_mean(st);
+
+ return m;
error:
return -1;
}
diff --git a/nserver/src/protocol.h b/nserver/src/protocol.h
index 921640c..20fb24a 100644
--- a/nserver/src/protocol.h
+++ b/nserver/src/protocol.h
@@ -10,7 +10,7 @@
int sscreate(char *key);
int ssdelete(char *key);
-int sssample(char *key, double s);
+double sssample(char *key, double s);
double ssmean(char *key);
char *ssdump(char *key);
char *sslist();
diff --git a/nserver/tests/protocol_tests.c b/nserver/tests/protocol_tests.c
index 8309686..146fc08 100644
--- a/nserver/tests/protocol_tests.c
+++ b/nserver/tests/protocol_tests.c
@@ -16,28 +16,28 @@ char *test_sscreate()
char *test_sssample()
{
- int rc = 0;
+ double mean = 0;
- rc = sssample("crimson", 3);
- mu_assert(rc == 0, "sssample failed 0");
+ mean = sssample("crimson", 3);
+ mu_assert(mean == 3.0, "sssample failed 0");
- rc = sssample("crimson", 9);
- mu_assert(rc == 0, "sssample failed 1");
+ mean = sssample("crimson", 9);
+ mu_assert(mean == 6.0, "sssample failed 1");
- rc = sssample("crimson", 12);
- mu_assert(rc == 0, "sssample failed 2");
+ mean = sssample("crimson", 12);
+ mu_assert(mean == 8.0, "sssample failed 2");
- rc = sssample("/vermilion", 20);
- mu_assert(rc == 0, "sssample failed 3");
+ mean = sssample("/vermilion", 20);
+ mu_assert(mean == 20.0, "sssample failed 3");
- rc = sssample("/vermilion", 27);
- mu_assert(rc == 0, "sssample failed 4");
+ mean = sssample("/vermilion", 27);
+ mu_assert(mean == 23.5, "sssample failed 4");
- rc = sssample("/vermilion", 4);
- mu_assert(rc == 0, "sssample failed 5");
+ mean = sssample("/vermilion", 4);
+ mu_assert(mean == 17.0, "sssample failed 5");
- rc = sssample("/ruby", 48);
- mu_assert(rc == -1, "sssample failed 6");
+ mean = sssample("/ruby", 48);
+ mu_assert(mean == -1, "sssample failed 6");
return NULL;
}