Skip to content

Commit 242bd78

Browse files
authored
Add files via upload
1 parent 07f4a31 commit 242bd78

File tree

3 files changed

+171
-0
lines changed

3 files changed

+171
-0
lines changed

main.py

+71
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
import sys, time, random
2+
from difflib import SequenceMatcher
3+
4+
def printTarget(text):
5+
print(f'\n\033[1;34;40m{text}\033[0;0m')
6+
7+
def printStats(w, t, wpm, acc):
8+
print(f'\n\033[0;32;40mStats\n\033[0;0mTotal Words: {w}\nTime Taken: {round(t,4)}sec\nWords/Minute: {wpm}\nAccurecy: {acc}')
9+
10+
def check(phrase, typed):
11+
pass
12+
13+
def start():
14+
wpm = 0
15+
acc = 0
16+
words = 0
17+
types = []
18+
targets = []
19+
takenTimes = []
20+
phrases = open('phrases.txt').read().split('\n')
21+
while len(phrases) != 0:
22+
#Get random index
23+
rIndex = random.randint(0, len(phrases)-1)
24+
25+
#Print phrase at that index and take input from user
26+
printTarget(phrases[rIndex])
27+
tStart = time.time()
28+
inp = input(":")
29+
correctWords = check(phrases[rIndex], inp)
30+
tTaken = time.time() - tStart
31+
if(inp == ''):
32+
break
33+
takenTimes.append(tTaken)
34+
35+
#Add
36+
types.append(inp)
37+
words += len(inp.split(" "))
38+
targets.append(phrases[rIndex])
39+
phrases.pop(rIndex)
40+
totalTime = sum(takenTimes)
41+
accs = []
42+
for i in range(len(types)):
43+
a = SequenceMatcher(None, types[i], targets[i]).ratio()
44+
accs.append(a)
45+
acc = (sum(accs)/len(accs))*100
46+
if totalTime != 0:
47+
wpm = int((words/totalTime)*60)
48+
printStats(words, totalTime, wpm, round(acc, 4))
49+
50+
def printHelp():
51+
print("\033[1;34;40mTypiest:\033[0;0m A console based typing speed test.\n")
52+
print("\033[0;32;40mUsage:\033[0;0m")
53+
print("Just run the program with 'start' argument")
54+
print("A random phrase of 6 word will apear")
55+
print("Type it as fast and accurate you can\n")
56+
print("\033[0;33;40mNote:\033[0;0m")
57+
print("To exit program press return key instaed of typing phrase")
58+
print("By default 100 phrases will be tested")
59+
60+
if __name__ == '__main__':
61+
argc = len(sys.argv)
62+
args = sys.argv
63+
if argc != 2:
64+
print("\033[0;31;40mInvalid Arguments. Use 'main.py help' for details.\033[0;0m")
65+
else:
66+
if args[1] == 'help':
67+
printHelp()
68+
elif args[1] == 'start':
69+
start()
70+
else:
71+
print("\033[0;31;40mInvalid Arguments. Use help for details.\033[0;0m")

phrases.txt

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
Lorem ipsum dolor sit amet consectetur
2+
Laudantium laborum beatae illo ex consequuntur
3+
Placeat id animi accusantium distinctio eos
4+
Alias reiciendis sed architecto eveniet sequi
5+
Aliquid ullam suscipit consequuntur ducimus quae
6+
Itaque culpa vitae quisquam tenetur Dolorem
7+
Ratione repudiandae sint pariatur CommoditakenTimes fugiat
8+
Quae voluptates modi deleniti error laudantium
9+
Excepturi dolorum voluptatibus eligendi nemo illo
10+
Asperiores nostrum maxime itaque ipsam pariatur
11+
Soluta reprehenderit nobis sapiente consequatur voluptatem
12+
Rem a accusantium quos vitae officia
13+
Repudiandae dolores labore quis repellat fugiat
14+
Adipisci saepe qui porro officia rem
15+
Perspiciatis ipsum repudiandae veniam distinctio est
16+
Cum consectetur fuga numquam molestias laborum
17+
Explicabo excepturi ipsum fugit expedita quo
18+
Corrupti corporis provident iure ratione autem
19+
Earum iure reiciendis veniam aspernatur animi
20+
Labore ex velit optio ratione nam
21+
Magnam veniam nobis qui odit facere
22+
Vel sapiente impedit porro officiis voluptate
23+
Enim possimus adipisci debitis doloremque aut
24+
Consequuntur autem quas vitae unde officia
25+
Veniam fugit dolor deleniti repellat quidem
26+
Non enim quas similique praesentium sequi
27+
Ducimus officia nisi sapiente repellat explicabo
28+
Odio quos vero vel VeniamtakenTimes error
29+
Quo consectetur architecto praesentium sed ducimus
30+
Enim temporibus minus expedita dolor recusandae
31+
Architecto sit illum aut deserunt nulla
32+
Fuga dolor alias nemo quia aliquid
33+
Eveniet quia ratione asperiores temporibus dolorum
34+
Fugit quibusdam ipsum omnis accusantium iusto
35+
Iure suscipit dolor sed placeat velit
36+
Natus maxime ipsa at non architecto
37+
Aliquid in et quisquam ducimus ipsa
38+
Maxime beatae culpa eaque a voluptate
39+
Illum culpa cumque suscipit itaque repellendus
40+
SuscipittakenTimes modi Maxime qui quaerat provident
41+
Debitis officia ex vero dolorum voluptatibus
42+
Illum atque quis accusantium NemotakenTimes natus
43+
Voluptate obcaecati accusantium aut corporis dolorum
44+
Assumenda incidunt quae officiis perspiciatis facilis
45+
Consectetur repellat iusto doloremque aliquam debitis
46+
Neque assumenda dolorum quam alias mollitia
47+
Voluptatibus dolorem nihil illum CumquetakenTimes dignissimos
48+
Tempore natus quidem vel porro nostrum
49+
Consequuntur temporibus neque aliquid expedita dicta
50+
Totam nihil natus culpa nulla atque
51+
Facilis laudantium natus eius qui maxime
52+
Pariatur nostrum quasi itaque quo ut
53+
At animi amet mollitia PraesentiumtakenTimes quisquam
54+
Exercitationem corrupti repudiandae dolorem nobis ipsa
55+
Nulla ipsa architecto sit qui expedita
56+
Deleniti voluptate adipisci sed fuga ipsam
57+
DucimustakenTimes vitae amet QuastakenTimes dignissimos provident
58+
Asperiores perspiciatis dicta molestiae aspernatur consequuntur
59+
Dolor voluptatibus deserunt quae omnis excepturi
60+
Officiis eligendi debitis saepe ipsa magni
61+
Assumenda numquam fugiat quam deserunt necessitatibus
62+
Necessitatibus harum in voluptatem ipsam placeat
63+
Suscipit quo iusto aspernatur magnam aliquid
64+
Accusamus explicabo natus quas magni libero
65+
Corporis ipsa natus eos vitae quasi
66+
Similique possimus nobis odit tempore veritatis
67+
Repudiandae totam magni eos expedita at
68+
Repudiandae necessitatibus numquam id temporibus vel
69+
Dignissimos laborum esse eveniet in omnis
70+
Vel consequatur impedit fugit maiores enim
71+
Animi ullam aliquam reiciendis architecto eligendi
72+
Eius similique at quis quae officia
73+
Dolor quas unde ullam iure sint
74+
Veritatis dicta ipsum sed saepe quod
75+
Unde provident quas ducimus omnis recusandae
76+
Dolorem a facilis laboriosam debitis hic
77+
Saepe sed unde voluptas vitae accusantium
78+
Similique quidem quaerat molestiae veniam officiis
79+
Corporis aliquid voluptates quibusdam repellendus impedit
80+
Cum aliquid fuga cumque odio beatae
81+
Deleniti consequuntur fugit veniam AdtakenTimes qui
82+
Odit dolorum assumenda est sit neque
83+
Est doloribus ipsum exercitationem distinctio quaerat
84+
AssumendatakenTimes fuga sequi CorruptitakenTimes officia ut
85+
Ipsa cupiditate dicta quibusdam recusandae corporis
86+
Dicta cumque nam ad suscipit aut
87+
Corrupti itaque sequi illo similique deserunt
88+
Ad quisquam saepe repellendus TemporetakenTimes laborum
89+
Numquam natus sapiente quasi repellendus dolore
90+
Minima quas voluptatem quo corporis non
91+
Repudiandae sequi dolor cumque eaque eos
92+
Aperiam autem illo placeat rem accusamus
93+
A iste et ullam hic illum
94+
Debitis reprehenderit tenetur eligendi quibusdam placeat
95+
Quas reprehenderit dolorum cumque totam maiores
96+
Aliquam molestiae facere eius facilis possimus
97+
Minus fuga distinctio velit accusamus similique
98+
Nesciunt totam maiores laborum obcaecati saepe
99+
Natus aspernatur quaerat sapiente incidunt ex
100+
Consectetur quo id repudiandae facere corrupti

screenshot.png

41.5 KB
Loading

0 commit comments

Comments
 (0)