Description:
merge to java
Commit status:
[Not Reviewed]
References:
merge java
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r404:e5811929f1d4 - - 1 file changed: 7 inserted, 2 deleted

@@ -82,104 +82,109
82 82 File.delete(testdata_filename)
83 83
84 84 return File.dirname(files[0])
85 85 end
86 86
87 87 def save_testdata_file(tempfile)
88 88 ext = TestdataImporter.long_ext(tempfile.original_filename)
89 89 testdata_filename = File.join(Dir.tmpdir,"#{@problem.name}#{ext}")
90 90
91 91 return nil if tempfile==""
92 92
93 93 if tempfile.instance_of?(Tempfile)
94 94 tempfile.close
95 95 FileUtils.move(tempfile.path,testdata_filename)
96 96 else
97 97 File.open(testdata_filename, "wb") do |f|
98 98 f.write(tempfile.read)
99 99 end
100 100 end
101 101
102 102 return testdata_filename
103 103 end
104 104
105 105 def import_test_pairs(dirname)
106 106 test_num = 1
107 107 while FileTest.exists? "#{dirname}/#{test_num}.in"
108 108 in_filename = "#{dirname}/#{test_num}.in"
109 109 sol_filename = "#{dirname}/#{test_num}.sol"
110 110
111 111 break if not FileTest.exists? sol_filename
112 112
113 113 test_pair = TestPair.new(:input => open(in_filename).read,
114 114 :solution => open(sol_filename).read,
115 115 :problem => @problem)
116 116 break if not test_pair.save
117 117
118 118 test_num += 1
119 119 end
120 120 return test_num > 1
121 121 end
122 122
123 123 def import_problem_description(dirname)
124 124 html_files = Dir["#{dirname}/*.html"]
125 125 markdown_files = Dir["#{dirname}/*.md"] + Dir["#{dirname}/*.markdown"]
126 126 if (html_files.length != 0) or (markdown_files.length != 0)
127 127 description = @problem.description || Description.new
128 128
129 129 if html_files.length != 0
130 130 filename = html_files[0]
131 131 description.markdowned = false
132 132 else
133 133 filename = markdown_files[0]
134 134 description.markdowned = true
135 135 end
136 136
137 137 description.body = open(filename).read
138 138 description.save
139 139 @problem.description = description
140 140 @problem.save
141 141 return "\nProblem description imported from #{filename}."
142 142 else
143 143 return ''
144 144 end
145 145 end
146 146
147 147 def import_problem_pdf(dirname)
148 148 pdf_files = Dir["#{dirname}/*.pdf"]
149 149 puts "CHECKING... #{dirname}"
150 150 if pdf_files.length != 0
151 151 puts "HAS PDF FILE"
152 152 filename = pdf_files[0]
153 153
154 154 @problem.save if not @problem.id
155 155 out_dirname = "#{Problem.download_file_basedir}/#{@problem.id}"
156 156 if not FileTest.exists? out_dirname
157 157 Dir.mkdir out_dirname
158 158 end
159 159
160 160 out_filename = "#{out_dirname}/#{@problem.name}.pdf"
161 161
162 162 if FileTest.exists? out_filename
163 163 File.delete out_filename
164 164 end
165 165
166 166 File.rename(filename, out_filename)
167 167 @problem.description_filename = "#{@problem.name}.pdf"
168 168 @problem.save
169 169 return "\nProblem pdf imported from #{filename}."
170 170 else
171 171 return ""
172 172 end
173 173 end
174 174
175 175 #just set the full score to the total number of test case
176 176 #it is not perfect but works on most normal use case
177 177 def import_full_score(dirname)
178 - in_file = Dir["#{dirname}/*.in"]
179 - full_score =in_file.length * 10
178 + num = 0
179 + loop do
180 + num += 1
181 + in_file = Dir["#{dirname}/#{num}*.in"]
182 + break if in_file.length == 0
183 + end
184 + full_score = (num - 1) * 10
180 185 @problem.full_score = full_score
181 186 @problem.save
182 187 return "\nFull score is set to #{full_score}."
183 188 end
184 189
185 190 end
You need to be logged in to leave comments. Login now