Created
November 12, 2015 04:35
-
-
Save widnyana/6a60e6180daaa103ba67 to your computer and use it in GitHub Desktop.
a noobs attempt to ansvia codetalent.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
''' | |
Copyright (C) 2015 Ansvia, Pt. | |
#Code challenge goal: | |
Ekstrak nama-nama user yang diawali dengan karakter `@` seperti pada text berikut : | |
``` | |
hi @budi kamu tahu dimana si @agus? Tadi dia di sini sama @marta.cantik | |
``` | |
Hasil yang diharapkan adalah berupa list nama-nama user tanpa tanda `@` seperti berikut : | |
``` | |
["budi","agus","marta.cantik"] | |
``` | |
Dan output yang diharapkan muncul di layar kurang lebih seperti berikut: | |
``` | |
testing... | |
User names: | |
+ budi | |
+ agus | |
+ marta.cantik | |
SUCCESS. | |
``` | |
* NOTE: Untuk menjalankan-nya bisa menggunakan script `run.sh` yang telah kami persiapkan | |
* atau dengan cara Anda sendiri. | |
* | |
* RULES: | |
* | |
* 1. Hanya boleh menuliskan kode di dalam method yang telah ditandai dengan @TODO(you): code here. | |
* 2. Tidak diperbolehkan merubah access attribute baik untuk method maupun variable yang sudah ada. | |
* 3. Setelah selesai segera kirimkan code perubahan-nya ke email `code.challenge@ansvia.com` | |
''' | |
import unittest | |
text = "hi @budi kamu tahu dimana si @agus? Tadi dia di sini sama @marta.cantik" | |
expected_user_name = ["budi", "agus", "marta.cantik"] | |
def extract_user_names(string_to_check): | |
def clean(string): | |
ignored = { | |
"@": "", | |
"?": "" | |
} | |
for k, v in ignored.items(): | |
string = string.replace(k, v) | |
return string | |
ext = [clean(x) for x in string_to_check.split(" ") if x.startswith("@")] | |
return ext | |
class TestExtract(unittest.TestCase): | |
def test_extract_user_name(self): | |
self.failUnlessEqual(extract_user_names(text), expected_user_name) | |
if __name__ == '__main__': | |
unittest.main() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment