|
1 | | -# Deoptimized version of homework task |
2 | | - |
3 | 1 | require 'json' |
4 | | -require 'pry' |
5 | 2 | require 'date' |
6 | | -require 'minitest/autorun' |
7 | 3 |
|
8 | 4 | class User |
9 | 5 | attr_reader :attributes, :sessions |
@@ -150,35 +146,3 @@ def work(file_path = 'data.txt', disable_gc = false) |
150 | 146 | File.write('result.json', "#{report.to_json}\n") |
151 | 147 | puts "MEMORY USAGE: %d MB" % (`ps -o rss= -p #{Process.pid}`.to_i / 1024) |
152 | 148 | end |
153 | | - |
154 | | -class TestMe < Minitest::Test |
155 | | - def setup |
156 | | - File.write('result.json', '') |
157 | | - File.write('data.txt', |
158 | | -'user,0,Leida,Cira,0 |
159 | | -session,0,0,Safari 29,87,2016-10-23 |
160 | | -session,0,1,Firefox 12,118,2017-02-27 |
161 | | -session,0,2,Internet Explorer 28,31,2017-03-28 |
162 | | -session,0,3,Internet Explorer 28,109,2016-09-15 |
163 | | -session,0,4,Safari 39,104,2017-09-27 |
164 | | -session,0,5,Internet Explorer 35,6,2016-09-01 |
165 | | -user,1,Palmer,Katrina,65 |
166 | | -session,1,0,Safari 17,12,2016-10-21 |
167 | | -session,1,1,Firefox 32,3,2016-12-20 |
168 | | -session,1,2,Chrome 6,59,2016-11-11 |
169 | | -session,1,3,Internet Explorer 10,28,2017-04-29 |
170 | | -session,1,4,Chrome 13,116,2016-12-28 |
171 | | -user,2,Gregory,Santos,86 |
172 | | -session,2,0,Chrome 35,6,2018-09-21 |
173 | | -session,2,1,Safari 49,85,2017-05-22 |
174 | | -session,2,2,Firefox 47,17,2018-02-02 |
175 | | -session,2,3,Chrome 20,84,2016-11-25 |
176 | | -') |
177 | | - end |
178 | | - |
179 | | - def test_result |
180 | | - work |
181 | | - expected_result = JSON.parse('{"totalUsers":3,"uniqueBrowsersCount":14,"totalSessions":15,"allBrowsers":"CHROME 13,CHROME 20,CHROME 35,CHROME 6,FIREFOX 12,FIREFOX 32,FIREFOX 47,INTERNET EXPLORER 10,INTERNET EXPLORER 28,INTERNET EXPLORER 35,SAFARI 17,SAFARI 29,SAFARI 39,SAFARI 49","usersStats":{"Leida Cira":{"sessionsCount":6,"totalTime":"455 min.","longestSession":"118 min.","browsers":"FIREFOX 12, INTERNET EXPLORER 28, INTERNET EXPLORER 28, INTERNET EXPLORER 35, SAFARI 29, SAFARI 39","usedIE":true,"alwaysUsedChrome":false,"dates":["2017-09-27","2017-03-28","2017-02-27","2016-10-23","2016-09-15","2016-09-01"]},"Palmer Katrina":{"sessionsCount":5,"totalTime":"218 min.","longestSession":"116 min.","browsers":"CHROME 13, CHROME 6, FIREFOX 32, INTERNET EXPLORER 10, SAFARI 17","usedIE":true,"alwaysUsedChrome":false,"dates":["2017-04-29","2016-12-28","2016-12-20","2016-11-11","2016-10-21"]},"Gregory Santos":{"sessionsCount":4,"totalTime":"192 min.","longestSession":"85 min.","browsers":"CHROME 20, CHROME 35, FIREFOX 47, SAFARI 49","usedIE":false,"alwaysUsedChrome":false,"dates":["2018-09-21","2018-02-02","2017-05-22","2016-11-25"]}}}') |
182 | | - assert_equal expected_result, JSON.parse(File.read('result.json')) |
183 | | - end |
184 | | -end |
0 commit comments