Skip to content

Tarun Y — R50-T025: Make verification repeatable for longestCommonSubsequence (LongestCommonSubsequence.js) [Dynamic-Programming/LongestCommonSubsequence.js] #25

Open

Description

@ankushbisht01

Student: Tarun Y

Task: R50-T025 · 5 of 10
Repository: https://github.com/S-AI-Projects/TheAlgorithms-JavaScript
Assigned working branch: student/e26b07f0633

Goal

Work on Dynamic-Programming/LongestCommonSubsequence.js. Control the external state used while testing longestCommonSubsequence. For a pure function, verify repeated calls and input isolation; for time, randomness, network or UI code, inject or mock the relevant dependency. Fixture: Use the smallest valid input and one ordinary input for longestCommonSubsequence from Dynamic-Programming/LongestCommonSubsequence.js. Write the literal inputs and independently calculated expected outputs in the tests before editing the implementation. The check must name the source line establishing each precondition.

Steps

  1. Read Dynamic-Programming/LongestCommonSubsequence.js, especially longestCommonSubsequence near line 30. Record its public inputs, result, mutation behavior and any external dependencies before changing it.
  2. Identify every observable dependency used by this item; explicitly state when none exists.
  3. Run the same fixture twice in fresh isolated state and once after another valid input; assert that earlier runs cannot alter the later result.
  4. Implement work/R50-T025/check.py as a focused runner that executes the new checks and propagates failures. Native check to incorporate: run the repository test script in non-watch mode after installing from its lockfile; for browser-only code use a browser test instead of plain Node. Record the actual command and nonzero test count.
  5. Create the checks specified below and run python3 work/R50-T025/check.py. Save inputs, expected versus actual results and tool versions in work/R50-T025/; a check must exit non-zero when an assertion fails.
  6. Commit the repository change on branch R50-T025; prepare a PR to the organisation fork explaining the result and linking the checks. Keep each task independently reviewable. Remove work/R50-T025/ from a later upstream branch.

Done when

☐ The checked behavior is tied to longestCommonSubsequence in Dynamic-Programming/LongestCommonSubsequence.js; every assertion has an explicit expected value.
☐ Use the smallest valid input and one ordinary input for longestCommonSubsequence from Dynamic-Programming/LongestCommonSubsequence.js. Write the literal inputs and independently calculated expected outputs in the tests before editing the implementation. The check must name the source line establishing each precondition.
☐ Existing supported behavior and the public interface are preserved unless a failing regression demonstrates and documents a defect.
☐ The focused test works without live network access, a real user account or GUI interaction.
☐ Any introduced dependency parameter has a default preserving current callers.

Additional task guidance

Additional curated task guidance

Item:
Dynamic-Programming/LongestCommonSubsequence.js

Task type:
Deterministic execution

Code change (goes into the PR):
Dynamic-Programming/LongestCommonSubsequence.js: make the smallest dependency seam needed for deterministic checks, or add repeatability/input-isolation regression tests if it is already pure.

Automated check:
python3 work/R50-T025/check.py

Prerequisites:
Node matching the project engines/CI, package manager selected by its lockfile, and Python 3.

Upstream PR rules:
Preserve the repository JavaScript style, use its test framework, and include JSDoc for changed public behavior. Submit coursework to the organisation fork first; keep work/ evidence out of any later upstream PR. Upstream acceptance is not a grading requirement. Policy: https://github.com/TheAlgorithms/JavaScript/blob/5c39e87a9a31f279c60f830ad74a845e4788a517/CONTRIBUTING.md

Source (pinned):
https://github.com/TheAlgorithms/JavaScript/blob/5c39e87a9a31f279c60f830ad74a845e4788a517/Dynamic-Programming/LongestCommonSubsequence.js#L30

Change:
Replaces the shared task template with an item-specific contribution brief.

PR destination:
Upstream candidate after review

Submission checklist

  • Complete this task and its checks.
  • Add the required evidence and link your pull request here.
  • Select this S-AI-Projects fork as the PR base repository.
  • Request instructor review.

Keep this PR focused on this task. Do not submit assignment PRs to the upstream repository.

Activity

  1. 9808Tarun commented on Nov 12, 2026

    @9808Tarun

    PR: #63

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions