-
Notifications
You must be signed in to change notification settings - Fork 2
Expand emoji detection to detect Slack emojis #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
mbernson
wants to merge
2
commits into
jaapmengers:master
Choose a base branch
from
mbernson:feature/emoji-filtering
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,47 +1,67 @@ | ||
| const haikubot = require('./haiku'); | ||
|
|
||
| // Sources: | ||
| // - https://www.robinkerkhof.nl/poezie/haiku/haiku-gedichten/ | ||
| // - https://nl.wikipedia.org/wiki/Haiku_(dichtvorm) | ||
| const validHaikus = [ | ||
| "Een bliksemschicht flitst, en een purperreiger schreeuwt in de duisternis.", | ||
| "Een bliksemschicht flitst, en een purperreiger :scream_cat: in de duisternis.", | ||
| "In het morgenrood op de tip van het graanblad de rijp van voorjaar.", | ||
| "Velden geel koolzaad de maan staat in het oosten de zon in westen.", | ||
| "Dikke huisjesslak, ook jij beklimt de Fuji – maar langzaam, langzaam.", | ||
| "Ach oude vijver, de kikkers springen erin - geluid van water.", | ||
| "door zomerregens zijn de kraanvogelpoten korter geworden", | ||
| "Twitterende kwal, Kwetteren is wat je zal, Maar niet in mijn nest.", | ||
| "na de plechtigheid. tientallen handen schudden. geen naam onthouden", | ||
| "het druppelen van een waterkraan beklemtoont de stilte in huis", | ||
| "Denk je nou echt dat je de haiku bot kan fop? Stomme guido san", | ||
| "Animaties kan ik nog in meekomen, maar die scrolljacking :cry:", | ||
| "zou ik ze pakken, de witvis in 't wier bijeen, dan schoten ze weg", | ||
| ]; | ||
| function log() {} | ||
|
|
||
| const invalidHaikus = [ | ||
| "jaap hij is stuk alles is een haiku zie je", // Contains unicode zero width spacers ("\u200B") | ||
| "Laag over de spoorlijn vliegen de wilde ganzen door maan beschenen.", | ||
| ]; | ||
|
|
||
| function log() { } | ||
|
|
||
| validHaikus.forEach((haiku) => { | ||
| test(`'${haiku}' is a valid haiku.`, () => { | ||
| describe(`Valid haikus`, () => { | ||
| // Sources: | ||
| // - https://www.robinkerkhof.nl/poezie/haiku/haiku-gedichten/ | ||
| // - https://nl.wikipedia.org/wiki/Haiku_(dichtvorm) | ||
| const validHaikus = [ | ||
| "Een bliksemschicht flitst, en een purperreiger schreeuwt in de duisternis.", | ||
| "In het morgenrood op de tip van het graanblad de rijp van voorjaar.", | ||
| "Velden geel koolzaad de maan staat in het oosten de zon in westen.", | ||
| "Dikke huisjesslak, ook jij beklimt de Fuji – maar langzaam, langzaam.", | ||
| "Ach oude vijver, de kikkers springen erin - geluid van water.", | ||
| "door zomerregens zijn de kraanvogelpoten korter geworden", | ||
| "Twitterende kwal, Kwetteren is wat je zal, Maar niet in mijn nest.", | ||
| "na de plechtigheid. tientallen handen schudden. geen naam onthouden", | ||
| "het druppelen van een waterkraan beklemtoont de stilte in huis", | ||
| "Denk je nou echt dat je de haiku bot kan fop? Stomme guido san", | ||
| "zou ik ze pakken, de witvis in 't wier bijeen, dan schoten ze weg", | ||
| ]; | ||
| it.each(validHaikus)("'%s' is a valid haiku", (haiku) => { | ||
| const words = haikubot.expandMessage(haiku); | ||
| const possibleHaiku = haikubot.tryAndMakeHaiku(words, log); | ||
|
|
||
| expect(possibleHaiku).toBeDefined(); | ||
| expect(typeof possibleHaiku).toEqual('object'); // Array | ||
| expect(possibleHaiku.length).toEqual(3); // Three word groups | ||
| }); | ||
| }) | ||
| }); | ||
|
|
||
| invalidHaikus.forEach((haiku) => { | ||
| test(`'${haiku}' is not a valid haiku.`, () => { | ||
| describe(`Invalid haikus`, () => { | ||
| const invalidHaikus = [ | ||
| "jaap hij is stuk alles is een haiku zie je", // Contains unicode zero width spacers ("\u200B") | ||
| "Laag over de spoorlijn vliegen de wilde ganzen door maan beschenen.", | ||
| "Een bliksemschicht flitst, en een purperreiger :scream_cat: in de duisternis.", | ||
| "Animaties kan ik nog in meekomen, maar die scrolljacking :cry:", | ||
| ]; | ||
| it.each(invalidHaikus)("'%s' is not a valid haiku", (haiku) => { | ||
| const words = haikubot.expandMessage(haiku); | ||
| const possibleHaiku = haikubot.tryAndMakeHaiku(words, log); | ||
|
|
||
| expect(possibleHaiku).toBeUndefined(); | ||
| }); | ||
| }) | ||
| }); | ||
|
|
||
| describe(`Valid emojis`, () => { | ||
| const emojis = [ | ||
| ":writing_hand:", ":cherry_blossom:", ":scream_cat:", | ||
| ":1000-9138:", ":björkloven:", ":bitterballen-party:", ":aliensguy-8174:", | ||
| ":1337:", ":1337-pride:" | ||
| ]; | ||
| it.each(emojis)("'%s' is a valid emoji", (emoji) => { | ||
| expect(haikubot.isEmoji(emoji)).toBeTruthy(); | ||
| }); | ||
| }); | ||
|
|
||
| describe(`Invalid emojis`, () => { | ||
| const notEmojis = [ | ||
| ":writing_hand", "writing_hand:", "writing_hand", "writing_hand", "writing_hand", "writing_hand", | ||
| "Hey: I thought.:", "What: is: this:?", "This is a sentence with a :emoji: in it", "This is a sentence with a :emoji: in it", | ||
| ":foo bar:", ":foo", "bar:", "Hello", "World", "word", "w0rd", "1234", | ||
| ]; | ||
| it.each(notEmojis)("'%s' is not a valid emoji", (emoji) => { | ||
| expect(haikubot.isEmoji(emoji)).toBeFalsy(); | ||
| }); | ||
| }); |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Currently, emojis are considered to be a single-syllable word. Should we filter out the emoji entirely instead?