How to use fromtimestamp method in freezegun

Best Python code snippet using freezegun

LAB_1.py

Source:LAB_1.py Github

copy

Full Screen

...36 # the first process37 dict(38 process=1,39 block=1,40 duration=dt.datetime.fromtimestamp(1).strftime('%Y-%m-%d %H:%M:%S'),41 start=dt.datetime.fromtimestamp(0).strftime('%Y-%m-%d %H:%M:%S')42 ),43 dict(44 process=1,45 block=2,46 duration=dt.datetime.fromtimestamp(5).strftime('%Y-%m-%d %H:%M:%S'),47 start=dt.datetime.fromtimestamp(1).strftime('%Y-%m-%d %H:%M:%S')48 ),49 dict(50 process=1,51 block=3,52 duration=dt.datetime.fromtimestamp(8).strftime('%Y-%m-%d %H:%M:%S'),53 start=dt.datetime.fromtimestamp(5).strftime('%Y-%m-%d %H:%M:%S')54 ),55 dict(56 process=1,57 block=4,58 duration=dt.datetime.fromtimestamp(9).strftime('%Y-%m-%d %H:%M:%S'),59 start=dt.datetime.fromtimestamp(8).strftime('%Y-%m-%d %H:%M:%S')60 ),61 ####62 dict(63 process=1,64 block=1,65 duration=dt.datetime.fromtimestamp(26).strftime('%Y-%m-%d %H:%M:%S'),66 start=dt.datetime.fromtimestamp(23).strftime('%Y-%m-%d %H:%M:%S')67 ),68 dict(69 process=1,70 block=2,71 duration=dt.datetime.fromtimestamp(27).strftime('%Y-%m-%d %H:%M:%S'),72 start=dt.datetime.fromtimestamp(26).strftime('%Y-%m-%d %H:%M:%S')73 ),74 dict(75 process=1,76 block=3,77 duration=dt.datetime.fromtimestamp(29).strftime('%Y-%m-%d %H:%M:%S'),78 start=dt.datetime.fromtimestamp(27).strftime('%Y-%m-%d %H:%M:%S')79 ),80 dict(81 process=1,82 block=4,83 duration=dt.datetime.fromtimestamp(32).strftime('%Y-%m-%d %H:%M:%S'),84 start=dt.datetime.fromtimestamp(29).strftime('%Y-%m-%d %H:%M:%S')85 ),86 ####87 dict(88 process=1,89 block=1,90 duration=dt.datetime.fromtimestamp(46).strftime('%Y-%m-%d %H:%M:%S'),91 start=dt.datetime.fromtimestamp(44).strftime('%Y-%m-%d %H:%M:%S')92 ),93 dict(94 process=1,95 block=2,96 duration=dt.datetime.fromtimestamp(47).strftime('%Y-%m-%d %H:%M:%S'),97 start=dt.datetime.fromtimestamp(46).strftime('%Y-%m-%d %H:%M:%S')98 ),99 dict(100 process=1,101 block=3,102 duration=dt.datetime.fromtimestamp(51).strftime('%Y-%m-%d %H:%M:%S'),103 start=dt.datetime.fromtimestamp(47).strftime('%Y-%m-%d %H:%M:%S')104 ),105 dict(106 process=1,107 block=4,108 duration=dt.datetime.fromtimestamp(54).strftime('%Y-%m-%d %H:%M:%S'),109 start=dt.datetime.fromtimestamp(51).strftime('%Y-%m-%d %H:%M:%S')110 ),111 # the second process112 dict(113 process=2,114 block=1,115 duration=dt.datetime.fromtimestamp(4).strftime('%Y-%m-%d %H:%M:%S'),116 start=dt.datetime.fromtimestamp(1).strftime('%Y-%m-%d %H:%M:%S')117 ),118 dict(119 process=2,120 block=2,121 duration=dt.datetime.fromtimestamp(7).strftime('%Y-%m-%d %H:%M:%S'),122 start=dt.datetime.fromtimestamp(5).strftime('%Y-%m-%d %H:%M:%S')123 ),124 dict(125 process=2,126 block=3,127 duration=dt.datetime.fromtimestamp(12).strftime('%Y-%m-%d %H:%M:%S'),128 start=dt.datetime.fromtimestamp(8).strftime('%Y-%m-%d %H:%M:%S')129 ),130 dict(131 process=2,132 block=4,133 duration=dt.datetime.fromtimestamp(14).strftime('%Y-%m-%d %H:%M:%S'),134 start=dt.datetime.fromtimestamp(12).strftime('%Y-%m-%d %H:%M:%S')135 ),136 ###137 dict(138 process=2,139 block=1,140 duration=dt.datetime.fromtimestamp(30).strftime('%Y-%m-%d %H:%M:%S'),141 start=dt.datetime.fromtimestamp(26).strftime('%Y-%m-%d %H:%M:%S')142 ),143 dict(144 process=2,145 block=2,146 duration=dt.datetime.fromtimestamp(33).strftime('%Y-%m-%d %H:%M:%S'),147 start=dt.datetime.fromtimestamp(30).strftime('%Y-%m-%d %H:%M:%S')148 ),149 dict(150 process=2,151 block=3,152 duration=dt.datetime.fromtimestamp(35).strftime('%Y-%m-%d %H:%M:%S'),153 start=dt.datetime.fromtimestamp(33).strftime('%Y-%m-%d %H:%M:%S')154 ),155 dict(156 process=2,157 block=4,158 duration=dt.datetime.fromtimestamp(36).strftime('%Y-%m-%d %H:%M:%S'),159 start=dt.datetime.fromtimestamp(35).strftime('%Y-%m-%d %H:%M:%S')160 ),161 ###162 dict(163 process=2,164 block=1,165 duration=dt.datetime.fromtimestamp(48).strftime('%Y-%m-%d %H:%M:%S'),166 start=dt.datetime.fromtimestamp(46).strftime('%Y-%m-%d %H:%M:%S')167 ),168 dict(169 process=2,170 block=2,171 duration=dt.datetime.fromtimestamp(50).strftime('%Y-%m-%d %H:%M:%S'),172 start=dt.datetime.fromtimestamp(48).strftime('%Y-%m-%d %H:%M:%S')173 ),174 dict(175 process=2,176 block=3,177 duration=dt.datetime.fromtimestamp(53).strftime('%Y-%m-%d %H:%M:%S'),178 start=dt.datetime.fromtimestamp(51).strftime('%Y-%m-%d %H:%M:%S')179 ),180 dict(181 process=2,182 block=4,183 duration=dt.datetime.fromtimestamp(55).strftime('%Y-%m-%d %H:%M:%S'),184 start=dt.datetime.fromtimestamp(54).strftime('%Y-%m-%d %H:%M:%S')185 ),186 # the third process187 dict(188 process=3,189 block=1,190 duration=dt.datetime.fromtimestamp(5).strftime('%Y-%m-%d %H:%M:%S'),191 start=dt.datetime.fromtimestamp(4).strftime('%Y-%m-%d %H:%M:%S')192 ),193 dict(194 process=3,195 block=2,196 duration=dt.datetime.fromtimestamp(9).strftime('%Y-%m-%d %H:%M:%S'),197 start=dt.datetime.fromtimestamp(7).strftime('%Y-%m-%d %H:%M:%S')198 ),199 dict(200 process=3,201 block=3,202 duration=dt.datetime.fromtimestamp(16).strftime('%Y-%m-%d %H:%M:%S'),203 start=dt.datetime.fromtimestamp(12).strftime('%Y-%m-%d %H:%M:%S')204 ),205 dict(206 process=3,207 block=4,208 duration=dt.datetime.fromtimestamp(18).strftime('%Y-%m-%d %H:%M:%S'),209 start=dt.datetime.fromtimestamp(16).strftime('%Y-%m-%d %H:%M:%S')210 ),211 ###212 dict(213 process=3,214 block=1,215 duration=dt.datetime.fromtimestamp(34).strftime('%Y-%m-%d %H:%M:%S'),216 start=dt.datetime.fromtimestamp(30).strftime('%Y-%m-%d %H:%M:%S')217 ),218 dict(219 process=3,220 block=2,221 duration=dt.datetime.fromtimestamp(36).strftime('%Y-%m-%d %H:%M:%S'),222 start=dt.datetime.fromtimestamp(34).strftime('%Y-%m-%d %H:%M:%S')223 ),224 dict(225 process=3,226 block=3,227 duration=dt.datetime.fromtimestamp(40).strftime('%Y-%m-%d %H:%M:%S'),228 start=dt.datetime.fromtimestamp(36).strftime('%Y-%m-%d %H:%M:%S')229 ),230 dict(231 process=3,232 block=4,233 duration=dt.datetime.fromtimestamp(42).strftime('%Y-%m-%d %H:%M:%S'),234 start=dt.datetime.fromtimestamp(40).strftime('%Y-%m-%d %H:%M:%S')235 ),236 ###237 dict(238 process=3,239 block=1,240 duration=dt.datetime.fromtimestamp(51).strftime('%Y-%m-%d %H:%M:%S'),241 start=dt.datetime.fromtimestamp(48).strftime('%Y-%m-%d %H:%M:%S')242 ),243 dict(244 process=3,245 block=2,246 duration=dt.datetime.fromtimestamp(55).strftime('%Y-%m-%d %H:%M:%S'),247 start=dt.datetime.fromtimestamp(51).strftime('%Y-%m-%d %H:%M:%S')248 ),249 dict(250 process=3,251 block=3,252 duration=dt.datetime.fromtimestamp(57).strftime('%Y-%m-%d %H:%M:%S'),253 start=dt.datetime.fromtimestamp(55).strftime('%Y-%m-%d %H:%M:%S')254 ),255 dict(256 process=3,257 block=4,258 duration=dt.datetime.fromtimestamp(58).strftime('%Y-%m-%d %H:%M:%S'),259 start=dt.datetime.fromtimestamp(57).strftime('%Y-%m-%d %H:%M:%S')260 ),261 # the fourth process262 dict(263 process=4,264 block=1,265 duration=dt.datetime.fromtimestamp(8).strftime('%Y-%m-%d %H:%M:%S'),266 start=dt.datetime.fromtimestamp(5).strftime('%Y-%m-%d %H:%M:%S')267 ),268 dict(269 process=4,270 block=2,271 duration=dt.datetime.fromtimestamp(12).strftime('%Y-%m-%d %H:%M:%S'),272 start=dt.datetime.fromtimestamp(9).strftime('%Y-%m-%d %H:%M:%S')273 ),274 dict(275 process=4,276 block=3,277 duration=dt.datetime.fromtimestamp(22).strftime('%Y-%m-%d %H:%M:%S'),278 start=dt.datetime.fromtimestamp(16).strftime('%Y-%m-%d %H:%M:%S')279 ),280 dict(281 process=4,282 block=4,283 duration=dt.datetime.fromtimestamp(23).strftime('%Y-%m-%d %H:%M:%S'),284 start=dt.datetime.fromtimestamp(22).strftime('%Y-%m-%d %H:%M:%S')285 ),286 ###287 dict(288 process=4,289 block=1,290 duration=dt.datetime.fromtimestamp(37).strftime('%Y-%m-%d %H:%M:%S'),291 start=dt.datetime.fromtimestamp(34).strftime('%Y-%m-%d %H:%M:%S')292 ),293 dict(294 process=4,295 block=2,296 duration=dt.datetime.fromtimestamp(40).strftime('%Y-%m-%d %H:%M:%S'),297 start=dt.datetime.fromtimestamp(37).strftime('%Y-%m-%d %H:%M:%S')298 ),299 dict(300 process=4,301 block=3,302 duration=dt.datetime.fromtimestamp(41).strftime('%Y-%m-%d %H:%M:%S'),303 start=dt.datetime.fromtimestamp(40).strftime('%Y-%m-%d %H:%M:%S')304 ),305 dict(306 process=4,307 block=4,308 duration=dt.datetime.fromtimestamp(44).strftime('%Y-%m-%d %H:%M:%S'),309 start=dt.datetime.fromtimestamp(42).strftime('%Y-%m-%d %H:%M:%S')310 ),311 ###312 dict(313 process=4,314 block=1,315 duration=dt.datetime.fromtimestamp(55).strftime('%Y-%m-%d %H:%M:%S'),316 start=dt.datetime.fromtimestamp(51).strftime('%Y-%m-%d %H:%M:%S')317 ),318 dict(319 process=4,320 block=2,321 duration=dt.datetime.fromtimestamp(57).strftime('%Y-%m-%d %H:%M:%S'),322 start=dt.datetime.fromtimestamp(55).strftime('%Y-%m-%d %H:%M:%S')323 ),324 dict(325 process=4,326 block=3,327 duration=dt.datetime.fromtimestamp(60).strftime('%Y-%m-%d %H:%M:%S'),328 start=dt.datetime.fromtimestamp(57).strftime('%Y-%m-%d %H:%M:%S')329 ),330 dict(331 process=4,332 block=4,333 duration=dt.datetime.fromtimestamp(61).strftime('%Y-%m-%d %H:%M:%S'),334 start=dt.datetime.fromtimestamp(60).strftime('%Y-%m-%d %H:%M:%S')335 ),336]337c_df = pd.DataFrame(asyncMode)338c_fig = px.timeline(c_df, x_start="start", x_end="duration", y="process", color="block")...

