From ef599f1ba0b8740fe43a786ffb85aae9c477182d Mon Sep 17 00:00:00 2001 From: suxunbin Date: Sun, 26 Nov 2017 16:22:32 +0800 Subject: [PATCH] Add: add a test example using Java API --- api/http/cpp/test/Makefile | 7 ++ api/http/cpp/test/test.cpp | 69 +++++++++++++ api/http/java/example/Benchmark.java | 144 +++++++++++++++++++++++++++ 3 files changed, 220 insertions(+) create mode 100644 api/http/cpp/test/Makefile create mode 100644 api/http/cpp/test/test.cpp create mode 100644 api/http/java/example/Benchmark.java diff --git a/api/http/cpp/test/Makefile b/api/http/cpp/test/Makefile new file mode 100644 index 0000000..b0836cb --- /dev/null +++ b/api/http/cpp/test/Makefile @@ -0,0 +1,7 @@ +CC=g++ -std=c++11 +test: test.o + $(CC) -o test test.o +test.o: test.cpp + $(CC) -c test.cpp -o test.o +clean: + rm -rf *.o test diff --git a/api/http/cpp/test/test.cpp b/api/http/cpp/test/test.cpp new file mode 100644 index 0000000..20ee4fd --- /dev/null +++ b/api/http/cpp/test/test.cpp @@ -0,0 +1,69 @@ +#include +#include +#include +using namespace std; +string encode(string& s) +{ + string ret; + unsigned char *ptr = (unsigned char *)s.c_str(); + ret.reserve(s.length()); + + for(int i=0;i=48) && (int(ptr[i])<=57)) + ret += ptr[i]; + else if((int(ptr[i])>=65) && (int(ptr[i])<=90)) + ret += ptr[i]; + else if((int(ptr[i])>=97) && (int(ptr[i])<=122)) + ret += ptr[i]; + else if(int(ptr[i])==32) + ret += '+'; + else + { + char buf[5]; + memset(buf,0,5); + snprintf(buf,5,"%%%X",ptr[i]); + ret.append(buf); + } + } + return ret; +} +string decode(string& s) +{ + string ret; + char ch; + int ii; + for(size_t i = 0; i < s.length(); ++i) + { + if(int(s[i]) == 37) + { + sscanf(s.substr(i+1,2).c_str(), "%x", &ii); + ch = static_cast(ii); + ret += ch; + i = i + 2; + } + else if(s[i] == '+') + { + ret += ' '; + } + else + { + ret += s[i]; + } + } + return (ret); +} + +int main() +{ + string a; + cin >> a; + string b=encode(a); + cout< ." + +"?v0 ." + +"?v0 ." + +"}"; + spq[1] = "select ?v0 where" + +"{" + +"?v0 ." + +"}"; + spq[2] = "select ?v2 where" + +"{" + +" ?v2 ." + +"}"; + spq[3] = "select ?v0 ?v2 where" + +"{" + +"?v0 ?v2 ." + +"}"; + spq[4] = "select ?v0 ?v1 ?v2 where" + +"{" + +"?v0 ?v2 ." + +"?v1 ?v2 ." + +"}"; + spq[5] = "select ?v0 ?v1 ?v2 ?v3 where" + +"{" + +"?v0 ?v1 ." + +"?v0 ?v2 ." + +"?v0 ?v3 ." + +"}"; + //spq[6] = "select ?v0 ?v1 ?v2 ?v3 ?v4 ?v5 ?v6 ?v7 ?v8 ?v9 where" + // +"{" + // +"?v0 ?v1 ." + // +"?v0 ?v2 ." + // +"?v0 ?v3 ." + // +"?v0 ?v4 ." + // +"?v0 ?v5 ." + // +"?v6 ?v7 ." + // +"?v6 ?v8 ." + // +"?v6 ?v5 ." + // +"?v6 ?v3 ." + // +"?v6 ?v9 ." + // +"}"; + int[] result = {10, 14, 14, 199424, 33910, 1039}; + int tnum = 6; + tnum = 100; + MyThread[] qt = new MyThread[tnum]; + for(int i = 0; i < tnum; ++i) + { + qt[i] = new MyThread(i, gc, spq[i%6], result[i%6]); + qt[i].start(); + } + for(int i = 0; i < tnum; ++i) + { + try { + qt[i].join(); + } + catch(InterruptedException e) { + e.printStackTrace(); + } + } + //gc.unload("dbpedia"); + //double accuracy = MyThread.cnum / tnum; + try{ + File f = new File("result/correctness.txt"); + DataOutputStream of = new DataOutputStream(new FileOutputStream(f)); + if (MyThread.correctness == true) + of.writeBytes("The results are correct!"); + else + of.writeBytes("The results exist errors!"); + of.close(); + } + catch(IOException e) { + e.printStackTrace(); + } + } +}