Best JavaScript code snippet using fast-check-monorepo
rnn.py
Source:rnn.py
...83 return x, (h_n, c_n)84 def predict(self, token, h=None, cuda=False, top_k=None):85 """Given a token, predict the next token. Return the token and hidden state."""86 if cuda:87 self.cuda()88 else:89 self.cpu()90 if h is None:91 h = self.init_hidden(1)92 x = np.array([[self.tok_to_int[token]]])93 x = one_hot_encode(x, self.vocab)94 inputs = torch.from_numpy(x)95 if cuda:96 inputs = inputs.cuda()97 h = tuple([m.data for m in h])98 # Out = score distribution99 out, h = self.forward(inputs, h)100 # Outputs a distribution of next-token scores.101 # Get actual token by applying a softmax function (gives probability102 # distribution) that we can sample to predict the next token.103 p = F.softmax(out, dim=1).data104 if cuda:105 p = p.cpu()106 if top_k is None:107 top_token = np.arange(len(self.tokens))108 else:109 p, top_ph = p.topk(top_k)110 top_token = top_ph.numpy().squeeze()111 p = p.numpy().squeeze()112 pred_token = np.random.choice(top_token, p=p / p.sum())113 return self.int_to_tok[pred_token], h114 def init_weights(self):115 """Initialize weights for fully connected layer."""116 # Set bias tensor117 self.fc.bias.data.fill_(0)118 # Uniform random FC weights119 self.fc.weight.data.uniform_(-1, 1)120 def init_hidden(self, _n_seqs):121 """Create two new tensors for hidden and cell state of LSTM.122 Tensor shape is (n_layers, n_seqs, n_hidden)123 """124 weight = next(self.parameters()).data125 return (126 weight.new(self.n_layers, _n_seqs, self.n_hidden).zero_(),127 weight.new(self.n_layers, _n_seqs, self.n_hidden).zero_(),128 )129def train(130 network: RNN,131 data: np.ndarray,132 epochs: int = 10,133 _n_seqs: int = 10,134 _n_steps: int = 50,135 lr: int = 0.001,136 clip: int = 5,137 val_frac: int = 0.2,138 cuda: bool = False,139 print_every: int = 10,140):141 """Train RNN."""142 network.train()143 opt = torch.optim.Adam(network.parameters(), lr=lr)144 criterion = nn.CrossEntropyLoss()145 val_idx = int(len(data) * (1 - val_frac))146 data, val_data = data[:val_idx], data[val_idx:]147 if cuda:148 network.cuda()149 step = 0150 train_loss = []151 validation_loss = []152 for i in range(epochs):153 h = network.init_hidden(_n_seqs)154 for x, y in get_batches(data, _n_seqs, _n_steps):155 step += 1156 # One-hot encode, make Torch tensors157 x = one_hot_encode(x, network.vocab)158 inputs, targets = torch.from_numpy(x), torch.from_numpy(y)159 if cuda:160 inputs, targets = inputs.cuda(), targets.cuda()161 h = tuple([m.data for m in h])162 network.zero_grad()163 output, h = network.forward(inputs, h)164 loss = criterion(output, targets.view(_n_seqs * _n_steps))165 loss.backward()166 # Avoid exploding gradients167 nn.utils.clip_grad_norm_(network.parameters(), clip)168 opt.step()169 if step % print_every == 0:170 # Validation loss171 val_h = network.init_hidden(_n_seqs)172 val_losses = []173 for x, y in get_batches(val_data, _n_seqs, _n_steps):174 x = one_hot_encode(x, network.vocab)175 x, y = torch.from_numpy(x), torch.from_numpy(y)176 val_h = tuple([m.data for m in val_h])177 inputs, targets = x, y178 if cuda:179 inputs, targets = inputs.cuda(), targets.cuda()180 output, val_h = network.forward(inputs, val_h)181 val_loss = criterion(output, targets.view(_n_seqs * _n_steps))182 val_losses.append(val_loss.item())183 train_loss.append(loss.item())184 validation_loss.append(np.mean(val_losses))185 print(186 f"Epoch: {i + 1} / {epochs},",187 f"Step: {step},",188 f"Loss: {loss.item():.4f},",189 "Val Loss: {:.4f}".format(np.mean(val_losses)),190 )191 return train_loss, validation_loss192def top_k_sample(network, prediction_type, size, prime="The", top_k=None, cuda=False):193 """Sample prediction from the RNN's score probability distribution."""194 if cuda:195 network.cuda()196 else:197 network.cpu()198 network.eval()199 if prediction_type in ("word", "phoneme"):200 if len(prime.split(" ")) == 1:201 tokens = [prime]202 else:203 tokens = prime.split(" ")204 h = network.init_hidden(1)205 for w in tokens:206 tok, h = network.predict(w, h, cuda=cuda, top_k=top_k)207 tokens.append(tok)208 for i in range(size):209 tok, h = network.predict(tokens[-1], h, cuda=cuda, top_k=top_k)...
gu.js
Source:gu.js
1//! moment.js locale configuration2//! locale : Gujarati [gu]3//! author : Kaushik Thanki : https://github.com/Kaushik19874;(function (global, factory) {5 typeof exports === 'object' && typeof module !== 'undefined'6 && typeof require === 'function' ? factory(require('../moment')) :7 typeof define === 'function' && define.amd ? define(['../moment'], factory) :8 factory(global.moment)9}(this, (function (moment) { 'use strict';10 //! moment.js locale configuration11 var symbolMap = {12 1: '૧',13 2: '૨',14 3: 'à«©',15 4: '૪',16 5: 'à««',17 6: '૬',18 7: 'à«',19 8: 'à«®',20 9: '૯',21 0: '૦',22 },23 numberMap = {24 '૧': '1',25 '૨': '2',26 'à«©': '3',27 '૪': '4',28 'à««': '5',29 '૬': '6',30 'à«': '7',31 'à«®': '8',32 '૯': '9',33 '૦': '0',34 };35 var gu = moment.defineLocale('gu', {36 months: 'àªàª¾àª¨à«àª¯à«àªàª°à«_ફà«àª¬à«àª°à«àªàª°à«_મારà«àª_àªàªªà«àª°àª¿àª²_મà«_àªà«àª¨_àªà«àª²àª¾àª_àªàªàª¸à«àª_સપà«àªà«àª®à«àª¬àª°_àªàªà«àªà«àª¬àª°_નવà«àª®à«àª¬àª°_ડિસà«àª®à«àª¬àª°'.split(37 '_'38 ),39 monthsShort: 'àªàª¾àª¨à«àª¯à«._ફà«àª¬à«àª°à«._મારà«àª_àªàªªà«àª°àª¿._મà«_àªà«àª¨_àªà«àª²àª¾._àªàª._સપà«àªà«._àªàªà«àªà«._નવà«._ડિસà«.'.split(40 '_'41 ),42 monthsParseExact: true,43 weekdays: 'રવિવાર_સà«àª®àªµàª¾àª°_મàªàªàª³àªµàª¾àª°_બà«àª§à«àªµàª¾àª°_àªà«àª°à«àªµàª¾àª°_શà«àªà«àª°àªµàª¾àª°_શનિવાર'.split(44 '_'45 ),46 weekdaysShort: 'રવિ_સà«àª®_મàªàªàª³_બà«àª§à«_àªà«àª°à«_શà«àªà«àª°_શનિ'.split('_'),47 weekdaysMin: 'ર_સà«_મàª_બà«_àªà«_શà«_શ'.split('_'),48 longDateFormat: {49 LT: 'A h:mm વાàªà«àª¯à«',50 LTS: 'A h:mm:ss વાàªà«àª¯à«',51 L: 'DD/MM/YYYY',52 LL: 'D MMMM YYYY',53 LLL: 'D MMMM YYYY, A h:mm વાàªà«àª¯à«',54 LLLL: 'dddd, D MMMM YYYY, A h:mm વાàªà«àª¯à«',55 },56 calendar: {57 sameDay: '[àªàª] LT',58 nextDay: '[àªàª¾àª²à«] LT',59 nextWeek: 'dddd, LT',60 lastDay: '[àªàªàªàª¾àª²à«] LT',61 lastWeek: '[પાàªàª²àª¾] dddd, LT',62 sameElse: 'L',63 },64 relativeTime: {65 future: '%s મા',66 past: '%s પહà«àª²àª¾',67 s: 'àª
મà«àª પળà«',68 ss: '%d સà«àªàªàª¡',69 m: 'àªàª મિનિàª',70 mm: '%d મિનિàª',71 h: 'àªàª àªàª²àª¾àª',72 hh: '%d àªàª²àª¾àª',73 d: 'àªàª દિવસ',74 dd: '%d દિવસ',75 M: 'àªàª મહિનà«',76 MM: '%d મહિનà«',77 y: 'àªàª વરà«àª·',78 yy: '%d વરà«àª·',79 },80 preparse: function (string) {81 return string.replace(/[૧૨૩૪૫૬à«à«®à«¯à«¦]/g, function (match) {82 return numberMap[match];83 });84 },85 postformat: function (string) {86 return string.replace(/\d/g, function (match) {87 return symbolMap[match];88 });89 },90 // Gujarati notation for meridiems are quite fuzzy in practice. While there exists91 // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.92 meridiemParse: /રાત|બપà«àª°|સવાર|સાàªàª/,93 meridiemHour: function (hour, meridiem) {94 if (hour === 12) {95 hour = 0;96 }97 if (meridiem === 'રાત') {98 return hour < 4 ? hour : hour + 12;99 } else if (meridiem === 'સવાર') {100 return hour;101 } else if (meridiem === 'બપà«àª°') {102 return hour >= 10 ? hour : hour + 12;103 } else if (meridiem === 'સાàªàª') {104 return hour + 12;105 }106 },107 meridiem: function (hour, minute, isLower) {108 if (hour < 4) {109 return 'રાત';110 } else if (hour < 10) {111 return 'સવાર';112 } else if (hour < 17) {113 return 'બપà«àª°';114 } else if (hour < 20) {115 return 'સાàªàª';116 } else {117 return 'રાત';118 }119 },120 week: {121 dow: 0, // Sunday is the first day of the week.122 doy: 6, // The week that contains Jan 6th is the first week of the year.123 },124 });125 return gu;...
Maze.py
Source:Maze.py
1from Cell import Cell2from random import randint3from Position import Position4class Maze:5 def __init__(self, height):6 self.height = height7 self.maze = []8 9 def initialize(self):10 initial = Cell.UPWALL | Cell.RIGHTWALL | Cell.DOWNWALL | Cell.LEFTWALL # 0 111111 self.maze = [[initial for _ in range(self.height)] for _ in range(self.height)]12 return self.DFS()13 def DFS(self):14 stack = []15 initial_position = Position(0, 0)16 stack.append(initial_position)17 unit_v = Position(0, 0)18 while len(stack) > 0:19 current_cell_position = stack.pop()20 self.maze[current_cell_position.x][current_cell_position.y] |= Cell.VISITED21 children = self.generate_children_maze_build(current_cell_position)22 if len(children) > 0:23 if len(children) > 1:24 stack.append(current_cell_position) # so that the other children can be explored when we eventually backtrack25 random_child_position = children[randint(0, len(children)-1)]26 unit_v = random_child_position.subtract(current_cell_position) # indicates the direction from current->child27 self.remove_common_wall(current_cell_position, random_child_position, unit_v)28 stack.append(random_child_position)29 return self.maze30 def generate_children_maze_build(self, current_cell_position):31 children = []32 x = current_cell_position.x33 y = current_cell_position.y34 if x > 0: #left border35 if self.maze[x - 1][y] & Cell.VISITED == 0:36 children.append(Position(x - 1, y))37 if y > 0: #up border38 if self.maze[x][y - 1] & Cell.VISITED == 0:39 children.append(Position(x, y - 1))40 if x <= self.height - 2: #right border41 if self.maze[x + 1][y] & Cell.VISITED == 0:42 children.append(Position(x + 1, y))43 if y <= self.height - 2: #down border44 if self.maze[x][y + 1] & Cell.VISITED == 0:45 children.append(Position(x, y + 1))46 return children47 def remove_common_wall(self, current_cell_position, random_child_position, unit_v):48 if unit_v.x == 1: # right49 self.maze[current_cell_position.x][current_cell_position.y] &= ~Cell.RIGHTWALL # 1111 & 1101 = 110150 self.maze[random_child_position.x][random_child_position.y] &= ~Cell.LEFTWALL51 elif unit_v.x == -1: #left52 self.maze[current_cell_position.x][current_cell_position.y] &= ~Cell.LEFTWALL53 self.maze[random_child_position.x][random_child_position.y] &= ~Cell.RIGHTWALL54 elif unit_v.y == 1: #down55 self.maze[current_cell_position.x][current_cell_position.y] &= ~Cell.DOWNWALL56 self.maze[random_child_position.x][random_child_position.y] &= ~Cell.UPWALL57 elif unit_v.y == -1: #up58 self.maze[current_cell_position.x][current_cell_position.y] &= ~Cell.UPWALL59 self.maze[random_child_position.x][random_child_position.y] &= ~Cell.DOWNWALL60 def create_loop(self, current_cell_position, unit_v):61 counter += 162 if counter == 3:63 if unit_v.x == 1: # right64 self.maze[current_cell_position.x][current_cell_position.y] &= ~Cell.RIGHTWALL # 1111 & 1101 = 110165 elif unit_v.x == -1: #left66 self.maze[current_cell_position.x][current_cell_position.y] &= ~Cell.LEFTWALL67 elif unit_v.y == 1: #down68 self.maze[current_cell_position.x][current_cell_position.y] &= ~Cell.DOWNWALL69 elif unit_v.y == -1: #up70 self.maze[current_cell_position.x][current_cell_position.y] &= ~Cell.UPWALL71 def generate_children_agent_traversal(self, current_cell_position, visited):72 children = []73 x = current_cell_position.x74 y = current_cell_position.y75 if x > 0: #left border76 if Position(x-1,y) not in visited and self.maze[x-1][y] & Cell.RIGHTWALL == 0:77 children.append(Position(x-1, y))78 if y > 0: #up border79 if Position(x,y-1) not in visited and self.maze[x][y-1] & Cell.DOWNWALL == 0:80 children.append(Position(x, y-1))81 if x <= self.height-2: #right border82 if Position(x+1,y) not in visited and self.maze[x+1][y] & Cell.LEFTWALL == 0:83 children.append(Position(x+1, y))84 if y <= self.height-2: #down border85 if Position(x,y+1) not in visited and self.maze[x][y+1] & Cell.UPWALL == 0:86 children.append(Position(x, y+1))87 return children88 def get_value(self, i, j):...
server.js
Source:server.js
1const express = require('express');2const socketIo = require('socket.io');3const bodyParser = require('body-parser');4const cors = require('cors');5const mongoose = require('mongoose');6require('./Config/passport');7const authenticateRouter = require('./Routes/authenticateRoutes');8const userRouter = require('./Routes/userRoutes');9const { loggerMiddleware } = require('./Middleware/loggerMiddleware');10if (process.env.NODE_ENV !== 'PRODUCTION') {11 require('dotenv').config();12 console.log(process.env);13}14console.log("Env" , process.env);15mongoose.connect(process.env.MONGOOSE_URL, {16 useNewUrlParser: true,17 useUnifiedTopology: true,18});19const db = mongoose.connection;20db.once('open', () => {21 console.log('Database Connected');22});23const app = express();24app.use(loggerMiddleware);25app.use(cors());26app.use(bodyParser.json());27const PORT = 4000;28var path = require('path');29const logError = require('./Middleware/Error/logError');30const clientErrorHandler = require('./Middleware/Error/clientErrorHandler');31const refDataRouter = require('./Routes/refDataRoutes');32const questionAnswerRouter = require('./Routes/questionAnswerRoutes');33const tipRouter = require('./Routes/TipRoutes');34app.use('/api/authenticate', authenticateRouter);35app.use('/api/profile', userRouter);36app.use('/api/refData', refDataRouter);37app.use('/api/questionAnswer', questionAnswerRouter);38app.use('/api/tip', tipRouter);39app.use('/public', express.static(path.join(__dirname, 'public')));40app.use(logError);41app.use(clientErrorHandler);42const server = app.listen(4000, () => {43 console.log(`Server is running on 4000`);44});45/*46const io = socketIo(server, {47 cors: {48 origins: ['https://localhost:4200'],49 methods: ['GET', 'POST'],50 },51});52app.set('io', io);53io.on('connection', (socket) => {54 console.log('a user connected');55});...
Main.py
Source:Main.py
1from Agent import Agent2from Maze import Maze3from Cell import Cell4from Position import Position5import pygame6import sys7# maze config8M_HEIGHT = 209maze = Maze(M_HEIGHT)10maze.initialize()11agent = Agent(0, 0, maze)12path = agent.BFS(Position(19, 19))13print(path)14# setup window15FPS = 3016S_HEIGHT = 60017CELL_SIZE = S_HEIGHT // M_HEIGHT18# colors19WHITE = (255, 255, 255)20BLACK = (0, 0, 0)21RED = (255, 0, 0)22GREEN = (0, 255, 0)23BLUE = (0, 0, 225)24# pygame init25pygame.init()26pygame.mixer.init()27screen = pygame.display.set_mode((S_HEIGHT, S_HEIGHT))28screen.fill(WHITE)29pygame.display.set_caption("Python Maze")30clock = pygame.time.Clock()31# render the maze32def render_maze():33 x = 034 y = 035 for i in range(M_HEIGHT):36 for j in range(M_HEIGHT):37 cell = maze.get_value(i, j)38 if cell & Cell.UPWALL == 1:39 pygame.draw.line(screen, BLACK, [x, y], [x + CELL_SIZE, y])40 if cell & Cell.RIGHTWALL == 2:41 pygame.draw.line(screen, BLACK, [x + CELL_SIZE, y], [x + CELL_SIZE, y + CELL_SIZE])42 if cell & Cell.DOWNWALL == 4:43 pygame.draw.line(screen, BLACK, [x, y + CELL_SIZE], [x + CELL_SIZE, y + CELL_SIZE])44 if cell & Cell.LEFTWALL == 8:45 pygame.draw.line(screen, BLACK, [x, y], [x, y + CELL_SIZE])46 y += CELL_SIZE47 y = 048 x += CELL_SIZE49 50 pygame.display.update()51def traverse_maze():52 pass53render_maze()54# game loop55while True:56 clock.tick(FPS)57 for event in pygame.event.get():58 if event.type == pygame.QUIT:...
Agent.py
Source:Agent.py
1from queue import Queue2from Position import Position3class Agent:4 def __init__(self, x, y, maze):5 self.position = Position(x, y)6 self.maze = maze7 def set_position(self, destination): # for movement8 self.position = destination9 def goal_test(self, goal_position):10 return self.position == goal_position11 def BFS(self, goal_position):12 queue = Queue(0)13 visited = []14 path = []15 backtracking_table = {}16 queue.put(self.position)17 visited.append(self.position)18 while not queue.empty():19 current_cell = queue.get()20 if current_cell == goal_position:21 break22 else:23 children = self.maze.generate_children_agent_traversal(current_cell, visited)24 for child in children:25 visited.append(child)26 queue.put(child)27 backtracking_table[child] = current_cell28 29 return self.back_track(current_cell, backtracking_table)30 def back_track(self, current_cell, backtracking_table):31 path = []32 path.append(current_cell)33 while current_cell != self.position:34 path.append(backtracking_table[current_cell])35 current_cell = backtracking_table[current_cell]36 path.reverse()...
fi.js
Source:fi.js
1/*! Select2 4.0.13 | https://github.com/select2/select2/blob/master/LICENSE.md */...
Position.py
Source:Position.py
1class Position:2 def __init__(self, x, y):3 self.x = x4 self.y = y5 def __repr__(self) -> str:6 return '(' + str(self.x) + ', ' + str(self.y) + '):'7 def __hash__(self) -> int:8 return hash((self.x, self.y))9 def __eq__(self, __o: object) -> bool:10 return __o and self.x == __o.x and self.y == __o.y11 def subtract(self, parent):...
Using AI Code Generation
1const { fc } = require('fast-check');2const { fc } = require('fast-check');3const { fc } = require('fast-check');4const { fc } = require('fast-check');5const { fc } = require('fast-check');6const { fc } = require('fast-check');7const { fc } = require('fast-check');8const { fc } = require('fast-check');9const { fc } = require('fast-check');10const { fc } = require('fast-check');11const { fc } = require('fast-check');12const { fc } = require('fast-check');13const { fc } = require('fast-check');14const { fc } = require('fast-check');15const { fc } = require('fast-check');16const { fc } = require('fast-check');17const { fc } = require('fast-check');
Using AI Code Generation
1import { someMethod } from 'fast-check-monorepo';2console.log(someMethod());3import { someMethod } from 'fast-check-monorepo';4console.log(someMethod());5import { someMethod } from 'fast-check-monorepo';6console.log(someMethod());7import { someMethod } from 'fast-check-monorepo';8console.log(someMethod());9import { someMethod } from 'fast-check-monorepo';10console.log(someMethod());11import { someMethod } from 'fast-check-monorepo';12console.log(someMethod());13import { someMethod } from 'fast-check-monorepo';14console.log(someMethod());15import { someMethod } from 'fast-check-monorepo';16console.log(someMethod());17import { someMethod } from 'fast-check-monorepo';18console.log(someMethod());19import { someMethod } from 'fast-check-monorepo';20console.log(someMethod());21import { someMethod } from 'fast-check-monorepo';22console.log(someMethod());23import { someMethod } from 'fast-check-monorepo';24console.log(someMethod());25import { someMethod } from 'fast-check-monorepo';26console.log(someMethod());
Using AI Code Generation
1const {fc} = require('fast-check');2fc.assert(3 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)4);5const {fc} = require('fast-check');6fc.assert(7 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)8);9const {fc} = require('fast-check');10fc.assert(11 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)12);13const {fc} = require('fast-check');14fc.assert(15 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)16);17const {fc} = require('fast-check');18fc.assert(19 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)20);21const {fc} = require('fast-check');22fc.assert(23 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)24);25const {fc} = require('fast-check');26fc.assert(27 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)28);29const {fc} = require('fast-check');30fc.assert(31 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)32);33const {fc} = require('fast-check');34fc.assert(35 fc.property(fc.integer(), fc.integer(), (a, b) => a + b >= a)36);37const {fc
Using AI Code Generation
1const { fc } = require('fast-check-monorepo');2const { fc } = require('fast-check-monorepo');3const { fc } = require('fast-check-monorepo');4const { fc } = require('fast-check-monorepo');5const { fc } = require('fast-check-monorepo');6const { fc } = require('fast-check-monorepo');7const { fc } = require('fast-check-monorepo');8const { fc } = require('fast-check-monorepo');9const { fc } = require('fast-check-monorepo');10const { fc } = require('fast-check-monorepo');11const { fc } = require('fast-check-monorepo');12const { fc } = require('fast-check-monorepo');13const { fc } = require('fast-check-monorepo');14const { fc } = require
Using AI Code Generation
1const fc = require('fast-check');2fc.assert(3 fc.property(fc.integer(), fc.integer(), (a, b) => a + b === b + a)4);5console.log('Done');6 throw err;7 at Function.Module._resolveFilename (internal/modules/cjs/loader.js:980:15)8 at Function.Module._load (internal/modules/cjs/loader.js:862:27)9 at Module.require (internal/modules/cjs/loader.js:1044:19)10 at require (internal/modules/cjs/helpers.js:77:18)11 at Object.<anonymous> (/home/username/fast-check-monorepo/test3.js:1:16)12 at Module._compile (internal/modules/cjs/loader.js:1137:30)13 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)14 at Module.load (internal/modules/cjs/loader.js:985:32)15 at Function.Module._load (internal/modules/cjs/loader.js:878:14)16 at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) {17}18 throw new ERR_INVALID_MODULE_SPECIFIER(
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.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!