Skip to content
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

feat: refactor string package remove-last #1079

Merged
merged 14 commits into from
Sep 21, 2023
Merged

feat: refactor string package remove-last #1079

merged 14 commits into from
Sep 21, 2023

Conversation

steff456
Copy link
Contributor

@steff456 steff456 commented Aug 8, 2023

Part of #1062

Description

What is the purpose of this pull request?

This pull request:

  • Refactors the string package @stdlib/string/remove-last
  • Adds @stdlib/string/base/remove-last
  • Adds @stdlib/string/base/remove-last-code-point
  • Adds @stdlib/string/base/remove-last-grapheme-cluster
  • Fixes the name in the package.json in @stdlib/string/base/remove-first, @stdlib/string/base/remove-first-code-point, @stdlib/string/base/remove-first-grapheme-cluster

Related Issues

Does this pull request have any related issues?

This pull request:

Questions

Any questions for reviewers of this pull request?

No.

Other

Any other information relevant to this pull request? This may include screenshots, references, and/or implementation notes.

No.

Checklist

Please ensure the following tasks are completed before submitting this pull request.


@stdlib-js/reviewers

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}125/137$
$\color{green}+91.24\%$
$\color{red}8/9$
$\color{green}+88.89\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}125/137$
$\color{green}+91.24\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{red}125/137$
$\color{green}+91.24\%$
$\color{red}8/9$
$\color{green}+88.89\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}125/137$
$\color{green}+91.24\%$
string/base/remove-last-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}125/137$
$\color{green}+91.24\%$
$\color{red}8/9$
$\color{green}+88.89\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}125/137$
$\color{green}+91.24\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{red}125/137$
$\color{green}+91.24\%$
$\color{red}8/9$
$\color{green}+88.89\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}125/137$
$\color{green}+91.24\%$
string/base/remove-last-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

Copy link
Member

@kgryte kgryte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this @steff456. Left a few comments regarding the handling of code points and grapheme clusters. Once these are resolved, should be ready for merge.

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-last-grapheme-cluster $\color{green}127/127$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}127/127$
$\color{green}+100.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-last-grapheme-cluster $\color{green}127/127$
$\color{green}+100.00\%$
$\color{green}9/9$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}127/127$
$\color{green}+100.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}177/177$
$\color{green}+100.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{red}134/137$
$\color{green}+97.81\%$
$\color{red}9/10$
$\color{green}+90.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{red}134/137$
$\color{green}+97.81\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{green}127/127$
$\color{green}+0.00\%$
$\color{green}9/9$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}127/127$
$\color{green}+0.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{green}127/127$
$\color{green}+0.00\%$
$\color{green}9/9$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}127/127$
$\color{green}+0.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{red}133/135$
$\color{red}--1.48\%$
$\color{red}10/11$
$\color{red}--9.09\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{red}133/135$
$\color{red}--1.48\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{green}132/132$
$\color{green}+1.50\%$
$\color{green}10/10$
$\color{green}+10.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}132/132$
$\color{green}+1.50\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}172/172$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}172/172$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

i = 0;
num = 0;
while ( num < total - n ) {
i = nextGraphemeClusterBreak( str, i );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This works and should be fine for now. Leaving a comment for future reference that this is a two-pass algorithm. Once we update prev-grapheme-cluster-break, we should be able to implement as a one-pass algorithm.

Copy link
Member

@kgryte kgryte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@steff456 All review comments have now been addressed. This is ready for merge.

@stdlib-bot
Copy link
Contributor

Coverage Report

Package Statements Branches Functions Lines
string/base/remove-first-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-first-grapheme-cluster $\color{green}121/121$
$\color{green}+100.00\%$
$\color{green}7/7$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}121/121$
$\color{green}+100.00\%$
string/base/remove-first $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/base/remove-last-code-point $\color{green}137/137$
$\color{green}+100.00\%$
$\color{green}12/12$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}137/137$
$\color{green}+100.00\%$
string/base/remove-last-grapheme-cluster $\color{green}132/132$
$\color{green}+0.00\%$
$\color{green}10/10$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}132/132$
$\color{green}+0.00\%$
string/base/remove-last $\color{green}96/96$
$\color{green}+100.00\%$
$\color{green}3/3$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}96/96$
$\color{green}+100.00\%$
string/remove-first $\color{green}177/177$
$\color{green}+0.00\%$
$\color{green}20/20$
$\color{green}+0.00\%$
$\color{green}1/1$
$\color{green}+0.00\%$
$\color{green}177/177$
$\color{green}+0.00\%$
string/remove-last $\color{green}173/173$
$\color{green}+100.00\%$
$\color{green}20/20$
$\color{green}+100.00\%$
$\color{green}1/1$
$\color{green}+100.00\%$
$\color{green}173/173$
$\color{green}+100.00\%$

The above coverage report was generated for the changes in this PR.

@kgryte kgryte merged commit 982de75 into develop Sep 21, 2023
9 checks passed
@kgryte kgryte deleted the remove-last branch September 21, 2023 21:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants