judge_system 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3f505eaee971526fa46596b7e58f0f7f5c55341e
4
- data.tar.gz: ebd03907d6da971f3bbc69cf314c2ea018f314f2
3
+ metadata.gz: 7f17bd691aafc0327392df7b6ccd019c943b18e3
4
+ data.tar.gz: 72e7aa6563ac2466f5fb379f2b611991e7a7081f
5
5
  SHA512:
6
- metadata.gz: 695713b0782ef6220f85393871b4bba4bcbdd41231d104369ac3dfdbb713ae35ee85816d964e433b774283015898bb58340e725e3d94bb2ba6a4c861fdf45c8b
7
- data.tar.gz: f91f6cd62cde9dee6a9484a916333008f19d940f0ca537685f5498069a222dcc41e700cf919c68a97581b7a6cf95480c21e3a48aa372d7972c3102ea24339f30
6
+ metadata.gz: c36e4f011f51c1dbc84a11c4747d48709d83d2e78b1efdfb63f5c04a8b625227c4d750761d8343269f3053232d30bd0bd43778b169892a21b8d7b185e2ccbd86
7
+ data.tar.gz: 7f58b8f5b213d9b27c5a90bed6657e3646a0794c2c636d96e34b7e76dc5b1aeb72dd5c3ecafd99649903ab20cc6d03a6da6bfbe5f3b5e4e5895afcc8ba5c8b84
data/README.md CHANGED
@@ -1,10 +1,11 @@
1
+ [![wercker status](https://app.wercker.com/status/0964573b38729ce98909559e3779cca5/s/master "wercker status")](https://app.wercker.com/project/byKey/0964573b38729ce98909559e3779cca5)
1
2
  # JudgeSystem
2
3
 
3
4
  Judge_system is a compile and judge system for online judge.
4
5
  This system work on [melpon/wandbox](https://github.com/melpon/wandbox).
5
6
  That means you don't have to concern about dangerous codes if you use judge_system.
6
7
  Judge_system returns four results ('AC', 'WA', 'RE', 'TLE').
7
- Now, it can compile c, c++, ruby, go.
8
+ Now, it can compile c, c++, ruby, go, python3.
8
9
 
9
10
  ## Installation
10
11
 
@@ -29,7 +30,7 @@ require 'judge_system'
29
30
 
30
31
  JudgeSystem.judge_result lang: (string text), code: (string text), answer: (string text), stdin: (string text), time: (num sec)
31
32
 
32
- #Lang is the extension of languages (example: c is 'c', c++ is 'cpp', ruby is 'rb', go is 'go').
33
+ #Lang is the extension of languages (example: c is 'c', c++ is 'cpp', ruby is 'rb', go is 'go', python3 is 'py').
33
34
  #You can't use more than 1M byte code, input, answer.
34
35
 
35
36
  ```
@@ -8,7 +8,7 @@ int main(int argc, char const *argv[])
8
8
  ofs.open("Main.java",ios::binary);
9
9
  string buf;
10
10
  while(getline(cin,buf)){
11
- if(buf=="<$><*><$><*><$><*><$><*><$><*><$><*><$>")break;
11
+ if(buf=="<$><*><$>")break;
12
12
  ofs<<buf<<endl;
13
13
  }
14
14
  ofs.close();
@@ -25,54 +25,64 @@ int main(int argc, char const *argv[])
25
25
 
26
26
 
27
27
 
28
- /*import java.util.*;
28
+ /*
29
+ import java.util.*;
29
30
  import java.io.*;
30
31
  class Career{
31
32
  public static void main(String[] args){
32
33
 
33
- Scanner sc = null;
34
- File code = null;
35
- PrintWriter pw = null;
36
- File stdin = null;
37
- PrintWriter pw2 = null;
38
- String str = null;
39
- BufferedReader br = null;
40
- Process compile = null;
41
- Runtime r = null;
42
- InputStream run = null;
34
+ BufferedReader sc;
35
+ File code;
36
+ File stdin;
37
+ FileWriter pw1;
38
+ FileWriter pw2;
39
+ String str;
40
+ BufferedReader br1;
41
+ BufferedReader br2;
42
+ Runtime r;
43
+ Runtime rr;
44
+ InputStream compile;
45
+ InputStream run;
43
46
 
44
47
  try{
45
- sc = new Scanner(System.in);
48
+ sc = new BufferedReader(new InputStreamReader(System.in));
46
49
  code = new File("Main.java");
50
+ code.createNewFile();
51
+ code = new File("Main.java");
52
+ stdin = new File("test.in");
53
+ stdin.createNewFile();
47
54
  stdin = new File("test.in");
48
- pw = new PrintWriter(new BufferedWriter(new FileWriter(code)));
49
- pw2 = new PrintWriter(new BufferedWriter(new FileWriter(stdin)));
55
+ pw1 = new FileWriter(code, true);
56
+ pw2 = new FileWriter(stdin, true);
50
57
  while(true){
51
- str = sc.next();
52
- if(str.equals("<$><*><$><*><$><*><$><*><$><*><$><*><$>")){
58
+ str = sc.readLine();
59
+ if(str.equals("<$><*><$>")){
53
60
  break;
54
61
  }
55
- pw.println(str);
62
+ pw1.write(str);
56
63
  }
57
- code.createNewFile();
58
-
59
- while(sc.hasNext()){
60
- str = sc.next();
61
- pw2.println(str);
64
+ pw1.close();
65
+
66
+
67
+ while((str = sc.readLine()) != null){
68
+ pw2.write(str);
62
69
  }
63
- stdin.createNewFile();
64
-
70
+ pw2.close();
65
71
  r = Runtime.getRuntime();
66
- compile = r.exec("/opt/wandbox/openjdk-head/bin/javac Main.java");
67
- compile.waitFor();
68
- run = r.exec("/usr/bin/time -f '%U' /opt/wandbox/openjdk-head/bin/java Main < test.in").getInputStream();
69
- br = new BufferedReader(new InputStreamReader(run));
70
- String line;
71
- while ((line = br.readLine()) != null) {
72
- System.out.println(line);
72
+ rr = Runtime.getRuntime();
73
+ compile = r.exec("/opt/wandbox/openjdk-head/bin/javac Main.java").getInputStream();
74
+ run = rr.exec("/opt/wandbox/openjdk-head/bin/java Main < test.in").getInputStream();
75
+ br1 = new BufferedReader(new InputStreamReader(compile));
76
+ br2 = new BufferedReader(new InputStreamReader(run));
77
+ while ((str = br1.readLine()) != null) {
78
+ System.out.println(str);
79
+ }
80
+ while ((str = br2.readLine()) != null) {
81
+ System.out.println(str);
73
82
  }
74
83
  }catch(Exception e ){
75
84
  e.printStackTrace();
76
85
  }
77
86
  }
78
- }*/
87
+ }
88
+ */
@@ -0,0 +1,28 @@
1
+ #include <iostream>
2
+ #include <fstream>
3
+ using namespace std;
4
+
5
+ char command[1024];
6
+
7
+ int main(int argc, char const *argv[])
8
+ {
9
+ ofstream ofs;
10
+ ofs.open("main.py",ios::binary);
11
+ string buf;
12
+ string splitter="<$><*><$>";
13
+ string time;
14
+ while(getline(cin,buf)){
15
+ if(buf==splitter)break;
16
+ ofs<<buf<<endl;
17
+ }
18
+ ofs.close();
19
+ ofs.open("test.in",ios::binary);
20
+ while(getline(cin,buf)){
21
+ if(buf==splitter)break;
22
+ ofs<<buf<<endl;
23
+ }
24
+ ofs.close();
25
+ cin>>time;
26
+ system(("timeout -s 9 " + time + " /opt/wandbox/cpython-head/bin/python3 main.py < test.in").c_str());
27
+ return 0;
28
+ }
@@ -1,3 +1,3 @@
1
1
  module JudgeSystem
2
- VERSION = "1.3.0"
2
+ VERSION = "1.4.0"
3
3
  end
data/lib/judge_system.rb CHANGED
@@ -29,7 +29,7 @@ module JudgeSystem
29
29
  sys = File.open("#{path}/compile_systems/#{lang}_system.cpp", "r").read
30
30
  data = nil
31
31
  spliter = "\n<$><*><$>\n"
32
- stdin = code + spliter + input + spliter + time.to_s
32
+ stdin = code + spliter + input + spliter + ("%f" % time)
33
33
  begin
34
34
  data = compile( compiler: "gcc-head", code: sys, stdin: stdin )
35
35
  rescue
data/wercker.yml ADDED
@@ -0,0 +1,17 @@
1
+ # http://devcenter.wercker.com/docs/services/postgresql.html
2
+ box: ruby
3
+ # - mongo
4
+ # http://devcenter.wercker.com/docs/services/mongodb.html
5
+
6
+ # This is the build pipeline. Pipelines are the core of wercker
7
+ # Read more about pipelines on our dev center
8
+ # http://devcenter.wercker.com/docs/pipelines/index.html
9
+ build:
10
+ # Steps make up the actions in your pipeline
11
+ # Read more about steps on our dev center:
12
+ # http://devcenter.wercker.com/docs/steps/index.html
13
+ steps:
14
+ - bundle-install
15
+ - script:
16
+ name: rspec
17
+ code: bundle exec rspec
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: judge_system
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - getty104
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-03-25 00:00:00.000000000 Z
11
+ date: 2017-03-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -75,10 +75,12 @@ files:
75
75
  - lib/compile_systems/cpp_system.cpp
76
76
  - lib/compile_systems/go_system.cpp
77
77
  - lib/compile_systems/java_system.cpp
78
+ - lib/compile_systems/py_system.cpp
78
79
  - lib/compile_systems/rb_system.cpp
79
80
  - lib/judge_system.rb
80
81
  - lib/judge_system/version.rb
81
82
  - test.rb
83
+ - wercker.yml
82
84
  homepage: https://github.com/getty104/judge_system
83
85
  licenses:
84
86
  - MIT