Full Screen

Full Screen

analyzeTrajectory.py

Source:analyzeTrajectory.py Github

copy

Full Screen

...6import math7MATCHING_DISTANCE = 0.18MATCHING_TIME_FRAME = 39def matchTime(t1, t2):10 return abs(datetime.fromtimestamp(t1).hour - datetime.fromtimestamp(t2).hour)<= MATCHING_TIME_FRAME # time difference no greater than 3 hours11 # return (0 <= datetime.fromtimestamp(t1).hour < 3 and 0 <= datetime.fromtimestamp(t2).hour < 3) or (3 <= datetime.fromtimestamp(t1).hour < 6 and 3 <= datetime.fromtimestamp(t2).hour < 6) or (6 <= datetime.fromtimestamp(t1).hour < 9 and 6 <= datetime.fromtimestamp(t2).hour < 9) or (9 <= datetime.fromtimestamp(t1).hour < 12 and 9 <= datetime.fromtimestamp(t2).hour < 12) or (12 <= datetime.fromtimestamp(t1).hour < 15 and 12 <= datetime.fromtimestamp(t2).hour < 15) or (15 <= datetime.fromtimestamp(t1).hour < 18 and 15 <= datetime.fromtimestamp(t2).hour < 18) or (18 <= datetime.fromtimestamp(t1).hour < 21 and 18 <= datetime.fromtimestamp(t2).hour < 21) or (21 <= datetime.fromtimestamp(t1).hour < 24 and 21 <= datetime.fromtimestamp(t2).hour < 24)12 # return (1 <= datetime.fromtimestamp(t1).hour < 4 and 1 <= datetime.fromtimestamp(t2).hour < 4) or (4 <= datetime.fromtimestamp(t1).hour < 7 and 4 <= datetime.fromtimestamp(t2).hour < 7) or (7 <= datetime.fromtimestamp(t1).hour < 10 and 7 <= datetime.fromtimestamp(t2).hour < 10) or (10 <= datetime.fromtimestamp(t1).hour < 13 and 10 <= datetime.fromtimestamp(t2).hour < 13) or (13 <= datetime.fromtimestamp(t1).hour < 16 and 13 <= datetime.fromtimestamp(t2).hour < 16) or (16 <= datetime.fromtimestamp(t1).hour < 19 and 16 <= datetime.fromtimestamp(t2).hour < 19) or (19 <= datetime.fromtimestamp(t1).hour < 22 and 19 <= datetime.fromtimestamp(t2).hour < 22) or ((22 <= datetime.fromtimestamp(t1).hour < 24 or datetime.fromtimestamp(t1).hour == 0) and (20 <= datetime.fromtimestamp(t2).hour < 23 or datetime.fromtimestamp(t2).hour == 0))13def match(gps1, gps2):14 lat1, lon1, t1 = gps115 lat2, lon2, t2 = gps216 coord1 = (lat1,lon1)17 coord2 = (lat2,lon2)18 r = 637119 dlat = (lat2-lat1) * (math.pi/180)20 dlon = (lon2-lon1) * (math.pi/180)21 a = math.sin(dlat/2) * math.sin(dlat/2) + math.cos(lat1 * (math.pi/180)) * math.cos(lat2 * (math.pi/180)) * math.sin(dlon/2) * math.sin(dlon/2)22 c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))23 d = r * c24 return d <= MATCHING_DISTANCE and matchTime(t1, t2)25def trajectory_by_day(fname):26 trajectories = {}27 for i in range(1,8):28 trajectories[i] = []29 trajectory = read_csv(fname)30 print("Read CSV file")31 start = False32 last_date = dt.min33 last_day = 034 for data_tup in trajectory:35 day = datetime.fromtimestamp(data_tup[2]).isoweekday()36 if day == last_day:37 date = dt.fromtimestamp(data_tup[2])38 if date == last_date:39 trajectories[day][-1].append(data_tup)40 else:41 one_trajectory = [data_tup]42 trajectories[day].append(one_trajectory)43 last_date = date44 else:45 date = dt.fromtimestamp(data_tup[2])46 one_trajectory = [data_tup]47 trajectories[day].append(one_trajectory)48 last_date = date49 last_day = day50 return trajectories51# gap -2, match +5, mismatch -352def EDR(t1, t2, mt, ms, gap):53 m, n = len(t1), len(t2)54 matcher = [[0 for x in range(n+1)] for y in range(m+1)]55 backtrack = [[(-1,-1) for x in range(n+1)] for y in range(m+1)]56 maxscore = 057 endposition = (0, 0)58 for i in range(1, m+1):59 for j in range(1, n+1):60 gapAbove = matcher[i-1][j]+gap61 gapLeft = matcher[i][j-1]+gap62 matching = matcher[i-1][j-1] + (mt if match(t1[i-1],t2[j-1]) else ms)63 score = max(0, max(gapAbove, gapLeft, matching)) # if negative, convert to 064 matcher[i][j] = score65 # set backtrack table66 if score == matching:67 backtrack[i][j] = (i-1, j-1)68 elif score == gapAbove:69 backtrack[i][j] = (i-1, j)70 elif score == gapLeft:71 backtrack[i][j] = (i, j-1)72 else:73 backtrack[i][j] = (-1, -1)74 # update maxscore75 if score > maxscore:76 maxscore = score77 endposition = (i, j)78 tempi, tempj = endposition79 while backtrack[tempi][tempj] != (-1, -1):80 tempi, tempj = backtrack[tempi][tempj]81 # calculate time duration of both subtrajectories82 start1 = datetime.fromtimestamp(t1[tempi][2]).isoformat()83 end1 =datetime.fromtimestamp(t1[endposition[0]-1][2]).isoformat()84 start2 = datetime.fromtimestamp(t2[tempj][2]).isoformat()85 end2 =datetime.fromtimestamp(t2[endposition[1]-1][2]).isoformat()86 timeduration1 = t1[endposition[0]-1][2] - t1[tempi][2] # in seconds87 timeduration2 = t2[endposition[1]-1][2] - t2[tempj][2] # in seconds88 return (maxscore, start1, end1, timeduration1, start2, end2, timeduration2)89def EDR_all(traj_dict, fileout, day, mt, ms, gap):90 trajectories = traj_dict[day]91 duration_score_set = []92 duration_score_set.append([])93 duration_score_set.append([])94 with open (fileout, "w") as f:95 for i in range(len(trajectories)-1):96 for j in range(i+1, len(trajectories)-1):97 score, start1, end1, duration1, start2, end2, duration2 = EDR(trajectories[i], trajectories[j], mt, ms, gap)98 line = "Score: " + str(score) + " Duration 1: " + str(duration1) + "s (from " + str(start1) + " to " + str(end1) + ") Duration 2: " + str(duration2) + "s (from " + str(start2) + " to " + str(end2) + ")\n"99 print(line)...

