diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index dab5d2a..0000000 --- a/.editorconfig +++ /dev/null @@ -1,180 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# EditorConfig configuration file (see ). - -# Indicate that this file is a root-level configuration file: -root = true - -# Set properties for all files: -[*] -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -# Set properties for JavaScript files: -[*.{js,js.txt}] -indent_style = tab - -# Set properties for JavaScript ES module files: -[*.{mjs,mjs.txt}] -indent_style = tab - -# Set properties for JavaScript CommonJS files: -[*.{cjs,cjs.txt}] -indent_style = tab - -# Set properties for JSON files: -[*.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `cli_opts.json` files: -[cli_opts.json] -indent_style = tab - -# Set properties for TypeScript files: -[*.ts] -indent_style = tab - -# Set properties for Python files: -[*.{py,py.txt}] -indent_style = space -indent_size = 4 - -# Set properties for Julia files: -[*.{jl,jl.txt}] -indent_style = tab - -# Set properties for R files: -[*.{R,R.txt}] -indent_style = tab - -# Set properties for C files: -[*.{c,c.txt}] -indent_style = tab - -# Set properties for C header files: -[*.{h,h.txt}] -indent_style = tab - -# Set properties for C++ files: -[*.{cpp,cpp.txt}] -indent_style = tab - -# Set properties for C++ header files: -[*.{hpp,hpp.txt}] -indent_style = tab - -# Set properties for Fortran files: -[*.{f,f.txt}] -indent_style = space -indent_size = 2 - -# Set properties for shell files: -[*.{sh,sh.txt}] -indent_style = tab - -# Set properties for AWK files: -[*.{awk,awk.txt}] -indent_style = tab - -# Set properties for HTML files: -[*.{html,html.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for XML files: -[*.{xml,xml.txt}] -indent_style = tab -tab_width = 2 - -# Set properties for CSS files: -[*.{css,css.txt}] -indent_style = tab - -# Set properties for Makefiles: -[Makefile] -indent_style = tab - -[*.{mk,mk.txt}] -indent_style = tab - -# Set properties for Markdown files: -[*.{md,md.txt}] -indent_style = space -indent_size = 4 -trim_trailing_whitespace = true # Note: this disables using two spaces to force a hard line break, which is permitted in Markdown. As we don't typically follow that practice (TMK), we should be safe to automatically trim. - -# Set properties for `usage.txt` files: -[usage.txt] -indent_style = space -indent_size = 2 - -# Set properties for `repl.txt` files: -[repl.txt] -indent_style = space -indent_size = 4 - -# Set properties for `package.json` files: -[package.{json,json.txt}] -indent_style = space -indent_size = 2 - -# Set properties for `datapackage.json` files: -[datapackage.json] -indent_style = space -indent_size = 2 - -# Set properties for `manifest.json` files: -[manifest.json] -indent_style = space -indent_size = 2 - -# Set properties for `tsconfig.json` files: -[tsconfig.json] -indent_style = space -indent_size = 2 - -# Set properties for LaTeX files: -[*.{tex,tex.txt}] -indent_style = tab - -# Set properties for LaTeX Bibliography files: -[*.{bib,bib.txt}] -indent_style = tab - -# Set properties for YAML files: -[*.{yml,yml.txt}] -indent_style = space -indent_size = 2 - -# Set properties for GYP files: -[binding.gyp] -indent_style = space -indent_size = 2 - -[*.gypi] -indent_style = space -indent_size = 2 - -# Set properties for citation files: -[*.{cff,cff.txt}] -indent_style = space -indent_size = 2 diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 5f30286..0000000 --- a/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -/* For the `eslint` rules of this project, consult the main repository at https://github.com/stdlib-js/stdlib */ diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1c88e69..0000000 --- a/.gitattributes +++ /dev/null @@ -1,66 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2017 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Configuration file which assigns attributes to pathnames. -# -# [1]: https://git-scm.com/docs/gitattributes - -# Automatically normalize the line endings of any committed text files: -* text=auto - -# Override line endings for certain files on checkout: -*.crlf.csv text eol=crlf - -# Denote that certain files are binary and should not be modified: -*.png binary -*.jpg binary -*.jpeg binary -*.gif binary -*.ico binary -*.gz binary -*.zip binary -*.7z binary -*.mp3 binary -*.mp4 binary -*.mov binary - -# Override what is considered "vendored" by GitHub's linguist: -/lib/node_modules/** -linguist-vendored -linguist-generated - -# Configure directories which should *not* be included in GitHub language statistics: -/deps/** linguist-vendored -/dist/** linguist-generated -/workshops/** linguist-vendored - -benchmark/** linguist-vendored -docs/* linguist-documentation -etc/** linguist-vendored -examples/** linguist-documentation -scripts/** linguist-vendored -test/** linguist-vendored -tools/** linguist-vendored - -# Configure files which should *not* be included in GitHub language statistics: -Makefile linguist-vendored -*.mk linguist-vendored -*.jl linguist-vendored -*.py linguist-vendored -*.R linguist-vendored - -# Configure files which should be included in GitHub language statistics: -docs/types/*.d.ts -linguist-documentation diff --git a/.github/.keepalive b/.github/.keepalive deleted file mode 100644 index a20cad7..0000000 --- a/.github/.keepalive +++ /dev/null @@ -1 +0,0 @@ -2025-04-14T00:31:16.651Z diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md deleted file mode 100644 index 5b48e10..0000000 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ /dev/null @@ -1,7 +0,0 @@ - - -We are excited about your pull request, but unfortunately we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/ndarray/ctor) of the main repository where we’ll review and provide feedback. - -If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. You may also consult the [development guide](https://github.com/stdlib-js/stdlib/blob/develop/docs/contributing/development.md) for help on developing stdlib. - -We look forward to receiving your contribution! :smiley: \ No newline at end of file diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml deleted file mode 100644 index e4f10fe..0000000 --- a/.github/workflows/benchmark.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: benchmark - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run benchmarks: - benchmark: - - # Define a display name: - name: 'Run benchmarks' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run benchmarks: - - name: 'Run benchmarks' - run: | - npm run benchmark diff --git a/.github/workflows/cancel.yml b/.github/workflows/cancel.yml deleted file mode 100644 index b5291db..0000000 --- a/.github/workflows/cancel.yml +++ /dev/null @@ -1,57 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: cancel - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to cancel existing workflow runs: - cancel: - - # Define a display name: - name: 'Cancel workflow runs' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Time limit: - timeout-minutes: 3 - - # Define the sequence of job steps... - steps: - - # Cancel existing workflow runs: - - name: 'Cancel existing workflow runs' - # Pin action to full length commit SHA - uses: styfle/cancel-workflow-action@85880fa0301c86cca9da44039ee3bb12d3bedbfa # v0.12.1 - with: - workflow_id: >- - benchmark.yml, - examples.yml, - test.yml, - test_coverage.yml, - test_install.yml, - publish.yml - access_token: ${{ github.token }} diff --git a/.github/workflows/close_pull_requests.yml b/.github/workflows/close_pull_requests.yml deleted file mode 100644 index 87e7c1a..0000000 --- a/.github/workflows/close_pull_requests.yml +++ /dev/null @@ -1,54 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: close_pull_requests - -# Workflow triggers: -on: - pull_request_target: - types: [opened] - -# Workflow jobs: -jobs: - - # Define job to close all pull requests: - run: - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Close pull request - - name: 'Close pull request' - # Pin action to full length commit SHA corresponding to v3.1.2 - uses: superbrothers/close-pull-request@9c18513d320d7b2c7185fb93396d0c664d5d8448 - with: - comment: | - Thank you for submitting a pull request. :raised_hands: - - We greatly appreciate your willingness to submit a contribution. However, we are not accepting pull requests against this repository, as all development happens on the [main project repository](https://github.com/stdlib-js/stdlib). - - We kindly request that you submit this pull request against the [respective directory](https://github.com/stdlib-js/stdlib/tree/develop/lib/node_modules/%40stdlib/ndarray/ctor) of the main repository where we’ll review and provide feedback. If this is your first stdlib contribution, be sure to read the [contributing guide](https://github.com/stdlib-js/stdlib/blob/develop/CONTRIBUTING.md) which provides guidelines and instructions for submitting contributions. - - Thank you again, and we look forward to receiving your contribution! :smiley: - - Best, - The stdlib team \ No newline at end of file diff --git a/.github/workflows/examples.yml b/.github/workflows/examples.yml deleted file mode 100644 index 2984901..0000000 --- a/.github/workflows/examples.yml +++ /dev/null @@ -1,64 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2021 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: examples - -# Workflow triggers: -on: - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job to run the package examples... - examples: - - # Define display name: - name: 'Run examples' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - - # Checkout repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Run examples: - - name: 'Run examples' - run: | - npm run examples diff --git a/.github/workflows/npm_downloads.yml b/.github/workflows/npm_downloads.yml deleted file mode 100644 index 5a4c3e6..0000000 --- a/.github/workflows/npm_downloads.yml +++ /dev/null @@ -1,112 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: npm_downloads - -# Workflow triggers: -on: - # Run this workflow weekly: - schedule: - # cron: ' ' - - cron: '1 1 * * 2' - - # Allow the workflow to be manually run: - workflow_dispatch: - -# Workflow jobs: -jobs: - - # Define a job for retrieving npm download counts... - npm_downloads: - - # Define display name: - name: 'Retrieve npm download counts' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - timeout-minutes: 10 - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Resolve package name: - - name: 'Resolve package name' - id: package_name - run: | - name=`node -e 'console.log(require("./package.json").name)' | tr -d '\n'` - echo "package_name=$name" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Fetch download data: - - name: 'Fetch data' - id: download_data - run: | - url="https://api.npmjs.org/downloads/range/$(date --date='1 year ago' '+%Y-%m-%d'):$(date '+%Y-%m-%d')/${{ steps.package_name.outputs.package_name }}" - echo "$url" - data=$(curl "$url") - mkdir ./tmp - echo "$data" > ./tmp/npm_downloads.json - echo "data=$data" >> $GITHUB_OUTPUT - timeout-minutes: 5 - - # Print summary of download data: - - name: 'Print summary' - run: | - echo "| Date | Downloads |" >> $GITHUB_STEP_SUMMARY - echo "|------|------------|" >> $GITHUB_STEP_SUMMARY - cat ./tmp/npm_downloads.json | jq -r ".downloads | .[-14:] | to_entries | map(\"| \(.value.day) | \(.value.downloads) |\") |.[]" >> $GITHUB_STEP_SUMMARY - - # Upload the download data: - - name: 'Upload data' - # Pin action to full length commit SHA - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 - with: - # Define a name for the uploaded artifact (ensuring a unique name for each job): - name: npm_downloads - - # Specify the path to the file to upload: - path: ./tmp/npm_downloads.json - - # Specify the number of days to retain the artifact (default is 90 days): - retention-days: 90 - timeout-minutes: 10 - if: success() - - # Send data to events server: - - name: 'Post data' - # Pin action to full length commit SHA - uses: distributhor/workflow-webhook@48a40b380ce4593b6a6676528cd005986ae56629 # v3.0.3 - env: - webhook_url: ${{ secrets.STDLIB_NPM_DOWNLOADS_URL }} - webhook_secret: ${{ secrets.STDLIB_WEBHOOK_SECRET }} - data: '{ "downloads": ${{ steps.download_data.outputs.data }} }' - timeout-minutes: 5 - if: success() diff --git a/.github/workflows/productionize.yml b/.github/workflows/productionize.yml deleted file mode 100644 index f4575e9..0000000 --- a/.github/workflows/productionize.yml +++ /dev/null @@ -1,794 +0,0 @@ -#/ -# @license Apache-2.0 -# -# Copyright (c) 2022 The Stdlib Authors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -#/ - -# Workflow name: -name: productionize - -# Workflow triggers: -on: - # Run workflow when a new commit is pushed to the main branch: - push: - branches: - - main - - # Allow the workflow to be manually run: - workflow_dispatch: - inputs: - require-passing-tests: - description: 'Require passing tests for creating bundles' - type: boolean - default: true - - # Run workflow upon completion of `publish` workflow run: - workflow_run: - workflows: ["publish"] - types: [completed] - - -# Concurrency group to prevent multiple concurrent executions: -concurrency: - group: productionize - cancel-in-progress: true - -# Workflow jobs: -jobs: - - # Define a job to create a production build... - productionize: - - # Define display name: - name: 'Productionize' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Define the sequence of job steps... - steps: - # Checkout main branch of repository: - - name: 'Checkout main branch' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - ref: main - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Create production branch: - - name: 'Create production branch' - run: | - git checkout -b production - - # Transform error messages: - - name: 'Transform error messages' - id: transform-error-messages - uses: stdlib-js/transform-errors-action@main - - # Change `@stdlib/string-format` to `@stdlib/error-tools-fmtprodmsg` in package.json if the former is a dependency, otherwise insert it as a dependency: - - name: 'Update dependencies in package.json' - run: | - PKG_VERSION=$(npm view @stdlib/error-tools-fmtprodmsg version) - if grep -q '"@stdlib/string-format"' package.json; then - sed -i "s/\"@stdlib\/string-format\": \"^.*\"/\"@stdlib\/error-tools-fmtprodmsg\": \"^$PKG_VERSION\"/g" package.json - else - node -e "var pkg = require( './package.json' ); pkg.dependencies[ '@stdlib/error-tools-fmtprodmsg' ] = '^$PKG_VERSION'; require( 'fs' ).writeFileSync( 'package.json', JSON.stringify( pkg, null, 2 ) );" - fi - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Transform error messages" - - # Push changes: - - name: 'Push changes' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" production --force - - # Define a job for running tests of the productionized code... - test: - - # Define a display name: - name: 'Run Tests' - - # Define the type of virtual host machine: - runs-on: 'ubuntu-latest' - - # Indicate that this job depends on the prior job finishing: - needs: productionize - - # Run this job regardless of the outcome of the prior job: - if: always() - - # Define the sequence of job steps... - steps: - - # Checkout the repository: - - name: 'Checkout repository' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - with: - # Use the `production` branch: - ref: production - - # Install Node.js: - - name: 'Install Node.js' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Build native add-on if present: - - name: 'Build native add-on (if present)' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - run: | - if [ -f "binding.gyp" ]; then - npm install node-gyp --no-save && ./node_modules/.bin/node-gyp rebuild - fi - - # Run tests: - - name: 'Run tests' - if: ${{ github.event.inputs.require-passing-tests == 'true' }} - id: tests - run: | - npm test || npm test || npm test - - # Define job to create a bundle for use in Deno... - deno: - - # Define display name: - name: 'Create Deno bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `deno` branch exists: - - name: 'Check if remote `deno` branch exists' - id: deno-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin deno - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `deno` exists, delete everything in branch and merge `production` into it - - name: 'If `deno` exists, delete everything in branch and merge `production` into it' - if: steps.deno-branch-exists.outputs.remote-exists - run: | - git checkout -b deno origin/deno - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `deno` does not exist, create `deno` branch: - - name: 'If `deno` does not exist, create `deno` branch' - if: ${{ steps.deno-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b deno - - # Copy files to deno directory: - - name: 'Copy files to deno directory' - run: | - mkdir -p deno - cp README.md LICENSE CONTRIBUTORS NOTICE ./deno - - # Copy TypeScript definitions to deno directory: - if [ -d index.d.ts ]; then - cp index.d.ts ./deno/index.d.ts - fi - if [ -e ./docs/types/index.d.ts ]; then - cp ./docs/types/index.d.ts ./deno/mod.d.ts - fi - - # Install Node.js: - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: Install production and development dependencies - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Bundle package for use in Deno: - - name: 'Bundle package for Deno' - id: deno-bundle - uses: stdlib-js/bundle-action@main - with: - target: 'deno' - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - # Replace links to other packages with links to the deno branch: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/deno/"; - - # Replace reference to `@stdlib/types` with CDN link: - find ./deno -type f -name '*.ts' -print0 | xargs -0 -r sed -Ei "s/\/\/\/ /\/\/\/ /g" - - # Change wording of project description to avoid reference to JavaScript and Node.js: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "s/a standard library for JavaScript and Node.js, /a standard library /g" - - # Rewrite all `require()`s to use jsDelivr links: - find ./deno -type f -name '*.md' -print0 | xargs -0 sed -Ei "/require\( '@stdlib\// { - s/(var|let|const)\s+([a-z0-9_]+)\s+=\s*require\( '([^']+)' \);/import \2 from \'\3\';/i - s/@stdlib/https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js/ - s/';/@deno\/mod.js';/ - }" - - # Rewrite first `import` to show importing of named exports if available: - exports=$(cat lib/index.js | \ - grep -E 'setReadOnly\(.*,.*,.*\)' | \ - sed -E 's/setReadOnly\((.*),(.*),(.*)\);/\2/' | \ - sed -E "s/'//g" | \ - sort) - if [ -n "$exports" ]; then - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\nimport\s+([a-zA-Z0-9_]+)\s+from\s*'([^']+)';\n\`\`\`/\`\`\`javascript\nimport \1 from '\2';\n\`\`\`\n\nYou can also import the following named exports from the package:\n\n\`\`\`javascript\nimport { $(echo $exports | sed -E 's/ /, /g') } from '\2';\n\`\`\`/" - fi - - # Remove `installation`, `cli`, and `c` sections: - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./deno -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Create package.json file for deno branch: - jq --indent 2 '{"name": .name, "version": .version, "description": .description, "license": .license, "type": "module", "main": "./mod.js", "homepage": .homepage, "repository": .repository, "bugs": .bugs, "keywords": .keywords, "funding": .funding}' package.json > ./deno/package.json - - # Delete everything in current directory aside from deno folder: - - name: 'Delete everything in current directory aside from deno folder' - run: | - find . -type 'f' | grep -v -e "deno" -e ".git/" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e "deno" -e ".git" | xargs -r rm -rf - - # Move deno directory to root: - - name: 'Move deno directory to root' - run: | - mv ./deno/* . - rmdir ./deno - - # Commit changes: - - name: 'Commit changes' - run: | - git add -A - git commit -m "Auto-generated commit" - - # Push changes to `deno` branch: - - name: 'Push changes to `deno` branch' - run: | - SLUG=${{ github.repository }} - echo "Pushing changes to $SLUG..." - git push "https://$GITHUB_ACTOR:$GITHUB_TOKEN@github.com/$SLUG.git" deno - - # Send status to Slack channel if job fails: - - name: 'Send status to Slack channel in case of failure' - # Pin action to full length commit SHA - uses: 8398a7/action-slack@28ba43ae48961b90635b50953d216767a6bea486 # v3.16.2 - with: - status: ${{ job.status }} - channel: '#npm-ci' - if: failure() - - # Define job to create a UMD bundle... - umd: - - # Define display name: - name: 'Create UMD bundle' - - # Define the type of virtual host machine on which to run the job: - runs-on: ubuntu-latest - - # Indicate that this job depends on the test job finishing: - needs: test - - # Define the sequence of job steps... - steps: - # Checkout the repository: - - name: 'Checkout repository' - # Pin action to full length commit SHA - uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0 - - # Configure Git: - - name: 'Configure Git' - run: | - git config --local user.email "noreply@stdlib.io" - git config --local user.name "stdlib-bot" - - # Check if remote `umd` branch exists: - - name: 'Check if remote `umd` branch exists' - id: umd-branch-exists - continue-on-error: true - run: | - git fetch --all - git ls-remote --exit-code --heads origin umd - if [ $? -eq 0 ]; then - echo "remote-exists=true" >> $GITHUB_OUTPUT - else - echo "remote-exists=false" >> $GITHUB_OUTPUT - fi - - # If `umd` exists, delete everything in branch and merge `production` into it - - name: 'If `umd` exists, delete everything in branch and merge `production` into it' - if: steps.umd-branch-exists.outputs.remote-exists - run: | - git checkout -b umd origin/umd - - find . -type 'f' | grep -v -e ".git/" -e "package.json" -e "README.md" -e "LICENSE" -e "CONTRIBUTORS" -e "NOTICE" | xargs -r rm - find . -mindepth 1 -type 'd' | grep -v -e ".git" | xargs -r rm -rf - - git add -A - git commit -m "Remove files" --allow-empty - - git config merge.theirs.name 'simulate `-s theirs`' - git config merge.theirs.driver 'cat %B > %A' - GIT_CONFIG_PARAMETERS="'merge.default=theirs'" git merge origin/production --allow-unrelated-histories - - # Copy files from `production` branch if necessary: - git checkout origin/production -- . - if [ -n "$(git status --porcelain)" ]; then - git add -A - git commit -m "Auto-generated commit" - fi - - # If `umd` does not exist, create `umd` branch: - - name: 'If `umd` does not exist, create `umd` branch' - if: ${{ steps.umd-branch-exists.outputs.remote-exists == false }} - run: | - git checkout production - git checkout -b umd - - # Copy files to umd directory: - - name: 'Copy files to umd directory' - run: | - mkdir -p umd - cp README.md LICENSE CONTRIBUTORS NOTICE ./umd - - # Install Node.js - - name: 'Install Node.js' - # Pin action to full length commit SHA - uses: actions/setup-node@b39b52d1213e96004bfcb1c61a8a6fa8ab84f3e8 # v4.0.1 - with: - node-version: 20 - timeout-minutes: 5 - - # Install dependencies: - - name: 'Install production and development dependencies' - id: install - run: | - npm install || npm install || npm install - timeout-minutes: 15 - - # Extract alias: - - name: 'Extract alias' - id: extract-alias - run: | - alias=$(grep -E 'require\(' README.md | head -n 1 | sed -E 's/^var ([a-zA-Z0-9_]+) = .+/\1/') - echo "alias=${alias}" >> $GITHUB_OUTPUT - - # Create Universal Module Definition (UMD) Node.js bundle: - - name: 'Create Universal Module Definition (UMD) Node.js bundle' - id: umd-bundle-node - uses: stdlib-js/bundle-action@main - with: - target: 'umd-node' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Create Universal Module Definition (UMD) browser bundle: - - name: 'Create Universal Module Definition (UMD) browser bundle' - id: umd-bundle-browser - uses: stdlib-js/bundle-action@main - with: - target: 'umd-browser' - alias: ${{ steps.extract-alias.outputs.alias }} - - # Rewrite file contents: - - name: 'Rewrite file contents' - run: | - - # Replace links to other packages with links to the umd branch: - find ./umd -type f -name '*.md' -print0 | xargs -0 sed -Ei "/\/tree\/main/b; /^\[@stdlib[^:]+: https:\/\/github.com\/stdlib-js\// s/(.*)/\\1\/tree\/umd/"; - - # Remove `installation`, `cli`, and `c` sections: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/
[^<]+<\/section>//g;" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.cli \-\->//g" - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/(\* \* \*\n+)?
[\s\S]+<\!\-\- \/.c \-\->//g" - - # Rewrite first `require()` to show consumption of the UMD bundle in Observable and via a `script` tag: - find ./umd -type f -name '*.md' -print0 | xargs -0 perl -0777 -i -pe "s/\`\`\`javascript\n(var|let|const)\s+([a-zA-Z0-9_]+)\s+=\s*require\( '\@stdlib\/([^']+)' \);\n\`\`\`/To use in Observable,\n\n\`\`\`javascript\n\2 = require\( 'https:\/\/cdn.jsdelivr.net\/gh\/stdlib-js\/\3\@umd\/browser.js' \)\n\`\`\`\n\nTo vendor stdlib functionality and avoid installing dependency trees for Node.js, you can use the UMD server build:\n\n\`\`\`javascript\nvar \2 = require\( 'path\/to\/vendor\/umd\/\3\/index.js' \)\n\`\`\`\n\nTo include the bundle in a webpage,\n\n\`\`\`html\n + + + + diff --git a/test/dist/test.js b/test/dist/test.js deleted file mode 100644 index a8a9c60..0000000 --- a/test/dist/test.js +++ /dev/null @@ -1,33 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2023 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var main = require( './../../dist' ); - - -// TESTS // - -tape( 'main export is defined', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( main !== void 0, true, 'main export is defined' ); - t.end(); -}); diff --git a/test/test.argument_validation.js b/test/test.argument_validation.js deleted file mode 100644 index 5ee8493..0000000 --- a/test/test.argument_validation.js +++ /dev/null @@ -1,998 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the constructor throws an error if not provided a valid `dtype` argument', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var order; - var shape; - var i; - - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - {}, - [], - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( value, buffer, shape, strides, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `dtype` argument (options)', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var order; - var shape; - var i; - - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - {}, - [], - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( value, buffer, shape, strides, offset, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `buffer` argument', function test( t ) { - var strides; - var values; - var offset; - var dtype; - var order; - var shape; - var i; - - dtype = 'generic'; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - {}, - { - 'length': 10, - 'get': function noop() {}, - 'set': true - }, - { - 'length': 10, - 'get': true, - 'set': function noop() {} - }, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, value, shape, strides, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `buffer` argument (options)', function test( t ) { - var strides; - var values; - var offset; - var dtype; - var order; - var shape; - var i; - - dtype = 'generic'; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - {}, - { - 'length': 10, - 'get': function noop() {}, - 'set': true - }, - { - 'length': 10, - 'get': true, - 'set': function noop() {} - }, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, value, shape, strides, offset, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `shape` argument', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var dtype; - var order; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [ 1, 3.14 ], - [ -1, -2 ], - [ 1, '1' ], - [ 1, null ], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, value, strides, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `shape` argument (options)', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var dtype; - var order; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [ 1, 3.14 ], - [ -1, -2 ], - [ 1, '1' ], - [ 1, null ], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, value, strides, offset, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if the number of ndarray dimensions may cause stack limits to be exceeded', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var dtype; - var order; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 0.0, 1.0, 2.0, 3.0 ] ); - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - 1e5, - 1e6 - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - var shape = new Float64Array( value ); - ndarray( dtype, buffer, shape, strides, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if the number of ndarray dimensions may cause stack limits to be exceeded (options)', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var dtype; - var order; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 0.0, 1.0, 2.0, 3.0 ] ); - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - 1e5, - 1e6 - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - var shape = new Float64Array( value ); - ndarray( dtype, buffer, shape, strides, offset, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = [ 2, 2 ]; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - [ 1, 3.14 ], - [ -1, -3.14 ], - [ 1, '1' ], - [ 1, null ], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument (0d)', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = []; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - [ 1.1 ], - [ 1, 3.14 ], - [ -1, -3.14 ], - [ 1, '1' ], - [ 1, null ], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument (0d)', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = []; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - [ 1 ], - [ 2 ], - [ 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument (options)', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = [ 2, 2 ]; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - [ 1, 3.14 ], - [ -1, -3.14 ], - [ 1, '1' ], - [ 1, null ], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument (options; 0d)', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = []; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - [ 1.1 ], - [ 1, 3.14 ], - [ -1, -3.14 ], - [ 1, '1' ], - [ 1, null ], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument (number of dimensions)', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = [ 2, 2 ]; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - [ 1 ], - [ 4, 2, 1 ], - [ 4, 4, 2, 1 ], - [ 4, 4, 4, 2, 1 ], - [ 4, 4, 4, 4, 2, 1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), Error, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument (number of dimensions; 0d)', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = []; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - [], - [ 2, 1 ], - [ 4, 2, 1 ], - [ 4, 4, 2, 1 ], - [ 4, 4, 4, 2, 1 ], - [ 4, 4, 4, 4, 2, 1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), Error, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument (number of dimensions; options)', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = [ 2, 2 ]; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - [ 1 ], - [ 4, 2, 1 ], - [ 4, 4, 2, 1 ], - [ 4, 4, 4, 2, 1 ], - [ 4, 4, 4, 4, 2, 1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), Error, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `strides` argument (number of dimensions; options; 0d)', function test( t ) { - var values; - var offset; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - shape = []; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - order = 'row-major'; - offset = 0; - - values = [ - [], - [ 2, 1 ], - [ 4, 2, 1 ], - [ 4, 4, 2, 1 ], - [ 4, 4, 4, 2, 1 ], - [ 4, 4, 4, 4, 2, 1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), Error, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, value, offset, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `offset` argument', function test( t ) { - var strides; - var values; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - - values = [ - '5', - -5, - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, strides, value, order ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `offset` argument (options)', function test( t ) { - var strides; - var values; - var buffer; - var shape; - var dtype; - var order; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - - values = [ - '5', - -5, - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, strides, value, order, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `order` argument', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var dtype; - var shape; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - 'c', - 'f', - 'c-style', - 'fortran', - 'fortran-style', - 'row', - 'column', - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, strides, offset, value ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid `order` argument (options)', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var dtype; - var shape; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - 'c', - 'f', - 'c-style', - 'fortran', - 'fortran-style', - 'row', - 'column', - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, strides, offset, value, {} ); - }; - } -}); - -tape( 'the constructor throws an error if not provided a valid options argument', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var dtype; - var shape; - var order; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - strides = [ 2, 1 ]; - offset = 0; - order = 'row-major'; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray( dtype, buffer, shape, strides, offset, order, value ); - }; - } -}); - -tape( 'the constructor throws an error if provided an invalid option', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var dtype; - var shape; - var order; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - strides = [ 2, 1 ]; - offset = 0; - order = 'row-major'; - - values = [ - '5', - 5, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - var opts = { - 'mode': value - }; - ndarray( dtype, buffer, shape, strides, offset, order, opts ); - }; - } -}); - -tape( 'the constructor throws an error if not provided compatible input arguments', function test( t ) { - var strides; - var values; - var offset; - var buffer; - var order; - var dtype; - var shape; - var i; - - dtype = 'generic'; - buffer = [ 0.0, 1.0, 2.0, 3.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - values = [ - [ dtype, [ 0.0 ], shape, strides, offset, order ], - [ dtype, buffer, [ 3, 2 ], strides, offset, order ], - [ dtype, buffer, shape, [ 2, 2 ], offset, order ], - [ dtype, buffer, shape, strides, 2, order ], - [ dtype, buffer, shape, strides, 20, order ], - [ dtype, buffer, shape, [ 2, -1 ], offset, order ], - [ dtype, buffer, shape, [ -2, 1 ], offset, order ], - [ dtype, buffer, shape, [ -2, 1 ], 1, order ], - [ dtype, buffer, shape, [ -2, -1 ], offset, order ], - [ dtype, buffer, shape, [ -2, -1 ], 1, order ], - [ dtype, buffer, shape, [ -2, -1 ], 2, order ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), Error, 'throws an error when provided ' + JSON.stringify( values[ i ] ) ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - ndarray.apply( null, value ); - }; - } -}); diff --git a/test/test.copy_array.js b/test/test.copy_array.js deleted file mode 100644 index 7259781..0000000 --- a/test/test.copy_array.js +++ /dev/null @@ -1,66 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var isArray = require( '@stdlib/assert-is-array' ); -var copy = require( './../lib/copy_array.js' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof copy, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function copies the elements of an array-like input value and returns an output array', function test( t ) { - var arr; - var out; - - arr = [ 1.0, 2.0, 3.0 ]; - out = copy( arr, arr.length ); - - t.strictEqual( isArray( out ), true, 'returns an array' ); - t.notEqual( out, arr, 'returns a new instance' ); - t.deepEqual( arr, out, 'returns expected value' ); - - t.end(); -}); - -tape( 'the function copies the elements of an array-like input value and returns an output array (>64K elements)', function test( t ) { - var arr; - var out; - var i; - - arr = []; - for ( i = 0; i < 1e6; i++ ) { - arr.push( i ); - } - out = copy( arr, arr.length ); - - t.strictEqual( isArray( out ), true, 'returns an array' ); - t.notEqual( out, arr, 'returns a new instance' ); - t.deepEqual( arr, out, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.get.js b/test/test.instance.get.js deleted file mode 100644 index f741422..0000000 --- a/test/test.instance.get.js +++ /dev/null @@ -1,85 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var hasOwnProp = require( '@stdlib/assert-has-own-property' ); -var hasProp = require( '@stdlib/assert-has-property' ); -var isFunction = require( '@stdlib/assert-is-function' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'get' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'get' ), true, 'has property' ); - t.strictEqual( isFunction( arr.get ), true, 'has method' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'get' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'get' ), true, 'has property' ); - t.strictEqual( isFunction( arr.get ), true, 'has method' ); - t.end(); -}); diff --git a/test/test.instance.get_0d.js b/test/test.instance.get_0d.js deleted file mode 100644 index 481496f..0000000 --- a/test/test.instance.get_0d.js +++ /dev/null @@ -1,131 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method which throws an error if provided any arguments (0d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 0, - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get( value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get(), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element (0d; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.get(); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.get_1d.js b/test/test.instance.get_1d.js deleted file mode 100644 index 7d126a2..0000000 --- a/test/test.instance.get_1d.js +++ /dev/null @@ -1,1221 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method which throws an error if not provided an integer value (1d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get( value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.get( 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - v = arr.get( 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - v = arr.get( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - v = arr.get( 3 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.get( 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - v = arr.get( 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - v = arr.get( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - v = arr.get( 3 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=wrap; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.get( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - v = arr.get( 4 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - v = arr.get( 5 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - v = arr.get( -2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - v = arr.get( -1 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=clamp; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.get( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - v = arr.get( 4 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - v = arr.get( 5 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - v = arr.get( -2 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - v = arr.get( -1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=throw; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.get( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -3 ), 2.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=normalize; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.get( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.get( -3 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -11 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -3 ), 2.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; submode=[clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; submode=[clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; submode=[normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -3 ), 2.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; submode=[normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -3 ), 2.0, 'returns expected value' ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; submode=[wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; submode=[wrap,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; row-major; submode=[clamp,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (1d; column-major; submode=[clamp,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.get_2d.js b/test/test.instance.get_2d.js deleted file mode 100644 index d65c514..0000000 --- a/test/test.instance.get_2d.js +++ /dev/null @@ -1,1136 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method which throws an error if not provided an integer value (2d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ], 0 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 1 ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value, dim ) { - if ( dim === 0 ) { - return i; - } - return j; - - function i() { - arr.get( value, 0 ); - } - - function j() { - arr.get( 0, value ); - } - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.get( 0, 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.get( 0, 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.get( 1, 0 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.get( 1, 1 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.get( 0, 0 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.get( 0, 1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.get( 1, 0 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - v = arr.get( 1, 1 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 2, 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2, 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -2, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -2, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 0 ), 1.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -20, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 0 ), 1.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -20, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -2, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -2, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; submode=[wrap,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; submode=[clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 2, 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; submode=[clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2, 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -2, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; submode=[throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'throw', 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -2, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; submode=[normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( -2, 0 ), 1.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -20, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; submode=[normalize,normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'normalize', 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 0 ), 1.0, 'returns expected value' ); - - values = [ - [ 2, 4 ], - [ -20, -3 ], - [ 9, 10 ], - [ 3, 3 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; row-major; submode=[wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 2, 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (2d; column-major; submode=[wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, -3 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 9, 10 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 3, 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.get_3d.js b/test/test.instance.get_3d.js deleted file mode 100644 index 2e5b35e..0000000 --- a/test/test.instance.get_3d.js +++ /dev/null @@ -1,915 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method which throws an error if not provided an integer value (3d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ], 0 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 1 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 2 ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value, dim ) { - if ( dim === 0 ) { - return i; - } - if ( dim === 1 ) { - return j; - } - return k; - - function i() { - arr.get( value, 0, 0 ); - } - - function j() { - arr.get( 0, value, 0 ); - } - - function k() { - arr.get( 0, 0, value ); - } - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.get( 0, 0, 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.get( 0, 0, 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.get( 0, 1, 0 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.get( 0, 1, 1 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -2, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -2, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -3, 0 ), 1.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -20, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -3, 0 ), 1.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -2, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -2, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -2, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; submode=[wrap,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; submode=[clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; submode=[clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -2, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; submode=[throw,throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'throw', 'throw', 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -2, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; submode=[normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'row-major'; - strides = [ 3, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -3, 0 ), 1.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -20, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; submode=[normalize,normalize,normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'normalize', 'normalize', 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = [ 1, 3, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 3 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -3, 0 ), 1.0, 'returns expected value' ); - - values = [ - [ 2, 6, 100 ], - [ 0, -20, -4 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; row-major; submode=[wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (3d; column-major; submode=[wrap,wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 2, 6, 100 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -2, -4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 2, 0 ), 1.0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.get_4d.js b/test/test.instance.get_4d.js deleted file mode 100644 index 2fc6d8c..0000000 --- a/test/test.instance.get_4d.js +++ /dev/null @@ -1,931 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method which throws an error if not provided an integer value (4d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ], 0 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 1 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 2 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 3 ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value, dim ) { - if ( dim === 0 ) { - return i; - } - if ( dim === 1 ) { - return j; - } - if ( dim === 2 ) { - return k; - } - return l; - - function i() { - arr.get( value, 0, 0, 0 ); - } - - function j() { - arr.get( 0, value, 0, 0 ); - } - - function k() { - arr.get( 0, 0, value, 0 ); - } - - function l() { - arr.get( 0, 0, 0, value ); - } - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1, 0 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.get( 0, 0, 0, 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.get( 0, 0, 0, 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.get( 0, 0, 1, 0 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.get( 0, 0, 1, 1 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1, 0 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; submode=[wrap,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; submode=[clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; submode=[clamp,clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; submode=[throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'throw', 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; submode=[normalize,normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'normalize', 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; submode=[normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 10, 2, 2, 0 ], - [ -2, 6, -1, 9 ], - [ -5, -3, 4, -5 ], - [ 5, 5, 5, 5 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; row-major; submode=[wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (4d; column-major; submode=[wrap,wrap,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap', 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 10, 2, 2, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( -2, 6, -1, 9 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( -5, -3, 4, -5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 5, 5, 5, 5 ), 4.0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.get_nd.js b/test/test.instance.get_nd.js deleted file mode 100644 index b80a4c7..0000000 --- a/test/test.instance.get_nd.js +++ /dev/null @@ -1,874 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method which throws an error if not provided an integer value (>4d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - var j; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - for ( j = 0; j < shape.length; j++ ) { - t.throws( badValue( values[ i ], j ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - } - t.end(); - - function badValue( value, dim ) { - return function badValue() { - var args = new Array( shape.length ); - var i; - - for ( i = 0; i < args.length; i++ ) { - if ( i === dim ) { - args[ i ] = value; - } else { - args[ i ] = 0; - } - } - arr.get.apply( arr, args ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1, 0, 0 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.get( 0, 0, 0, 0, 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.get( 0, 0, 0, 0, 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.get( 0, 0, 0, 1, 0 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.get( 0, 0, 0, 1, 1 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1, 0 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -1, -1, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -1, -1, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -10, -10, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -10, -10, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -1, -1, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -1, -1, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; submode=[wrap,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; submode=[clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; submode=[clamp,clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; submode=[throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'throw', 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -1, -1, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; submode=[throw,throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'throw', 'throw', 'throw' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -1, -1, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; submode=[normalize,normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'normalize', 'normalize' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 0, 10, 10, 0, 0 ], - [ 0, 0, 5, 0, 0 ], - [ 0, 5, 6, 0, 0 ], - [ 0, -10, -10, 0, 0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.get.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; row-major; submode=[wrap,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'row-major'; - strides = [ 4, 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `get` method for retrieving an array element using subscripts (>4d; column-major; submode=[wrap,wrap,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap', 'clamp', 'clamp' ] - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2, 1, 1 ]; - order = 'column-major'; - strides = [ 1, 1, 2, 4, 4 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.get( 0, 10, 10, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 5, 0, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 5, 6, 0, 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, -1, -1, 0, 0 ), 2.0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.iget.js b/test/test.instance.iget.js deleted file mode 100644 index b61e3e4..0000000 --- a/test/test.instance.iget.js +++ /dev/null @@ -1,87 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var hasOwnProp = require( '@stdlib/assert-has-own-property' ); -var hasProp = require( '@stdlib/assert-has-property' ); -var isFunction = require( '@stdlib/assert-is-function' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'iget' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'iget' ), true, 'has property' ); - t.strictEqual( isFunction( arr.iget ), true, 'has method' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'iget' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'iget' ), true, 'has property' ); - t.strictEqual( isFunction( arr.iget ), true, 'has method' ); - - t.end(); -}); diff --git a/test/test.instance.iget_0d.js b/test/test.instance.iget_0d.js deleted file mode 100644 index 3af2790..0000000 --- a/test/test.instance.iget_0d.js +++ /dev/null @@ -1,86 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget(), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element (0d; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget(); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.iget_1d.js b/test/test.instance.iget_1d.js deleted file mode 100644 index 0f1e164..0000000 --- a/test/test.instance.iget_1d.js +++ /dev/null @@ -1,1335 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method which throws an error if not provided an integer value (1d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget( value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 6 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=wrap; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( -2 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 6 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=wrap; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( -2 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 6 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=wrap; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( -2 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 6 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=wrap; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( -2 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 6 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=clamp; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( -1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 6 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=clamp; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( -1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 6 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=clamp; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( -1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 6 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=clamp; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - var v; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( -1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 5 ], - [ 6 ], - [ -1 ], - [ -2 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 5 ], - [ 6 ], - [ -1 ], - [ -2 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 5 ], - [ 6 ], - [ -1 ], - [ -2 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 5 ], - [ 6 ], - [ -1 ], - [ -2 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - - values = [ - [ 5 ], - [ 6 ], - [ -10 ], - [ -20 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 5 ], - [ 6 ], - [ -10 ], - [ -20 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 5 ], - [ 6 ], - [ -10 ], - [ -20 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 5 ], - [ 6 ], - [ -10 ], - [ -20 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 5 ], - [ 6 ], - [ -1 ], - [ -2 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 5 ], - [ 6 ], - [ -1 ], - [ -2 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 5 ], - [ 6 ], - [ -1 ], - [ -2 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (1d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 5 ], - [ 6 ], - [ -1 ], - [ -2 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iget_2d.js b/test/test.instance.iget_2d.js deleted file mode 100644 index 4de9463..0000000 --- a/test/test.instance.iget_2d.js +++ /dev/null @@ -1,1930 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method which throws an error if not provided an integer value (2d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget( value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iget_3d.js b/test/test.instance.iget_3d.js deleted file mode 100644 index 3fa528b..0000000 --- a/test/test.instance.iget_3d.js +++ /dev/null @@ -1,1854 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method which throws an error if not provided an integer value (3d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget( value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iget_4d.js b/test/test.instance.iget_4d.js deleted file mode 100644 index 561aee2..0000000 --- a/test/test.instance.iget_4d.js +++ /dev/null @@ -1,1854 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method which throws an error if not provided an integer value (4d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget( value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iget_nd.js b/test/test.instance.iget_nd.js deleted file mode 100644 index 2ab95be..0000000 --- a/test/test.instance.iget_nd.js +++ /dev/null @@ -1,1854 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var realf = require( '@stdlib/complex-float32-real' ); -var imagf = require( '@stdlib/complex-float32-imag' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method which throws an error if not provided an integer value (>4d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget( value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var v; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - v = arr.iget( 0 ); - t.strictEqual( realf( v ), 3.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 4.0, 'returns expected value' ); - - v = arr.iget( 1 ); - t.strictEqual( realf( v ), 1.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 2.0, 'returns expected value' ); - - v = arr.iget( 2 ); - t.strictEqual( realf( v ), 7.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 8.0, 'returns expected value' ); - - v = arr.iget( 3 ); - t.strictEqual( realf( v ), 5.0, 'returns expected value' ); - t.strictEqual( imagf( v ), 6.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 1.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 2.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 3.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - t.strictEqual( arr.iget( 4 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 5 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( -2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( -1 ), 4.0, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4 ], - [ 5 ], - [ -20 ], - [ -10 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iget` method for retrieving an array element using a linear index (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4 ], - [ 5 ], - [ -2 ], - [ -1 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iget.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iset.js b/test/test.instance.iset.js deleted file mode 100644 index 9f1904a..0000000 --- a/test/test.instance.iset.js +++ /dev/null @@ -1,87 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var hasOwnProp = require( '@stdlib/assert-has-own-property' ); -var hasProp = require( '@stdlib/assert-has-property' ); -var isFunction = require( '@stdlib/assert-is-function' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'iset' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'iset' ), true, 'has property' ); - t.strictEqual( isFunction( arr.iset ), true, 'has method' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'iset' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'iset' ), true, 'has property' ); - t.strictEqual( isFunction( arr.iset ), true, 'has method' ); - - t.end(); -}); diff --git a/test/test.instance.iset_0d.js b/test/test.instance.iset_0d.js deleted file mode 100644 index b6fb28e..0000000 --- a/test/test.instance.iset_0d.js +++ /dev/null @@ -1,59 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0 ]; - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 5.0 ); - - t.strictEqual( arr.iget(), 5.0, 'returns expected value' ); - t.deepEqual( buffer, [ 1.0, 5.0, 3.0 ], 'has expected values' ); - - t.end(); -}); diff --git a/test/test.instance.iset_1d.js b/test/test.instance.iset_1d.js deleted file mode 100644 index f09476f..0000000 --- a/test/test.instance.iset_1d.js +++ /dev/null @@ -1,1119 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method which throws an error if not provided an integer value for the first argument (1d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset( value, 0.0 ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -1, 7.0 ); - arr.iset( -2, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 7.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -1, 7.0 ); - arr.iset( -2, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 7.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -1, 7.0 ); - arr.iset( -2, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 7.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -1, 7.0 ); - arr.iset( -2, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 7.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -1, 7.0 ); - arr.iset( -2, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -1, 7.0 ); - arr.iset( -2, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -1, 7.0 ); - arr.iset( -2, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -1, 7.0 ); - arr.iset( -2, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -10, 7.0 ], - [ -20, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -10, 7.0 ], - [ -20, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -10, 7.0 ], - [ -20, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -10, 7.0 ], - [ -20, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (1d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iset_2d.js b/test/test.instance.iset_2d.js deleted file mode 100644 index b70b4de..0000000 --- a/test/test.instance.iset_2d.js +++ /dev/null @@ -1,1711 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method which throws an error if not provided an integer value for the first argument (2d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset( value, 0.0 ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7, 8, 5, 6 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iset_3d.js b/test/test.instance.iset_3d.js deleted file mode 100644 index 3115fc0..0000000 --- a/test/test.instance.iset_3d.js +++ /dev/null @@ -1,1711 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method which throws an error if not provided an integer value for the first argument (3d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset( value, 0.0 ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7, 8, 5, 6 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iset_4d.js b/test/test.instance.iset_4d.js deleted file mode 100644 index 79be1f9..0000000 --- a/test/test.instance.iset_4d.js +++ /dev/null @@ -1,1711 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method which throws an error if not provided an integer value for the first argument (4d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset( value, 0.0 ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7, 8, 5, 6 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.iset_nd.js b/test/test.instance.iset_nd.js deleted file mode 100644 index b275a4e..0000000 --- a/test/test.instance.iset_nd.js +++ /dev/null @@ -1,1711 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method which throws an error if not provided an integer value for the first argument (>4d)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset( value, 0.0 ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.iset( 0, 5.0 ); - arr.iset( 1, 6.0 ); - arr.iset( 2, 7.0 ); - arr.iset( 3, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7, 8, 5, 6 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.iset( 4, 5.0 ); - arr.iset( 5, 6.0 ); - arr.iset( -2, 7.0 ); - arr.iset( -1, 8.0 ); - - t.strictEqual( arr.iget( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 2.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 3.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 2.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has an `iset` method for setting an array element using a linear index (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -2, 7.0 ], - [ -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.iget( 0 ), 4.0, 'returns expected value' ); - t.strictEqual( arr.iget( 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.iget( 2 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.iget( 3 ), 1.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.iset.apply( arr, value ); - }; - } -}); diff --git a/test/test.instance.properties.js b/test/test.instance.properties.js deleted file mode 100644 index 156f292..0000000 --- a/test/test.instance.properties.js +++ /dev/null @@ -1,1128 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var hasOwnProp = require( '@stdlib/assert-has-own-property' ); -var hasProp = require( '@stdlib/assert-has-property' ); -var isPositiveInteger = require( '@stdlib/assert-is-positive-integer' ).isPrimitive; -var isNonNegativeInteger = require( '@stdlib/assert-is-nonnegative-integer' ).isPrimitive; -var isPlainObject = require( '@stdlib/assert-is-plain-object' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `byteLength` property specifying the size (in bytes) of the array (typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'byteLength' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'byteLength' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.byteLength ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.byteLength, 8*buffer.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `byteLength` property specifying the size (in bytes) of the array (typed; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'byteLength' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'byteLength' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.byteLength ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.byteLength, 8*buffer.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `byteLength` property specifying the size (in bytes) of the array (complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'byteLength' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'byteLength' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.byteLength ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.byteLength, 8*buffer.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `byteLength` property specifying the size (in bytes) of the array (complex typed; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'byteLength' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'byteLength' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.byteLength ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.byteLength, 8*buffer.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `byteLength` property specifying the size (in bytes) of an array (generic)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'byteLength' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'byteLength' ), true, 'has property' ); - t.strictEqual( arr.byteLength, null, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `byteLength` property specifying the size (in bytes) of an array (generic; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0 ]; - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'byteLength' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'byteLength' ), true, 'has property' ); - t.strictEqual( arr.byteLength, null, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `BYTES_PER_ELEMENT` property specifying the size (in bytes) of each array element (typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'BYTES_PER_ELEMENT' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'BYTES_PER_ELEMENT' ), true, 'has property' ); - t.strictEqual( isPositiveInteger( arr.BYTES_PER_ELEMENT ), true, 'is a positive integer' ); - t.strictEqual( arr.BYTES_PER_ELEMENT, 8, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `BYTES_PER_ELEMENT` property specifying the size (in bytes) of each array element (typed; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'BYTES_PER_ELEMENT' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'BYTES_PER_ELEMENT' ), true, 'has property' ); - t.strictEqual( isPositiveInteger( arr.BYTES_PER_ELEMENT ), true, 'is a positive integer' ); - t.strictEqual( arr.BYTES_PER_ELEMENT, 8, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `BYTES_PER_ELEMENT` property specifying the size (in bytes) of each array element (complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'BYTES_PER_ELEMENT' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'BYTES_PER_ELEMENT' ), true, 'has property' ); - t.strictEqual( isPositiveInteger( arr.BYTES_PER_ELEMENT ), true, 'is a positive integer' ); - t.strictEqual( arr.BYTES_PER_ELEMENT, 8, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `BYTES_PER_ELEMENT` property specifying the size (in bytes) of each array element (complex typed; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'BYTES_PER_ELEMENT' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'BYTES_PER_ELEMENT' ), true, 'has property' ); - t.strictEqual( isPositiveInteger( arr.BYTES_PER_ELEMENT ), true, 'is a positive integer' ); - t.strictEqual( arr.BYTES_PER_ELEMENT, 8, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `BYTES_PER_ELEMENT` property specifying the size (in bytes) of each array element (generic)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'BYTES_PER_ELEMENT' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'BYTES_PER_ELEMENT' ), true, 'has property' ); - t.strictEqual( arr.BYTES_PER_ELEMENT, null, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `BYTES_PER_ELEMENT` property specifying the size (in bytes) of each array element (generic; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0 ]; - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'BYTES_PER_ELEMENT' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'BYTES_PER_ELEMENT' ), true, 'has property' ); - t.strictEqual( arr.BYTES_PER_ELEMENT, null, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `data` property pointing to the underlying data buffer', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'data' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'data' ), true, 'has property' ); - t.strictEqual( arr.data, buffer, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `data` property pointing to the underlying data buffer (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'data' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'data' ), true, 'has property' ); - t.strictEqual( arr.data, buffer, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `data` property pointing to the underlying data buffer (complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'data' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'data' ), true, 'has property' ); - t.strictEqual( arr.data, buffer, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `data` property pointing to the underlying data buffer (complex typed; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'data' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'data' ), true, 'has property' ); - t.strictEqual( arr.data, buffer, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `dtype` property specifying the underlying data type', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'dtype' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'dtype' ), true, 'has property' ); - t.strictEqual( arr.dtype, dtype, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `dtype` property specifying the underlying data type (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'dtype' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'dtype' ), true, 'has property' ); - t.strictEqual( arr.dtype, dtype, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `dtype` property specifying the underlying data type (complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'dtype' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'dtype' ), true, 'has property' ); - t.strictEqual( arr.dtype, dtype, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `dtype` property specifying the underlying data type (complex typed; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'dtype' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'dtype' ), true, 'has property' ); - t.strictEqual( arr.dtype, dtype, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `flags` property providing information regarding the memory layout of the array (row-major contiguous)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'flags' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'flags' ), true, 'has property' ); - t.strictEqual( isPlainObject( arr.flags ), true, 'is an object' ); - - t.strictEqual( hasOwnProp( arr.flags, 'ROW_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.ROW_MAJOR_CONTIGUOUS, true, 'has expected value' ); - - t.strictEqual( hasOwnProp( arr.flags, 'COLUMN_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.COLUMN_MAJOR_CONTIGUOUS, false, 'has expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `flags` property providing information regarding the memory layout of the array (column-major contiguous)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'flags' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'flags' ), true, 'has property' ); - t.strictEqual( isPlainObject( arr.flags ), true, 'is an object' ); - - t.strictEqual( hasOwnProp( arr.flags, 'ROW_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.ROW_MAJOR_CONTIGUOUS, false, 'has expected value' ); - - t.strictEqual( hasOwnProp( arr.flags, 'COLUMN_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.COLUMN_MAJOR_CONTIGUOUS, true, 'has expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `flags` property providing information regarding the memory layout of the array (row-major and column-major contiguous)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'flags' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'flags' ), true, 'has property' ); - t.strictEqual( isPlainObject( arr.flags ), true, 'is an object' ); - - t.strictEqual( hasOwnProp( arr.flags, 'ROW_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.ROW_MAJOR_CONTIGUOUS, true, 'has expected value' ); - - t.strictEqual( hasOwnProp( arr.flags, 'COLUMN_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.COLUMN_MAJOR_CONTIGUOUS, true, 'has expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `flags` property providing information regarding the memory layout of the array (row-major and column-major contiguous; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'flags' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'flags' ), true, 'has property' ); - t.strictEqual( isPlainObject( arr.flags ), true, 'is an object' ); - - t.strictEqual( hasOwnProp( arr.flags, 'ROW_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.ROW_MAJOR_CONTIGUOUS, true, 'has expected value' ); - - t.strictEqual( hasOwnProp( arr.flags, 'COLUMN_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.COLUMN_MAJOR_CONTIGUOUS, true, 'has expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `flags` property providing information regarding the memory layout the array (neither row-major nor column-major contiguous)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1, 2, 3, 4, 5, 6, 7, 8 ] ); - shape = [ 2, 2, 2 ]; - order = 'column-major'; - strides = [ 4, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'flags' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'flags' ), true, 'has property' ); - t.strictEqual( isPlainObject( arr.flags ), true, 'is an object' ); - - t.strictEqual( hasOwnProp( arr.flags, 'ROW_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.ROW_MAJOR_CONTIGUOUS, false, 'has expected value' ); - - t.strictEqual( hasOwnProp( arr.flags, 'COLUMN_MAJOR_CONTIGUOUS' ), true, 'has own property' ); - t.strictEqual( arr.flags.COLUMN_MAJOR_CONTIGUOUS, false, 'has expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `length` property specifying the number of array elements', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'length' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'length' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.length ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.length, buffer.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `length` property specifying the number of array elements (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'length' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'length' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.length ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.length, buffer.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `length` property specifying the number of array elements (complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'length' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'length' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.length ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.length, buffer.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `length` property specifying the number of array elements (complex typed; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'length' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'length' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.length ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.length, buffer.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `ndims` property specifying the number of array dimensions', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'ndims' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'ndims' ), true, 'has property' ); - t.strictEqual( isPositiveInteger( arr.ndims ), true, 'is a positive integer' ); - t.strictEqual( arr.ndims, shape.length, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `ndims` property specifying the number of array dimensions (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'ndims' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'ndims' ), true, 'has property' ); - t.strictEqual( arr.ndims, 0, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `offset` property specifying the location of the first indexed element', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'offset' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'offset' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.offset ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.offset, offset, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `offset` property specifying the location of the first indexed element (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'offset' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'offset' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.offset ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.offset, offset, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `offset` property specifying the location of the first indexed element (complex typed)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0 ] ); // eslint-disable-line max-len - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'offset' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'offset' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.offset ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.offset, offset, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `offset` property specifying the location of the first indexed element (complex typed; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'offset' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'offset' ), true, 'has property' ); - t.strictEqual( isNonNegativeInteger( arr.offset ), true, 'is a nonnegative integer' ); - t.strictEqual( arr.offset, offset, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `order` property specifying the array order (row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'order' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'order' ), true, 'has property' ); - t.strictEqual( arr.order, order, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `order` property specifying the array order (row-major; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'order' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'order' ), true, 'has property' ); - t.strictEqual( arr.order, order, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `order` property specifying the array order (column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'order' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'order' ), true, 'has property' ); - t.strictEqual( arr.order, order, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has an `order` property specifying the array order (column-major; 0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'column-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'order' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'order' ), true, 'has property' ); - t.strictEqual( arr.order, order, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `shape` property specifying the array shape (dimensions)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'shape' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'shape' ), true, 'has property' ); - t.notEqual( arr.shape, shape, 'returns a copy' ); - t.deepEqual( arr.shape, shape, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `shape` property specifying the array shape (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'column-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'shape' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'shape' ), true, 'has property' ); - t.notEqual( arr.shape, shape, 'returns a copy' ); - t.deepEqual( arr.shape, shape, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `strides` property specifying how to access array elements along corresponding dimensions', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'strides' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'strides' ), true, 'has property' ); - t.notEqual( arr.strides, strides, 'returns a copy' ); - t.deepEqual( arr.strides, strides, 'has expected value' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `strides` property specifying how to access array elements along corresponding dimensions (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'strides' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'strides' ), true, 'has property' ); - t.notEqual( arr.strides, strides, 'returns a copy' ); - t.deepEqual( arr.strides, strides, 'has expected value' ); - t.end(); -}); diff --git a/test/test.instance.set.js b/test/test.instance.set.js deleted file mode 100644 index 25d2714..0000000 --- a/test/test.instance.set.js +++ /dev/null @@ -1,85 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var hasOwnProp = require( '@stdlib/assert-has-own-property' ); -var hasProp = require( '@stdlib/assert-has-property' ); -var isFunction = require( '@stdlib/assert-is-function' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'set' ), true, 'has property' ); - t.strictEqual( isFunction( arr.set ), true, 'has method' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'set' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'set' ), true, 'has property' ); - t.strictEqual( isFunction( arr.set ), true, 'has method' ); - t.end(); -}); diff --git a/test/test.instance.set_0d.js b/test/test.instance.set_0d.js deleted file mode 100644 index 3497660..0000000 --- a/test/test.instance.set_0d.js +++ /dev/null @@ -1,105 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2021 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method which throws an error if provided index arguments (0d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 0, - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set( value, 10.0 ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 5.0 ); - - t.strictEqual( arr.get(), 5.0, 'returns expected value' ); - t.deepEqual( buffer, [ 1.0, 2.0, 5.0, 4.0 ], 'has expected values' ); - - t.end(); -}); diff --git a/test/test.instance.set_1d.js b/test/test.instance.set_1d.js deleted file mode 100644 index 6fc14d7..0000000 --- a/test/test.instance.set_1d.js +++ /dev/null @@ -1,940 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method which throws an error if not provided an integer value for a dimension index (1d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set( value, 10.0 ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 5.0 ); - arr.set( 1, 6.0 ); - arr.set( 2, 7.0 ); - arr.set( 3, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 5.0 ); - arr.set( 1, 6.0 ); - arr.set( 2, 7.0 ); - arr.set( 3, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( 6, 7.0 ); - arr.set( 7, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( 6, 7.0 ); - arr.set( 7, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( -1, 7.0 ); - arr.set( -2, 8.0 ); - - t.strictEqual( arr.get( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( -1, 7.0 ); - arr.set( -7, 8.0 ); - - t.strictEqual( arr.get( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -10, 7.0 ], - [ -20, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - arr.set( 0, 5.0 ); - arr.set( 1, 6.0 ); - arr.set( -2, 7.0 ); - arr.set( -1, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -10, 7.0 ], - [ -20, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - arr.set( 0, 5.0 ); - arr.set( 1, 6.0 ); - arr.set( -2, 7.0 ); - arr.set( -1, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( 6, 7.0 ); - arr.set( 7, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( 6, 7.0 ); - arr.set( 7, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; submode=[clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( -1, 7.0 ); - arr.set( -2, 8.0 ); - - t.strictEqual( arr.get( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; submode=[clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( -1, 7.0 ); - arr.set( -7, 8.0 ); - - t.strictEqual( arr.get( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'wrap', - 'submode': [ 'throw' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; submode=[throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'clamp', - 'submode': [ 'throw', 'throw' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 4, 5.0 ], - [ 5, 6.0 ], - [ -1, 7.0 ], - [ -2, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided ' + values[ i ] ); - } - t.strictEqual( arr.get( 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; row-major; submode=[wrap,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'throw' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( 6, 7.0 ); - arr.set( 7, 8.0 ); - - t.strictEqual( arr.get( 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (1d; column-major; submode=[clamp,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'throw' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 4 ]; - order = 'column-major'; - strides = [ 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 4, 5.0 ); - arr.set( 5, 6.0 ); - arr.set( -1, 7.0 ); - arr.set( -2, 8.0 ); - - t.strictEqual( arr.get( 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 2 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 3 ), 6.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 2.0, 3.0, 6.0 ], 'has expected values' ); - - t.end(); -}); diff --git a/test/test.instance.set_2d.js b/test/test.instance.set_2d.js deleted file mode 100644 index fcc34a2..0000000 --- a/test/test.instance.set_2d.js +++ /dev/null @@ -1,1250 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method which throws an error if not provided an integer value for a dimension index (2d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ], 0 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 1 ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value, dim ) { - if ( dim === 0 ) { - return i; - } - return j; - - function i() { - arr.set( value, 0, 10.0 ); - } - - function j() { - arr.set( 0, value, 10.0 ); - } - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( 1, 0, 7.0 ); - arr.set( 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, -1 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( 1, 0, 7.0 ); - arr.set( 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 5.0, 8.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( 1, 0, 7.0 ); - arr.set( 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ -2, -1 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( 1, 0, 7.0 ); - arr.set( 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 7.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( 1, 0, 7.0 ); - arr.set( 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, 2 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( 1, 0, 7.0 ); - arr.set( 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 5.0, 8.0, 6.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, -2 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( 1, 0, 7.0 ); - arr.set( 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 6.0, 8.0, 5.0, 7.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( 1, 0, 7.0 ); - arr.set( 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 8.0, 6.0, 7.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 5.0 ); - arr.set( -2, 3, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 5.0 ); - arr.set( -2, 3, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 1, 0, 5.0 ); - arr.set( -2, 3, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 6.0, 5.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 1, 0, 5.0 ); - arr.set( -2, 3, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 5.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 1, 10, 5.0 ], - [ -2, 3, 6.0 ], - [ -1, -2, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 1, 10, 5.0 ], - [ -2, 3, 6.0 ], - [ -1, -2, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 1, 10, 5.0 ], - [ -20, 3, 6.0 ], - [ -1, -20, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( -1, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; mode=normalize)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'normalize' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 1, 10, 5.0 ], - [ -20, 3, 6.0 ], - [ -1, -20, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - arr.set( 0, 0, 5.0 ); - arr.set( 0, 1, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( -1, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 1, 10, 5.0 ], - [ -2, 3, 6.0 ], - [ -1, -2, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 1, 10, 5.0 ], - [ -2, 3, 6.0 ], - [ -1, -2, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 5.0 ); - arr.set( -2, 3, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; submode=[wrap,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 5.0 ); - arr.set( -2, 3, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; submode=[clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 1, 0, 5.0 ); - arr.set( -2, 3, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 6.0, 5.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; submode=[clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 1, 0, 5.0 ); - arr.set( -2, 3, 6.0 ); - arr.set( -1, -2, 7.0 ); - arr.set( 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 5.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; submode=[throw,throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'throw', 'throw', 'throw' ], - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 1, 10, 5.0 ], - [ -2, 3, 6.0 ], - [ -1, -2, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'throw' ], - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 1, 10, 5.0 ], - [ -2, 3, 6.0 ], - [ -1, -2, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; submode=[normalize,normalize,normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'normalize', 'normalize', 'normalize' ], - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 1, 10, 5.0 ], - [ -20, 3, 6.0 ], - [ -1, -20, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; submode=[normalize])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'normalize' ], - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 1, 10, 5.0 ], - [ -20, 3, 6.0 ], - [ -1, -20, 7.0 ], - [ 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; row-major; submode=[wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 5.0 ); // (0,1) - arr.set( -2, 3, 6.0 ); // (0,1) - arr.set( -1, -2, 7.0 ); // (1,0) - arr.set( 5, 5, 8.0 ); // (1,1) - - t.strictEqual( arr.get( 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (2d; column-major; submode=[clamp,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 5.0 ); // (1,0) - arr.set( -2, 3, 6.0 ); // (0,1) - arr.set( -1, -2, 7.0 ); // (0,0) - arr.set( 5, 5, 8.0 ); // (1,1) - - t.strictEqual( arr.get( 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 5.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); diff --git a/test/test.instance.set_3d.js b/test/test.instance.set_3d.js deleted file mode 100644 index 708c941..0000000 --- a/test/test.instance.set_3d.js +++ /dev/null @@ -1,834 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method which throws an error if not provided an integer value for a dimension index (3d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ], 0 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 1 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 2 ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value, dim ) { - if ( dim === 0 ) { - return i; - } - if ( dim === 1 ) { - return j; - } - return k; - - function i() { - arr.set( value, 0, 0, 10.0 ); - } - - function j() { - arr.set( 0, value, 0, 10.0 ); - } - - function k() { - arr.set( 0, 0, value, 10.0 ); - } - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 0, 5.0 ); - arr.set( 0, 0, 1, 6.0 ); - arr.set( 0, 1, 0, 7.0 ); - arr.set( 0, 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 0, 5.0 ); - arr.set( 0, 0, 1, 6.0 ); - arr.set( 0, 1, 0, 7.0 ); - arr.set( 0, 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); - arr.set( -4, -2, 11, 6.0 ); - arr.set( 0, 5, 0, 7.0 ); - arr.set( 0, 15, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); - arr.set( -4, -2, 11, 6.0 ); - arr.set( 0, 5, 0, 7.0 ); - arr.set( 0, 15, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); - arr.set( -4, -2, 11, 6.0 ); - arr.set( 0, 5, 0, 7.0 ); - arr.set( 0, 15, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 5.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); - arr.set( -4, -2, 11, 6.0 ); - arr.set( 0, 5, 0, 7.0 ); - arr.set( 0, 15, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 5.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 5.0 ], - [ -4, -2, 11, 6.0 ], - [ 0, 5, 0, 7.0 ], - [ 0, 15, -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 5.0 ], - [ -4, -2, 11, 6.0 ], - [ 0, 5, 0, 7.0 ], - [ 0, 15, -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 2, 2, 2, 5.0 ], - [ -4, -2, 11, 6.0 ], - [ 0, 5, 0, 7.0 ], - [ 0, 15, -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 2, 2, 2, 5.0 ], - [ -4, -2, 11, 6.0 ], - [ 0, 5, 0, 7.0 ], - [ 0, 15, -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); - arr.set( -4, -2, 11, 6.0 ); - arr.set( 0, 5, 0, 7.0 ); - arr.set( 0, 15, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major; submode=[wrap,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); - arr.set( -4, -2, 11, 6.0 ); - arr.set( 0, 5, 0, 7.0 ); - arr.set( 0, 15, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major; submode=[clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); - arr.set( -4, -2, 11, 6.0 ); - arr.set( 0, 5, 0, 7.0 ); - arr.set( 0, 15, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 5.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major; submode=[clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); - arr.set( -4, -2, 11, 6.0 ); - arr.set( 0, 5, 0, 7.0 ); - arr.set( 0, 15, -1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 5.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major; submode=[throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'throw', 'throw' ], - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 5.0 ], - [ -4, -2, 11, 6.0 ], - [ 0, 5, 0, 7.0 ], - [ 0, 15, -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'throw' ], - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 5.0 ], - [ -4, -2, 11, 6.0 ], - [ 0, 5, 0, 7.0 ], - [ 0, 15, -1, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; row-major; submode=[wrap,wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); // (0,0,1) - arr.set( -4, -2, 11, 6.0 ); // (0,0,1) - arr.set( 0, 5, 0, 7.0 ); // (0,1,0) - arr.set( 0, 15, -1, 8.0 ); // (0,1,0) - - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 8.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (3d; column-major; submode=[clamp,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 5.0 ); // (0,0,1) - arr.set( -4, -2, 11, 6.0 ); // (0,0,1) - arr.set( 0, 5, 0, 7.0 ); // (0,1,0) - arr.set( 0, 15, -1, 8.0 ); // (0,1,0) - - t.strictEqual( arr.get( 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 0 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 8.0, 6.0, 4.0 ], 'has expected values' ); - - t.end(); -}); diff --git a/test/test.instance.set_4d.js b/test/test.instance.set_4d.js deleted file mode 100644 index 9090bdd..0000000 --- a/test/test.instance.set_4d.js +++ /dev/null @@ -1,842 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method which throws an error if not provided an integer value for a dimension index (4d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ], 0 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 1 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 2 ), TypeError, 'throws an error when provided ' + values[ i ] ); - t.throws( badValue( values[ i ], 3 ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - t.end(); - - function badValue( value, dim ) { - if ( dim === 0 ) { - return i; - } - if ( dim === 1 ) { - return j; - } - if ( dim === 2 ) { - return k; - } - return l; - - function i() { - arr.set( value, 0, 0, 0, 10.0 ); - } - - function j() { - arr.set( 0, value, 0, 0, 10.0 ); - } - - function k() { - arr.set( 0, 0, value, 0, 10.0 ); - } - - function l() { - arr.set( 0, 0, 0, value, 10.0 ); - } - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 0, 0, 5.0 ); - arr.set( 0, 0, 0, 1, 6.0 ); - arr.set( 0, 0, 1, 0, 7.0 ); - arr.set( 0, 0, 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 0, 0, 5.0 ); - arr.set( 0, 0, 0, 1, 6.0 ); - arr.set( 0, 0, 1, 0, 7.0 ); - arr.set( 0, 0, 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, -1, 0, 7.0 ); - arr.set( 0, 0, 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, -1, 0, 7.0 ); - arr.set( 0, 0, 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, -1, 0, 7.0 ); - arr.set( 0, 0, 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 6.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, -1, 0, 7.0 ); - arr.set( 0, 0, 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 2.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 11, 6.0 ], - [ 0, 0, -1, 0, 7.0 ], - [ 0, 0, 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 11, 6.0 ], - [ 0, 0, -1, 0, 7.0 ], - [ 0, 0, 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 11, 6.0 ], - [ 0, 0, -1, 0, 7.0 ], - [ 0, 0, 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 11, 6.0 ], - [ 0, 0, -1, 0, 7.0 ], - [ 0, 0, 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, -1, 0, 7.0 ); - arr.set( 0, 0, 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major; submode=[wrap,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, -1, 0, 7.0 ); - arr.set( 0, 0, 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major; submode=[clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, -1, 0, 7.0 ); - arr.set( 0, 0, 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 6.0, 3.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major; submode=[clamp,clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, -1, 0, 7.0 ); - arr.set( 0, 0, 5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 2.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'throw' ], - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 11, 6.0 ], - [ 0, 0, -1, 0, 7.0 ], - [ 0, 0, 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major; submode=[throw,throw,throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'throw', 'throw', 'throw', 'throw' ], - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 11, 6.0 ], - [ 0, 0, -1, 0, 7.0 ], - [ 0, 0, 5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; row-major; submode=[wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); // (0,0,0,1) - arr.set( 0, 0, 0, 11, 6.0 ); // (0,0,0,1) - arr.set( 0, 0, -1, 0, 7.0 ); // (0,0,1,0) - arr.set( 0, 0, 5, 5, 8.0 ); // (0,0,1,1) - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (4d; column-major; submode=[wrap,clamp,clamp,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'clamp', 'clamp', 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 5.0 ); // (0,0,1,0) - arr.set( 0, 0, 0, 11, 6.0 ); // (0,0,0,1) - arr.set( 0, 0, -1, 0, 7.0 ); // (0,0,0,0) - arr.set( 0, 0, 5, 5, 8.0 ); // (0,0,1,1) - - t.strictEqual( arr.get( 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 5.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); diff --git a/test/test.instance.set_nd.js b/test/test.instance.set_nd.js deleted file mode 100644 index 12260de..0000000 --- a/test/test.instance.set_nd.js +++ /dev/null @@ -1,830 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method which throws an error if not provided an integer value for a dimension index (>4d)', function test( t ) { - var strides; - var values; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - var i; - var j; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0 ] ); - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1, 1, 1, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - '5', - 3.14, - NaN, - true, - false, - null, - void 0, - [], - {}, - function noop() {} - ]; - for ( i = 0; i < values.length; i++ ) { - for ( j = 0; j < shape.length; j++ ) { - t.throws( badValue( values[ i ], j ), TypeError, 'throws an error when provided ' + values[ i ] ); - } - } - t.end(); - - function badValue( value, dim ) { - return function badValue() { - var args = new Array( shape.length+1 ); - var i; - - for ( i = 0; i < shape.length; i++ ) { - if ( i === dim ) { - args[ i ] = value; - } else { - args[ i ] = 0; - } - } - args[ i ] = 10.0; - arr.set.apply( arr, args ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 0, 0, 0, 5.0 ); - arr.set( 0, 0, 0, 0, 1, 6.0 ); - arr.set( 0, 0, 0, 1, 0, 7.0 ); - arr.set( 0, 0, 0, 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - arr.set( 0, 0, 0, 0, 0, 5.0 ); - arr.set( 0, 0, 0, 0, 1, 6.0 ); - arr.set( 0, 0, 0, 1, 0, 7.0 ); - arr.set( 0, 0, 0, 1, 1, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, 0, -1, -10, 7.0 ); - arr.set( 0, 0, 0, -5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; mode=wrap)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, 0, -1, -10, 7.0 ); - arr.set( 0, 0, 0, -5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, 0, -1, -10, 7.0 ); - arr.set( 0, 0, 0, -5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 5.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 3.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; mode=clamp)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, 0, -1, -10, 7.0 ); - arr.set( 0, 0, 0, -5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 5.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 2.0, 8.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 0, 11, 6.0 ], - [ 0, 0, 0, -1, -10, 7.0 ], - [ 0, 0, 0, -5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; mode=throw)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'mode': 'throw' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 0, 11, 6.0 ], - [ 0, 0, 0, -1, -10, 7.0 ], - [ 0, 0, 0, -5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 2, 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 0, 11, 6.0 ], - [ 0, 0, 0, -1, -10, 7.0 ], - [ 0, 0, 0, -5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; mode=default)', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var arr; - var i; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - values = [ - [ 2, 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 0, 11, 6.0 ], - [ 0, 0, 0, -1, -10, 7.0 ], - [ 0, 0, 0, -5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; submode=[wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, 0, -1, -10, 7.0 ); - arr.set( 0, 0, 0, -5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 6.0, 7.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; submode=[wrap,wrap])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, 0, -1, -10, 7.0 ); - arr.set( 0, 0, 0, -5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 5.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; submode=[clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, 0, -1, -10, 7.0 ); - arr.set( 0, 0, 0, -5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 5.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 3.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; submode=[clamp,clamp,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'clamp', 'clamp', 'clamp', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); - arr.set( 0, 0, 0, 0, 11, 6.0 ); - arr.set( 0, 0, 0, -1, -10, 7.0 ); - arr.set( 0, 0, 0, -5, 5, 8.0 ); - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 5.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 2.0, 8.0, 5.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; submode=[throw,throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'throw', 'throw' ], - 'mode': 'wrap' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 0, 11, 6.0 ], - [ 0, 0, 0, -1, -10, 7.0 ], - [ 0, 0, 0, -5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; submode=[throw])', function test( t ) { - var strides; - var buffer; - var offset; - var values; - var dtype; - var order; - var shape; - var opts; - var arr; - var i; - - opts = { - 'submode': [ 'throw' ], - 'mode': 'clamp' - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - values = [ - [ 2, 2, 2, 2, 2, 5.0 ], - [ 0, 0, 0, 0, 11, 6.0 ], - [ 0, 0, 0, -1, -10, 7.0 ], - [ 0, 0, 0, -5, 5, 8.0 ] - ]; - for ( i = 0; i < values.length; i++ ) { - t.throws( badValue( values[ i ] ), RangeError, 'throws an error when provided arguments: ' + values[ i ] ); - } - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 3.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 2.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 2.0, 3.0, 4.0 ], 'has expected values' ); - - t.end(); - - function badValue( value ) { - return function badValue() { - arr.set.apply( arr, value ); - }; - } -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; row-major; submode=[wrap,wrap,clamp,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap', 'clamp', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'row-major'; - strides = [ 4, 4, 4, 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); // (0,0,0,1,0) - arr.set( 0, 0, 0, 0, 11, 6.0 ); // (0,0,0,0,1) - arr.set( 0, 0, 0, -1, -10, 7.0 ); // (0,0,0,0,0) - arr.set( 0, 0, 0, -5, 5, 8.0 ); // (0,0,0,0,1) - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 8.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 5.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 4.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 7.0, 8.0, 5.0, 4.0 ], 'has expected values' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a `set` method for setting an array element using subscripts (>4d; column-major; submode=[wrap,wrap,wrap,wrap,clamp])', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var opts; - var arr; - - opts = { - 'submode': [ 'wrap', 'wrap', 'wrap', 'wrap', 'clamp' ] - }; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 1, 1, 1, 2, 2 ]; - order = 'column-major'; - strides = [ 1, 1, 1, 1, 2 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, opts ); - - arr.set( 2, 2, 2, 2, 2, 5.0 ); // (0,0,0,0,1) - arr.set( 0, 0, 0, 0, 11, 6.0 ); // (0,0,0,0,1) - arr.set( 0, 0, 0, -1, -10, 7.0 ); // (0,0,0,1,0) - arr.set( 0, 0, 0, -5, 5, 8.0 ); // (0,0,0,1,1) - - t.strictEqual( arr.get( 0, 0, 0, 0, 0 ), 1.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 0, 1 ), 6.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 0 ), 7.0, 'returns expected value' ); - t.strictEqual( arr.get( 0, 0, 0, 1, 1 ), 8.0, 'returns expected value' ); - - t.deepEqual( buffer, [ 1.0, 7.0, 6.0, 8.0 ], 'has expected values' ); - - t.end(); -}); diff --git a/test/test.instance.tojson.js b/test/test.instance.tojson.js deleted file mode 100644 index 10ab3a5..0000000 --- a/test/test.instance.tojson.js +++ /dev/null @@ -1,202 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var Float64Array = require( '@stdlib/array-float64' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var hasOwnProp = require( '@stdlib/assert-has-own-property' ); -var hasProp = require( '@stdlib/assert-has-property' ); -var isFunction = require( '@stdlib/assert-is-function' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toJSON()` method (row-major)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'float64'; - buffer = new Float64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toJSON' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toJSON' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toJSON ), true, 'has method' ); - - expected = { - 'type': 'ndarray', - 'dtype': 'float64', - 'data': [ 3.0, 4.0, 5.0, 6.0 ], - 'shape': [ 2, 2 ], - 'strides': [ 2, 1 ], - 'order': 'row-major', - 'flags': { - 'READONLY': false - } - }; - actual = arr.toJSON(); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toJSON()` method (column-major)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toJSON' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toJSON' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toJSON ), true, 'has method' ); - - expected = { - 'type': 'ndarray', - 'dtype': 'generic', - 'data': [ 4.0, 3.0, 2.0, 1.0 ], - 'shape': [ 2, 2 ], - 'strides': [ 1, 2 ], - 'order': 'column-major', - 'flags': { - 'READONLY': false - } - }; - actual = arr.toJSON(); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toJSON()` method (0d)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = []; - order = 'column-major'; - strides = [ 0 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toJSON' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toJSON' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toJSON ), true, 'has method' ); - - expected = { - 'type': 'ndarray', - 'dtype': 'generic', - 'data': [ 3.0 ], - 'shape': [], - 'strides': [ 0 ], - 'order': 'column-major', - 'flags': { - 'READONLY': false - } - }; - actual = arr.toJSON(); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toJSON()` method (complex type)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toJSON' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toJSON' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toJSON ), true, 'has method' ); - - expected = { - 'type': 'ndarray', - 'dtype': 'complex64', - 'data': [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ], - 'shape': [ 2, 2 ], - 'strides': [ 2, 1 ], - 'order': 'row-major', - 'flags': { - 'READONLY': false - } - }; - actual = arr.toJSON(); - t.deepEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.instance.tostring.js b/test/test.instance.tostring.js deleted file mode 100644 index 95eba28..0000000 --- a/test/test.instance.tostring.js +++ /dev/null @@ -1,309 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var hasOwnProp = require( '@stdlib/assert-has-own-property' ); -var hasProp = require( '@stdlib/assert-has-property' ); -var isFunction = require( '@stdlib/assert-is-function' ); -var Complex128Array = require( '@stdlib/array-complex128' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var Complex64 = require( '@stdlib/complex-float32-ctor' ); -var Complex128 = require( '@stdlib/complex-float64-ctor' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toString()` method (order=row-major)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 2; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toString' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toString' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toString ), true, 'has method' ); - - expected = 'ndarray( \'generic\', [ 3, 4, 5, 6 ], [ 2, 2 ], [ 2, 1 ], 0, \'row-major\' )'; - actual = arr.toString(); - t.strictEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toString()` method (order=column-major)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'column-major'; - strides = [ -1, -2 ]; - offset = 3; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toString' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toString' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toString ), true, 'has method' ); - - expected = 'ndarray( \'generic\', [ 4, 3, 2, 1 ], [ 2, 2 ], [ 1, 2 ], 0, \'column-major\' )'; - actual = arr.toString(); - t.strictEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toString()` method (complex type)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toString' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toString' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toString ), true, 'has method' ); - - expected = 'ndarray( \'complex64\', new Complex64Array( [ 1, 2, 3, 4, 5, 6, 7, 8 ] ), [ 2, 2 ], [ 2, 1 ], 0, \'row-major\' )'; - actual = arr.toString(); - t.strictEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toString()` method (complex type)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex128'; - buffer = new Complex128Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toString' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toString' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toString ), true, 'has method' ); - - expected = 'ndarray( \'complex128\', new Complex128Array( [ 1, 2, 3, 4, 5, 6, 7, 8 ] ), [ 2, 2 ], [ 2, 1 ], 0, \'row-major\' )'; - actual = arr.toString(); - t.strictEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toString()` method (large array)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = new Array( 1e4 ); - shape = [ buffer.length ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - buffer[ 0 ] = 1.0; - buffer[ 1 ] = 2.0; - buffer[ 2 ] = 3.0; - buffer[ buffer.length-3 ] = 4.0; - buffer[ buffer.length-2 ] = 5.0; - buffer[ buffer.length-1 ] = 6.0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toString' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toString' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toString ), true, 'has method' ); - - expected = 'ndarray( \'generic\', [ 1, 2, 3, ..., 4, 5, 6 ], [ 10000 ], [ 1 ], 0, \'row-major\' )'; - actual = arr.toString(); - t.strictEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toString()` method (large array; complex type)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( 1e4 ); - shape = [ buffer.length ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - buffer.set( new Complex64( 1.0, 1.0 ), 0 ); - buffer.set( new Complex64( 2.0, 2.0 ), 1 ); - buffer.set( new Complex64( 3.0, 3.0 ), 2 ); - buffer.set( new Complex64( 4.0, 4.0 ), buffer.length-3 ); - buffer.set( new Complex64( 5.0, 5.0 ), buffer.length-2 ); - buffer.set( new Complex64( 6.0, 6.0 ), buffer.length-1 ); - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toString' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toString' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toString ), true, 'has method' ); - - expected = 'ndarray( \'complex64\', new Complex64Array( [ 1, 1, 2, 2, 3, 3, ..., 4, 4, 5, 5, 6, 6 ] ), [ 10000 ], [ 1 ], 0, \'row-major\' )'; - actual = arr.toString(); - t.strictEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toString()` method (large array; complex type)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex128'; - buffer = new Complex128Array( 1e4 ); - shape = [ buffer.length ]; - order = 'row-major'; - strides = [ 1 ]; - offset = 0; - - buffer.set( new Complex128( 1.0, 1.0 ), 0 ); - buffer.set( new Complex128( 2.0, 2.0 ), 1 ); - buffer.set( new Complex128( 3.0, 3.0 ), 2 ); - buffer.set( new Complex128( 4.0, 4.0 ), buffer.length-3 ); - buffer.set( new Complex128( 5.0, 5.0 ), buffer.length-2 ); - buffer.set( new Complex128( 6.0, 6.0 ), buffer.length-1 ); - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toString' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toString' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toString ), true, 'has method' ); - - expected = 'ndarray( \'complex128\', new Complex128Array( [ 1, 1, 2, 2, 3, 3, ..., 4, 4, 5, 5, 6, 6 ] ), [ 10000 ], [ 1 ], 0, \'row-major\' )'; - actual = arr.toString(); - t.strictEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); - -tape( 'an ndarray constructor returns an instance which has a custom `toString()` method (0d)', function test( t ) { - var expected; - var strides; - var actual; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = []; - order = 'column-major'; - strides = [ 0 ]; - offset = 1; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( hasOwnProp( arr, 'toString' ), false, 'does not have own property' ); - t.strictEqual( hasProp( arr, 'toString' ), true, 'has property' ); - t.strictEqual( isFunction( arr.toString ), true, 'has method' ); - - expected = 'ndarray( \'generic\', [ 2 ], [], [ 0 ], 0, \'column-major\' )'; - actual = arr.toString(); - t.strictEqual( actual, expected, 'returns expected value' ); - - t.end(); -}); diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 5cdee94..0000000 --- a/test/test.js +++ /dev/null @@ -1,211 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var instanceOf = require( '@stdlib/assert-instance-of' ); -var Complex64Array = require( '@stdlib/array-complex64' ); -var ndarray = require( './../lib' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof ndarray, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function is an ndarray constructor', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = new ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( instanceOf( arr, ndarray ), true, 'returns an instance' ); - t.end(); -}); - -tape( 'the function is an ndarray constructor (complex dtype)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0 ] ); - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = new ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( instanceOf( arr, ndarray ), true, 'returns an instance' ); - t.end(); -}); - -tape( 'the function is an ndarray constructor (0d)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0 ]; - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = new ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( instanceOf( arr, ndarray ), true, 'returns an instance' ); - t.end(); -}); - -tape( 'the function is an ndarray constructor (0d; complex dtype)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'complex64'; - buffer = new Complex64Array( [ 1.0, 1.0 ] ); - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = new ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( instanceOf( arr, ndarray ), true, 'returns an instance' ); - t.end(); -}); - -tape( 'the function is an ndarray constructor (options)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = new ndarray( dtype, buffer, shape, strides, offset, order, {} ); - - t.strictEqual( instanceOf( arr, ndarray ), true, 'returns an instance' ); - t.end(); -}); - -tape( 'the function is an ndarray constructor (0d; options)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0 ]; - shape = []; - order = 'row-major'; - strides = [ 0 ]; - offset = 0; - - arr = new ndarray( dtype, buffer, shape, strides, offset, order, {} ); - - t.strictEqual( instanceOf( arr, ndarray ), true, 'returns an instance' ); - t.end(); -}); - -tape( 'the constructor does not require the `new` keyword', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order ); - - t.strictEqual( instanceOf( arr, ndarray ), true, 'returns an instance' ); - t.end(); -}); - -tape( 'the constructor does not require the `new` keyword (options)', function test( t ) { - var strides; - var buffer; - var offset; - var dtype; - var order; - var shape; - var arr; - - dtype = 'generic'; - buffer = [ 1.0, 2.0, 3.0, 4.0 ]; - shape = [ 2, 2 ]; - order = 'row-major'; - strides = [ 2, 1 ]; - offset = 0; - - arr = ndarray( dtype, buffer, shape, strides, offset, order, {} ); - - t.strictEqual( instanceOf( arr, ndarray ), true, 'returns an instance' ); - t.end(); -}); diff --git a/test/test.validate.js b/test/test.validate.js deleted file mode 100644 index 3954beb..0000000 --- a/test/test.validate.js +++ /dev/null @@ -1,203 +0,0 @@ -/** -* @license Apache-2.0 -* -* Copyright (c) 2018 The Stdlib Authors. -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -'use strict'; - -// MODULES // - -var tape = require( 'tape' ); -var validate = require( './../lib/validate.js' ); - - -// TESTS // - -tape( 'main export is a function', function test( t ) { - t.ok( true, __filename ); - t.strictEqual( typeof validate, 'function', 'main export is a function' ); - t.end(); -}); - -tape( 'the function returns an error if provided an `options` argument which is not an object', function test( t ) { - var values; - var err; - var i; - - values = [ - '5', - 5, - true, - false, - void 0, - null, - NaN, - [], - function noop() {} - ]; - - for ( i = 0; i < values.length; i++ ) { - err = validate( {}, values[ i ] ); - t.strictEqual( err instanceof TypeError, true, 'returns a type error when provided '+values[i] ); - } - t.end(); -}); - -tape( 'the function returns an error if provided an unrecognized/unsupported `mode` option', function test( t ) { - var values; - var opts; - var err; - var i; - - values = [ - '5', - 'beep', - 'boop', - 'foo', - 'bar', - 'throws', - 'wraps', - 'clamps', - 'normalizes', - 'clip', - 'clamped', - 'error', - 'err', - 5, - true, - false, - void 0, - null, - NaN, - [], - {}, - function noop() {} - ]; - - for ( i = 0; i < values.length; i++ ) { - opts = { - 'mode': values[ i ] - }; - err = validate( {}, opts ); - t.strictEqual( err instanceof TypeError, true, 'returns a type error when provided '+values[i] ); - } - t.end(); -}); - -tape( 'the function returns an error if provided a `submode` option which is not an array containing recognized/supported modes', function test( t ) { - var values; - var opts; - var err; - var i; - - values = [ - '5', - 'beep', - 'boop', - 'foo', - 'bar', - 'throws', - 'wraps', - 'clamps', - 'clip', - 'clamped', - 'error', - 'err', - 5, - true, - false, - void 0, - null, - NaN, - [], - [ 'throw', 'wrap', 'clamp', 'foo' ], - {}, - function noop() {} - ]; - - for ( i = 0; i < values.length; i++ ) { - opts = { - 'submode': values[ i ] - }; - err = validate( {}, opts ); - t.strictEqual( err instanceof TypeError, true, 'returns a type error when provided '+values[i] ); - } - t.end(); -}); - -tape( 'the function returns an error if provided a `readonly` option which is not a boolean', function test( t ) { - var values; - var opts; - var err; - var i; - - values = [ - '5', - 5, - void 0, - null, - NaN, - [], - {}, - function noop() {} - ]; - - for ( i = 0; i < values.length; i++ ) { - opts = { - 'readonly': values[ i ] - }; - err = validate( {}, opts ); - t.strictEqual( err instanceof TypeError, true, 'returns a type error when provided '+values[i] ); - } - t.end(); -}); - -tape( 'the function returns `null` if all options are valid', function test( t ) { - var options; - var opts; - var err; - - opts = {}; - options = { - 'mode': 'wrap', - 'submode': [ 'throw', 'wrap', 'clamp' ], - 'readonly': true - }; - - err = validate( opts, options ); - t.strictEqual( err, null, 'returns null' ); - t.deepEqual( opts, options, 'sets options' ); - - t.end(); -}); - -tape( 'the function will ignore unrecognized options', function test( t ) { - var options; - var opts; - var err; - - opts = {}; - options = { - 'beep': true, - 'boop': 'bop' - }; - - err = validate( opts, options ); - t.strictEqual( err, null, 'returns null' ); - t.deepEqual( opts, {}, 'ignores unrecognized options' ); - - t.end(); -});