From 37cea3e45c0e395e27d86f83e28473421afd5c9e Mon Sep 17 00:00:00 2001 From: Chesterkxng Date: Tue, 25 Jun 2024 20:17:48 +0000 Subject: [PATCH 1/3] init number dir create listOfIntegers function then write testCases for that function --- .../number/generate/generate.service.test.ts | 56 +++++++++++++++++++ src/pages/number/generate/index.tsx | 11 ++++ src/pages/number/generate/meta.ts | 12 ++++ src/pages/number/generate/service.ts | 12 ++++ src/pages/number/index.ts | 2 + 5 files changed, 93 insertions(+) create mode 100644 src/pages/number/generate/generate.service.test.ts create mode 100644 src/pages/number/generate/index.tsx create mode 100644 src/pages/number/generate/meta.ts create mode 100644 src/pages/number/generate/service.ts create mode 100644 src/pages/number/index.ts diff --git a/src/pages/number/generate/generate.service.test.ts b/src/pages/number/generate/generate.service.test.ts new file mode 100644 index 0000000..fb5bc41 --- /dev/null +++ b/src/pages/number/generate/generate.service.test.ts @@ -0,0 +1,56 @@ +// Import necessary modules and functions +import { describe, it, expect } from 'vitest'; +import { listOfIntegers } from './service'; + +// Define test cases for the listOfIntegers function +describe('listOfIntegers function', () => { + it('should generate a list of integers with comma separator', () => { + const initialValue = 1; + const step = 2; + const count = 5; + const separator = ', '; + + const result = listOfIntegers(initialValue, count, step, separator); + expect(result).toBe('1, 3, 5, 7, 9'); + }); + + it('should generate a list of integers with dash separator', () => { + const initialValue = 0; + const step = 3; + const count = 4; + const separator = ' - '; + + const result = listOfIntegers(initialValue, count, step, separator); + expect(result).toBe('0 - 3 - 6 - 9'); + }); + + it('should handle negative initial value and step', () => { + const initialValue = -10; + const step = -2; + const count = 5; + const separator = ' '; + + const result = listOfIntegers(initialValue, count, step, separator); + expect(result).toBe('-10 -12 -14 -16 -18'); + }); + + it('should handle negative initial value and positive step', () => { + const initialValue = -10; + const step = 2; + const count = 5; + const separator = ' '; + + const result = listOfIntegers(initialValue, count, step, separator); + expect(result).toBe('-10 -8 -6 -4 -2'); + }); + + it('should float value', () => { + const initialValue = -10; + const step = 2.5; + const count = 5; + const separator = ' '; + + const result = listOfIntegers(initialValue, count, step, separator); + expect(result).toBe('-10 -7.5 -5 -2.5 0'); + }); +}); \ No newline at end of file diff --git a/src/pages/number/generate/index.tsx b/src/pages/number/generate/index.tsx new file mode 100644 index 0000000..6948a98 --- /dev/null +++ b/src/pages/number/generate/index.tsx @@ -0,0 +1,11 @@ +import { Box } from '@mui/material'; +import React from 'react'; +import * as Yup from 'yup'; + +const initialValues = {}; +const validationSchema = Yup.object({ + // splitSeparator: Yup.string().required('The separator is required') +}); +export default function Generate() { + return Lorem ipsum; +} \ No newline at end of file diff --git a/src/pages/number/generate/meta.ts b/src/pages/number/generate/meta.ts new file mode 100644 index 0000000..1e32942 --- /dev/null +++ b/src/pages/number/generate/meta.ts @@ -0,0 +1,12 @@ +import { defineTool } from '@tools/defineTool'; +import { lazy } from 'react'; +// import image from '@assets/text.png'; + +export const tool = defineTool('number', { + name: 'Generate', + path: 'generate', + // image, + description: '', + keywords: ['generate'], + component: lazy(() => import('./index')) +}); \ No newline at end of file diff --git a/src/pages/number/generate/service.ts b/src/pages/number/generate/service.ts new file mode 100644 index 0000000..128bc99 --- /dev/null +++ b/src/pages/number/generate/service.ts @@ -0,0 +1,12 @@ +export function listOfIntegers( + first_value: number, + number_of_numbers: number, + step: number, + separator: string) { + const result: number[] = []; + for (let i: number= 0; i Date: Tue, 25 Jun 2024 21:02:03 +0000 Subject: [PATCH 2/3] writing standards fix --- src/pages/number/generate/service.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/number/generate/service.ts b/src/pages/number/generate/service.ts index 128bc99..1d9f29d 100644 --- a/src/pages/number/generate/service.ts +++ b/src/pages/number/generate/service.ts @@ -4,9 +4,9 @@ export function listOfIntegers( step: number, separator: string) { const result: number[] = []; - for (let i: number= 0; i Date: Tue, 25 Jun 2024 21:02:42 +0000 Subject: [PATCH 3/3] testing the case step equal to 0 --- .../number/generate/generate.service.test.ts | 24 +++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/pages/number/generate/generate.service.test.ts b/src/pages/number/generate/generate.service.test.ts index fb5bc41..f20625b 100644 --- a/src/pages/number/generate/generate.service.test.ts +++ b/src/pages/number/generate/generate.service.test.ts @@ -1,6 +1,6 @@ // Import necessary modules and functions import { describe, it, expect } from 'vitest'; -import { listOfIntegers } from './service'; +import { listOfIntegers} from './service'; // Define test cases for the listOfIntegers function describe('listOfIntegers function', () => { @@ -53,4 +53,24 @@ describe('listOfIntegers function', () => { const result = listOfIntegers(initialValue, count, step, separator); expect(result).toBe('-10 -7.5 -5 -2.5 0'); }); -}); \ No newline at end of file + + it('should generate a constant sequence if the step is 0', () => { + const initialValue = 1; + const step = 0; + const count = 5; + const separator = ' '; + + const result = listOfIntegers(initialValue, count, step, separator); + expect(result).toBe('1 1 1 1 1'); + }); + + it('should generate a constant sequence if the step is 0', () => { + const initialValue = 1; + const step = 0; + const count = 5; + const separator = ' '; + + const result = listOfIntegers(initialValue, count, step, separator); + expect(result).toBe('1 1 1 1 1'); + }); +});