Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(math/algebra/exponents-and-logarithms/exponent-rules): Implement Problem Generators for Exponent Rules #3

Merged

Conversation

TKanX
Copy link
Member

@TKanX TKanX commented Nov 21, 2024

Summary:

Implemented problem generators for various exponent rules.

Related Issues:

Related to #2

Changes:

  • Implemented the following problem generators:
    • Product of Powers Rule
    • Quotient of Powers Rule
    • Power of a Power Rule
    • Power of a Product Rule
    • Power of a Quotient Rule
    • Negative Exponent Rule
    • Zero Exponent Rule
    • Fractional Exponents (Roots as Exponents)
  • Added support for multiple choice questions and variable inclusion.
  • Included options for customizing base range, exponent range, and other relevant parameters.
  • Added corresponding tests for each problem generator to ensure correct functionality.
  • Updated index.json to include descriptions and parameters for each new problem generator.

TKanX added 27 commits November 16, 2024 05:21
- Added handling for parameters of type "range".
- Ensured that the minimum value does not exceed the maximum value.
- Adjusted topic options to respect the defined range constraints.

Related to issue #2
…wersRule): Add product of powers rule problem generator

- Implemented `productOfPowersRule.js` to generate problems involving the product of powers rule.
- Included options for problem customization, such as base range, exponent range, and variable inclusion.
- Added support for both MCQ and step-based problem formats.
- Implemented solution calculation by summing the exponents of the same base.
- Added LaTeX formatting for problem statements, solutions, and steps.
- Enhanced parameter validation with configurable value ranges for bases and exponents.

Related to issue #2
…wersRule): Add tests for product of powers rule problem generator

- Implemented tests for `productOfPowersRule.js` to ensure correct problem generation.
- Added tests for variable base problems.
- Added tests for numeric base problems.
- Added tests for multiple choice question format.
- Verified correct steps generation for problem solutions.
- Validated the range of base and exponent values.

Related to issue #2
…ersRule): Add instruction text for MCQ options

- Added instruction text "Choose the correct answer." before multiple choice question options.
- Enhanced clarity for users when selecting the correct answer in MCQ format.

Related to issue #2
…ersRule): Fix rendering issue for multi-digit exponents

- Fixed an issue where multi-digit exponents were not correctly rendered by adding curly braces `{}` around exponents.
- Updated corresponding tests to ensure proper rendering of multi-digit exponents.

Related to issue #2
…wersRule): Add Product of Powers Rule to index

- Added the Product of Powers Rule generator to the index.json file.
- Included descriptions and parameters for the Product of Powers Rule topic.

Related to issue #2
…owersRule): Implement quotient of powers rule generator and add to index

- Implemented `quotientOfPowersRule.js` to generate problems involving the quotient of powers rule.
- Added support for multiple choice questions and variable inclusion.
- Included options for customizing base and exponent ranges.
- Added the quotient of powers rule generator to the index.json file with descriptions and parameters.

Related to issue #2
…owersRule): Add tests for quotient of powers rule problem generator

- Implemented tests for `quotientOfPowersRule.js` to ensure correct problem generation.
- Added tests for variable base problems.
- Added tests for numeric base problems.
- Added tests for multiple choice question format.
- Verified correct steps generation for problem solutions.
- Validated the range of base and exponent values.

Related to issue #2
…rRule): Implement power of power rule generator and add to index

- Implemented `powerOfPowerRule.js` to generate problems involving the power of a power rule.
- Added support for multiple choice questions and variable inclusion.
- Included options for customizing base and exponent ranges.
- Added the power of power rule generator to the index.json file with descriptions and parameters.

Related to issue #2
…rRule): Add tests for power of power rule problem generator

- Implemented tests for `powerOfPowerRule.js` to ensure correct problem generation.
- Added tests for variable base problems.
- Added tests for numeric base problems.
- Added tests for multiple choice question format.
- Verified correct steps generation for problem solutions.
- Validated the range of base and exponent values.

Related to issue #2
…uctRule): Implement power of product rule generator and add to index

- Implemented `powerOfProductRule.js` to generate problems involving the power of a product rule.
- Added support for multiple choice questions and variable inclusion.
- Included options for customizing base range, inner exponent range, outer exponent range, and number of factors.
- Added the power of product rule generator to the index.json file with descriptions and parameters.

Related to issue #2
…ctRule): Ensure unique alphabetic bases for factors

- Enforced the use of alphabetic characters as bases to prevent duplicate bases in generated problems.
- Improved the uniqueness of factors in the power of product rule problems.

Related to issue #2
…oduct of powers, quotient of powers, and product of exponents

- Implemented `power` function to format power expressions.
- Implemented `productOfPowers` function to format product of powers expressions.
- Implemented `quotientOfPowers` function to format quotient of powers expressions.
- Implemented `productOfExponents` function to format product of exponents expressions.

Related to issue #2
…tor code to use expressionTemplates

- Refactored `productOfPowersRule.js` to use `expressionTemplates.exponent` for formatting expressions.
- Refactored `quotientOfPowersRule.js` to use `expressionTemplates.exponent` for formatting expressions.
- Refactored `powerOfPowerRule.js` to use `expressionTemplates.exponent` for formatting expressions.
- Refactored `powerOfProductRule.js` to use `expressionTemplates.exponent` for formatting expressions.

Related to issue #2
…uctRule): Add tests for power of product rule problem generator

- Implemented tests for `powerOfProductRule.js` to ensure correct problem generation.
- Added tests for variable base problems with two and three factors.
- Added tests for numeric base problems with two and three factors.
- Added tests for multiple choice question format.
- Verified correct steps generation for problem solutions.
- Ensured that powers of 1 are not generated.

Related to issue #2
…sponding tests

- Added `quotientOfDifferentBases` function to format quotient of different bases expressions.
- Added `powerOfQuotient` function to format power of quotient expressions.
- Added `quotientOfProducts` function to format quotient of products expressions.
- Implemented corresponding tests for the new exponent templates.

Related to issue #2
…ientRule): Implement power of quotient rule generator and add to index

- Implemented `powerOfQuotientRule.js` to generate problems involving the power of a quotient rule.
- Added support for multiple choice questions and variable inclusion.
- Included options for customizing exponent ranges and inner exponent ranges.
- Added the power of quotient rule generator to the index.json file with descriptions and parameters.

Related to issue #2
…ientRule): Add tests for power of quotient rule problem generator

- Implemented tests for `powerOfQuotientRule.js` to ensure correct problem generation.
- Added tests for problems with variable numerator and denominator.
- Added tests for multiple choice question format.
- Verified correct steps generation for problem solutions.
- Validated the range of exponent values.

Related to issue #2
- Implemented `randomBool` function to generate a random boolean value.
- Added tests for `randomBool` to ensure correct functionality.

Related to issue #2
…onentRule): Implement negative exponent rule generator and add to index

- Implemented `negativeExponentRule.js` to generate problems involving the negative exponent rule.
- Added support for multiple choice questions and variable inclusion.
- Included options for customizing base range and exponent range.
- Added the negative exponent rule generator to the index.json file with descriptions and parameters.

Related to issue #2
…onentRule): Add tests for negative exponent rule problem generator

- Implemented tests for `negativeExponentRule.js` to ensure correct problem generation.
- Added tests for variable base problems.
- Added tests for numeric base problems.
- Added tests for multiple choice question format.
- Verified correct steps generation for problem solutions.
- Validated the range of base and exponent values.

Related to issue #2
…add corresponding tests

- Implemented `zeroExponent` function to format expressions with zero exponents.
- Added tests for `zeroExponent` to ensure correct formatting of zero exponent expressions.

Related to issue #2
…tRule): Implement zero exponent rule generator and add to index

- Implemented `zeroExponentRule.js` to generate problems involving the zero exponent rule.
- Added support for multiple choice questions and variable inclusion.
- Included options for customizing base range.
- Added the zero exponent rule generator to the index.json file with descriptions and parameters.

Related to issue #2
…tRule): Add tests for zero exponent rule problem generator

- Implemented tests for `zeroExponentRule.js` to ensure correct problem generation.
- Added tests for variable base problems.
- Added tests for numeric base problems.
- Added tests for multiple choice question format.
- Verified correct steps generation for problem solutions.
- Validated the range of base values.

Related to issue #2
…ts and radical.root template functions with tests

- Implemented `exponent.fractionOfExponents` function to format fraction of exponents expressions.
- Implemented `radical.root` function to format root expressions.
- Added tests for `exponent.fractionOfExponents` to ensure correct formatting.
- Added tests for `radical.root` to ensure correct formatting.

Related to issue #2
…xponents): Implement fractional exponents generator and add to index

- Implemented `fractionalExponents.js` to generate problems involving fractional exponents.
- Added support for multiple choice questions and variable inclusion.
- Included options for customizing base range, numerator exponent range, and denominator exponent range.
- Added the fractional exponents generator to the index.json file with descriptions and parameters.

Related to issue #2
…xponents): Add tests for fractional exponents problem generator

- Implemented tests for `fractionalExponents.js` to ensure correct problem generation.
- Added tests for variable base problems.
- Added tests for numeric base problems.
- Added tests for multiple choice question format.
- Verified correct steps generation for problem solutions.
- Validated the range of base and exponent values.

Related to issue #2
@TKanX TKanX added the enhancement ✨ New feature or request label Nov 21, 2024
@TKanX TKanX self-assigned this Nov 21, 2024
@TKanX TKanX requested a review from Copilot November 21, 2024 07:43
@TKanX TKanX linked an issue Nov 21, 2024 that may be closed by this pull request
34 tasks

Choose a reason for hiding this comment

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

Copilot reviewed 7 out of 22 changed files in this pull request and generated no suggestions.

Files not reviewed (15)
  • src/index.json: Language not supported
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/negativeExponentRule.test.js: Evaluated as low risk
  • src/utils/random.js: Evaluated as low risk
  • src/index.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/zeroExponentRule.js: Evaluated as low risk
  • src/utils/expressionTemplates.js: Evaluated as low risk
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/fractionalExponents.test.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/productOfPowersRule.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfPowerRule.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfQuotientRule.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/quotientOfPowersRule.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfProductRule.js: Evaluated as low risk
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfPowerRule.test.js: Evaluated as low risk
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/productOfPowersRule.test.js: Evaluated as low risk
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/quotientOfPowersRule.test.js: Evaluated as low risk
Comments skipped due to low confidence (1)

src/generators/math/algebra/exponents-and-logarithms/exponent-rules/negativeExponentRule.js:81

  • The variable name options is shadowing the outer options variable. It should be renamed to choices to avoid confusion.
const options = [
…eExponentRule): Rename MCQ options array to choices

- Renamed the MCQ options array to `choices` to avoid confusion with the `options` parameter.
- Improved code readability and maintainability.

Related to issue #2
@TKanX TKanX requested a review from Copilot November 21, 2024 07:56

Choose a reason for hiding this comment

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

Copilot reviewed 7 out of 22 changed files in this pull request and generated no suggestions.

Files not reviewed (15)
  • src/index.json: Language not supported
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfQuotientRule.test.js: Evaluated as low risk
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfProductRule.test.js: Evaluated as low risk
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/fractionalExponents.test.js: Evaluated as low risk
  • src/utils/random.js: Evaluated as low risk
  • src/index.js: Evaluated as low risk
  • src/utils/expressionTemplates.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfQuotientRule.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/quotientOfPowersRule.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/productOfPowersRule.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfPowerRule.js: Evaluated as low risk
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/negativeExponentRule.test.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfProductRule.js: Evaluated as low risk
  • src/generators/math/algebra/exponents-and-logarithms/exponent-rules/fractionalExponents.js: Evaluated as low risk
  • tests/generators/math/algebra/exponents-and-logarithms/exponent-rules/powerOfPowerRule.test.js: Evaluated as low risk
@TKanX TKanX merged commit 5e9c3cb into main Nov 21, 2024
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ✨ New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement Problem Generators for Exponents and Logarithms
1 participant