Full Screen

Full Screen

brin_overlap_test.py

Source:brin_overlap_test.py Github

copy

Full Screen

...4from brin_overlap import compute_overlap, find_position, try_insert5def blknums(brs: list[BlockRange]) -> list[int]:6 return [br.blknum for br in brs]7def test_find_position() -> None:8 a = BlockRange(1, datetime.fromtimestamp(1), datetime.fromtimestamp(2))9 b = BlockRange(2, datetime.fromtimestamp(3), datetime.fromtimestamp(4))10 c = BlockRange(3, datetime.fromtimestamp(5), datetime.fromtimestamp(6))11 assert find_position([b, c], a) == 012 assert find_position([a, c], b) == 113 assert find_position([a, b], c) == 214def test_find_position_equal_endpoints() -> None:15 a = BlockRange(1, datetime.fromtimestamp(1), datetime.fromtimestamp(2))16 b = BlockRange(2, datetime.fromtimestamp(2), datetime.fromtimestamp(3))17 c = BlockRange(3, datetime.fromtimestamp(3), datetime.fromtimestamp(4))18 assert find_position([b, c], a) == 019 assert find_position([a, c], b) == 120 assert find_position([a, b], c) == 221def test_find_position_overlap() -> None:22 a = BlockRange(1, datetime.fromtimestamp(1), datetime.fromtimestamp(2))23 b = BlockRange(2, datetime.fromtimestamp(3), datetime.fromtimestamp(4))24 ab = BlockRange(3, datetime.fromtimestamp(2), datetime.fromtimestamp(4))25 assert find_position([a, b], ab) is None26 assert find_position([a, ab], b) is None27def test_try_insert() -> None:28 a = BlockRange(1, datetime.fromtimestamp(1), datetime.fromtimestamp(2))29 b = BlockRange(2, datetime.fromtimestamp(3), datetime.fromtimestamp(4))30 c = BlockRange(3, datetime.fromtimestamp(5), datetime.fromtimestamp(6))31 level = [a, c]32 assert try_insert(level, b)33 assert blknums(level) == [1, 2, 3]34 level = [a, b]35 assert try_insert(level, c)36 assert blknums(level) == [1, 2, 3]37 level = [b, c]38 assert try_insert(level, a)39 assert blknums(level) == [1, 2, 3]40def test_try_insert_fail() -> None:41 a = BlockRange(1, datetime.fromtimestamp(1), datetime.fromtimestamp(2))42 b = BlockRange(2, datetime.fromtimestamp(3), datetime.fromtimestamp(4))43 ab1 = BlockRange(3, datetime.fromtimestamp(1), datetime.fromtimestamp(4))44 ab2 = BlockRange(3, datetime.fromtimestamp(1), datetime.fromtimestamp(3))45 ab3 = BlockRange(3, datetime.fromtimestamp(2), datetime.fromtimestamp(4))46 levels = [a, b]47 assert not try_insert(levels, ab1)48 assert not try_insert(levels, ab2)49 assert not try_insert(levels, ab3)50def test_try_insert_edge() -> None:51 a = BlockRange(1, datetime.fromtimestamp(1), datetime.fromtimestamp(2))52 b = BlockRange(2, datetime.fromtimestamp(3), datetime.fromtimestamp(4))53 # empty list54 level: list[BlockRange] = []55 assert try_insert(level, a)56 assert blknums(level) == [1]57 # insert before first element58 level = [b]59 assert try_insert(level, a)60 assert blknums(level) == [1, 2]61 # insert after last element62 level = [a]63 assert try_insert(level, b)64 assert blknums(level) == [1, 2]65def test_compute_overlap_ordered() -> None:66 a = BlockRange(1, datetime.fromtimestamp(1), datetime.fromtimestamp(2))67 b = BlockRange(2, datetime.fromtimestamp(3), datetime.fromtimestamp(4))68 c = BlockRange(3, datetime.fromtimestamp(5), datetime.fromtimestamp(6))69 d = BlockRange(4, datetime.fromtimestamp(7), datetime.fromtimestamp(8))70 bro = compute_overlap([a, b, c, d])71 assert bro.min_val.timestamp() == 172 assert bro.max_val.timestamp() == 873 assert bro.min_blknum == 174 assert bro.max_blknum == 475 assert len(bro.levels) == 176 assert blknums(bro.levels[0]) == [1, 2, 3, 4]77def test_compute_overlap_overlap() -> None:78 a = BlockRange(1, datetime.fromtimestamp(1), datetime.fromtimestamp(2))79 b = BlockRange(2, datetime.fromtimestamp(3), datetime.fromtimestamp(4))80 c = BlockRange(3, datetime.fromtimestamp(3), datetime.fromtimestamp(4))81 d = BlockRange(4, datetime.fromtimestamp(1), datetime.fromtimestamp(2))82 bro = compute_overlap([a, b, c, d])83 assert bro.min_val.timestamp() == 184 assert bro.max_val.timestamp() == 485 assert bro.min_blknum == 186 assert bro.max_blknum == 487 assert len(bro.levels) == 288 assert blknums(bro.levels[0]) == [1, 2]...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run freezegun automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful