stdlib-js / stdlib-js/stdlib

[RFC]: add `@stdlib/assert/is-complex-string`

Open
#1,370 14 comments 0 reactions 0 assignees View on GitHub
Accepted difficulty: 2 Feature Good First Issue JavaScript priority: Normal RFC
Dominant language
JavaScript
Stars
6k
Forks
1.3k
Avg merge
1d 3h
Merged PRs (30d)
611

Description

### Description

This RFC proposes adding package `@stdlib/assert/is-complex-string`.

The package should be similar in structure to [`@stdlib/complex/reviver-float32`](https://github.com/stdlib-js/stdlib/tree/64931c5fdb4abc3a339b619658d3b5acc089e556/lib/node_modules/%40stdlib/complex/reviver-float32).

The goal is to assert if an input string is of a complex number format string`(a + ib)` or `(a+bi)`
where, a and b are numbers

```js
function isComplexString( str ) => boolean
```

Eg : isComplexString( "32+12i" ) returns true
Eg : isComplexString( "32+i12" ) returns true
Eg : isComplexString( null ) returns true
Eg : isComplexString( "" ) returns false
Eg : isComplexString( "abcd+12i" ) returns false
Eg : isComplexString( Infinity ) returns false

> Package: `@stdlib/assert/is-complex-string` Alias: `isComplexString`

### Related Issues

Can help with issues #1332 and #1333

### Questions

This is my first issue so I'd like to know if the way I have proposed the feature is correct

### Other

_No response_

### Checklist

- [X] I have read and understood the [Code of Conduct](https://github.com/stdlib-js/stdlib/blob/develop/CODE_OF_CONDUCT.md).
- [X] Searched for existing issues and pull requests.
- [X] The issue name begins with `RFC:`.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing lib/node_modules/@stdlib/complex/reviver-float32 and the related issues #1332 and #1333. Clarify the accepted complex-string formats and contradictory examples, especially the null case, before defining what package behavior and completion criteria should be.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.