From 67891d1e32ab268662e4b2f619528c8372d6e9fc Mon Sep 17 00:00:00 2001 From: mgreminger Date: Sat, 18 Nov 2023 13:55:31 -0600 Subject: [PATCH] fix: use standard SI symbol for base units sec now defaults to s, ampere now defaults to A, kelvin now defaults to K, candelar now defaults to cd, and mole now defaults to mol --- public/dimensional_analysis.py | 10 +++++----- tests/test_basic.spec.mjs | 18 +++++++++--------- tests/test_calc.spec.mjs | 2 +- tests/test_functions.spec.mjs | 2 +- tests/test_generated_code.spec.mjs | 2 +- tests/test_matrix_addition.spec.mjs | 10 +++++----- tests/test_matrix_inverse.spec.mjs | 4 ++-- tests/test_matrix_multiplication.spec.mjs | 10 +++++----- tests/test_system_solve.spec.mjs | 12 ++++++------ 9 files changed, 35 insertions(+), 35 deletions(-) diff --git a/public/dimensional_analysis.py b/public/dimensional_analysis.py index ab0b0219c..ff2b3aee8 100644 --- a/public/dimensional_analysis.py +++ b/public/dimensional_analysis.py @@ -577,11 +577,11 @@ class CombinedExpressionScatter(TypedDict): (0, 0, 0, 0, 0, 0, 0, 0, 0): "", (1, 0, 0, 0, 0, 0, 0, 0, 0): "kg", (0, 1, 0, 0, 0, 0, 0, 0, 0): "m", - (0, 0, 1, 0, 0, 0, 0, 0, 0): "sec", - (0, 0, 0, 1, 0, 0, 0, 0, 0): "ampere", - (0, 0, 0, 0, 1, 0, 0, 0, 0): "kelvin", - (0, 0, 0, 0, 0, 1, 0, 0, 0): "candela", - (0, 0, 0, 0, 0, 0, 1, 0, 0): "mole", + (0, 0, 1, 0, 0, 0, 0, 0, 0): "s", + (0, 0, 0, 1, 0, 0, 0, 0, 0): "A", + (0, 0, 0, 0, 1, 0, 0, 0, 0): "K", + (0, 0, 0, 0, 0, 1, 0, 0, 0): "cd", + (0, 0, 0, 0, 0, 0, 1, 0, 0): "mol", (1, 1, -2, 0, 0, 0, 0, 0, 0): "N", (0, 2, 0, 0, 0, 0, 0, 0, 0): "m^2", (0, 3, 0, 0, 0, 0, 0, 0, 0): "m^3", diff --git a/tests/test_basic.spec.mjs b/tests/test_basic.spec.mjs index be595fc89..c04157b01 100644 --- a/tests/test_basic.spec.mjs +++ b/tests/test_basic.spec.mjs @@ -185,7 +185,7 @@ test('Test basic functionality', async () => { content = await page.textContent('#result-value-1'); expect(parseLatexFloat(content)).toBeCloseTo(6e-6, precision); content = await page.textContent('#result-units-1'); - expect(content).toBe('m^2*sec^-1'); + expect(content).toBe('m^2*s^-1'); await page.type(':nth-match(math-field.editable, 2)', '[/mm^2'); await page.press(':nth-match(math-field.editable, 2)', 'ArrowRight'); @@ -438,7 +438,7 @@ test('Test basic functionality', async () => { await page.type(':nth-match(math-field.editable, 1)', ']=') await page.waitForSelector('text=Updating...', {state: 'detached'}); content = await page.textContent('#result-units-0'); - expect(content).toBe('sec^-1') + expect(content).toBe('s^-1') await page.click('#add-math-cell'); await page.type(':nth-match(math-field.editable, 2)', '1[1/sec'); @@ -1234,12 +1234,12 @@ test('Test temperature conversions', async () => { content = await page.textContent('#result-value-2'); expect(parseLatexFloat(content)).toBeCloseTo(5/9, precision); content = await page.textContent('#result-units-2'); - expect(content).toBe('kelvin'); + expect(content).toBe('K'); content = await page.textContent('#result-value-3'); expect(parseLatexFloat(content)).toBeCloseTo(283.15, precision); content = await page.textContent('#result-units-3'); - expect(content).toBe('kelvin'); + expect(content).toBe('K'); content = await page.textContent('#result-value-4'); expect(parseLatexFloat(content)).toBeCloseTo(460.67, precision-1); @@ -1259,12 +1259,12 @@ test('Test temperature conversions', async () => { content = await page.textContent('#result-value-7'); expect(parseLatexFloat(content)).toBeCloseTo(2, precision); content = await page.textContent('#result-units-7'); - expect(content).toBe('kelvin^-1'); + expect(content).toBe('K^-1'); content = await page.textContent('#result-value-8'); expect(parseLatexFloat(content)).toBeCloseTo(5/9, precision); content = await page.textContent('#result-units-8'); - expect(content).toBe('sec^1*kelvin^1'); + expect(content).toBe('s^1*K^1'); }); @@ -1506,7 +1506,7 @@ test('Test angular frequency conversions', async () => { let content = await page.textContent('#result-value-1'); expect(parseLatexFloat(content)).toBeCloseTo(6, precision); content = await page.textContent('#result-units-1'); - expect(content).toBe('sec^-1*rad^1'); + expect(content).toBe('s^-1*rad^1'); content = await page.textContent('#result-value-2'); expect(parseLatexFloat(content)).toBeCloseTo(3/pi, precision); @@ -1516,10 +1516,10 @@ test('Test angular frequency conversions', async () => { content = await page.textContent('#result-value-3'); expect(parseLatexFloat(content)).toBeCloseTo(3/pi, precision); content = await page.textContent('#result-units-3'); - expect(content).toBe('sec^-1'); + expect(content).toBe('s^-1'); content = await page.textContent('#result-value-4'); expect(parseLatexFloat(content)).toBeCloseTo(3/pi, precision); content = await page.textContent('#result-units-4'); - expect(content).toBe('sec^-1'); + expect(content).toBe('s^-1'); }); \ No newline at end of file diff --git a/tests/test_calc.spec.mjs b/tests/test_calc.spec.mjs index f39fb894b..95740452d 100644 --- a/tests/test_calc.spec.mjs +++ b/tests/test_calc.spec.mjs @@ -86,7 +86,7 @@ test('test basic calculus', async () => { content = await page.textContent('#result-value-10'); expect(parseLatexFloat(content)).toBeCloseTo(20, precision); content = await page.textContent('#result-units-10'); - expect(content).toBe('m^1*sec^-1'); + expect(content).toBe('m^1*s^-1'); content = await page.textContent('#result-value-11'); expect(content).toBe('x'); content = await page.textContent('#result-value-12'); diff --git a/tests/test_functions.spec.mjs b/tests/test_functions.spec.mjs index 1b1f0ac4a..d4f500d10 100644 --- a/tests/test_functions.spec.mjs +++ b/tests/test_functions.spec.mjs @@ -151,7 +151,7 @@ test('Test min/max functions', async ({ browserName }) => { let content = await page.locator('#result-value-1').textContent(); expect(parseLatexFloat(content)).toBeCloseTo(-.002, precision); content = await page.locator('#result-units-1').textContent(); - expect(content).toBe('m^1*sec^-1'); + expect(content).toBe('m^1*s^-1'); await page.setLatex(2, 'y=-10\\left[mm\\right]'); diff --git a/tests/test_generated_code.spec.mjs b/tests/test_generated_code.spec.mjs index e371d76d5..729d04cfe 100644 --- a/tests/test_generated_code.spec.mjs +++ b/tests/test_generated_code.spec.mjs @@ -174,7 +174,7 @@ test('Funciton with two inputs', async () => { Returns ------- float - Return value has units of [m sec]. + Return value has units of [m s]. """ result = x*z diff --git a/tests/test_matrix_addition.spec.mjs b/tests/test_matrix_addition.spec.mjs index 7e5369b89..e17891747 100644 --- a/tests/test_matrix_addition.spec.mjs +++ b/tests/test_matrix_addition.spec.mjs @@ -63,7 +63,7 @@ test('Matrix addition with units', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 6\left\lbrack m\right\rbrack & 8\left\lbrack sec\right\rbrack \\ 10\left\lbrack kg\right\rbrack & 12\left\lbrack rad\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 6\left\lbrack m\right\rbrack & 8\left\lbrack s\right\rbrack \\ 10\left\lbrack kg\right\rbrack & 12\left\lbrack rad\right\rbrack \end{bmatrix}`); }); test('Matrix addition with incompatible units', async () => { @@ -98,7 +98,7 @@ test('Test subtraction with units', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} -4\left\lbrack m\right\rbrack & -4\left\lbrack sec\right\rbrack \\ -4\left\lbrack kg\right\rbrack & -4\left\lbrack rad\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} -4\left\lbrack m\right\rbrack & -4\left\lbrack s\right\rbrack \\ -4\left\lbrack kg\right\rbrack & -4\left\lbrack rad\right\rbrack \end{bmatrix}`); }); test('Incompatible size addition', async () => { @@ -124,7 +124,7 @@ test('nonsquare addition', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 7\left\lbrack m\right\rbrack & 7\left\lbrack sec\right\rbrack \\ 7\left\lbrack kg\right\rbrack & 7\left\lbrack rad\right\rbrack \\ 7\left\lbrack kelvin\right\rbrack & 7\left\lbrack ampere\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 7\left\lbrack m\right\rbrack & 7\left\lbrack s\right\rbrack \\ 7\left\lbrack kg\right\rbrack & 7\left\lbrack rad\right\rbrack \\ 7\left\lbrack K\right\rbrack & 7\left\lbrack A\right\rbrack \end{bmatrix}`); }); test('Addition with literal and variable matrices', async () => { @@ -144,7 +144,7 @@ test('Addition with literal and variable matrices', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 6\left\lbrack m\right\rbrack & 8\left\lbrack sec\right\rbrack \\ 10\left\lbrack kg\right\rbrack & 12\left\lbrack rad\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 6\left\lbrack m\right\rbrack & 8\left\lbrack s\right\rbrack \\ 10\left\lbrack kg\right\rbrack & 12\left\lbrack rad\right\rbrack \end{bmatrix}`); }); test('Addition with two variable matrices', async () => { @@ -168,7 +168,7 @@ test('Addition with two variable matrices', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 6\left\lbrack m\right\rbrack & 8\left\lbrack sec\right\rbrack \\ 10\left\lbrack kg\right\rbrack & 12\left\lbrack rad\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 6\left\lbrack m\right\rbrack & 8\left\lbrack s\right\rbrack \\ 10\left\lbrack kg\right\rbrack & 12\left\lbrack rad\right\rbrack \end{bmatrix}`); }); test('Addition scalar and variable matrix', async () => { diff --git a/tests/test_matrix_inverse.spec.mjs b/tests/test_matrix_inverse.spec.mjs index c06f56571..d10f5efac 100644 --- a/tests/test_matrix_inverse.spec.mjs +++ b/tests/test_matrix_inverse.spec.mjs @@ -67,7 +67,7 @@ test('Matrix inverse with mixed units', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); let content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 2\left\lbrack \frac{1}{m}\right\rbrack & -3\left\lbrack \frac{1}{m}\right\rbrack \\ -1\left\lbrack \frac{1}{sec}\right\rbrack & 2\left\lbrack \frac{1}{sec}\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 2\left\lbrack \frac{1}{m}\right\rbrack & -3\left\lbrack \frac{1}{m}\right\rbrack \\ -1\left\lbrack \frac{1}{s}\right\rbrack & 2\left\lbrack \frac{1}{s}\right\rbrack \end{bmatrix}`); }); test('Matrix inverse exponent with mixed units', async () => { @@ -76,7 +76,7 @@ test('Matrix inverse exponent with mixed units', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); let content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 2\left\lbrack \frac{1}{m}\right\rbrack & -3\left\lbrack \frac{1}{m}\right\rbrack \\ -1\left\lbrack \frac{1}{sec}\right\rbrack & 2\left\lbrack \frac{1}{sec}\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 2\left\lbrack \frac{1}{m}\right\rbrack & -3\left\lbrack \frac{1}{m}\right\rbrack \\ -1\left\lbrack \frac{1}{s}\right\rbrack & 2\left\lbrack \frac{1}{s}\right\rbrack \end{bmatrix}`); }); test('Matrix inverse with inconsistent units', async () => { diff --git a/tests/test_matrix_multiplication.spec.mjs b/tests/test_matrix_multiplication.spec.mjs index 013d53b46..b91ced716 100644 --- a/tests/test_matrix_multiplication.spec.mjs +++ b/tests/test_matrix_multiplication.spec.mjs @@ -271,7 +271,7 @@ test('Units with scalar literal times matrix literal', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); let content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 5\left\lbrack m\cdot sec\right\rbrack & 10\left\lbrack kg\cdot sec\right\rbrack \\ 15\left\lbrack sec\cdot rad\right\rbrack & 20\left\lbrack m^{2}\cdot sec\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 5\left\lbrack m\cdot s\right\rbrack & 10\left\lbrack kg\cdot s\right\rbrack \\ 15\left\lbrack s\cdot rad\right\rbrack & 20\left\lbrack m^{2}\cdot s\right\rbrack \end{bmatrix}`); // change order of scalar-matrix multiplication, should commute await page.setLatex(0, String.raw`\begin{bmatrix}1\left\lbrack m\right\rbrack & 2\left\lbrack kg\right\rbrack\\ 3\left\lbrack radian\right\rbrack & 4\left\lbrack m^2\right\rbrack\end{bmatrix}\cdot 5\left\lbrack s\right\rbrack=`); @@ -279,7 +279,7 @@ test('Units with scalar literal times matrix literal', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 5\left\lbrack m\cdot sec\right\rbrack & 10\left\lbrack kg\cdot sec\right\rbrack \\ 15\left\lbrack sec\cdot rad\right\rbrack & 20\left\lbrack m^{2}\cdot sec\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 5\left\lbrack m\cdot s\right\rbrack & 10\left\lbrack kg\cdot s\right\rbrack \\ 15\left\lbrack s\cdot rad\right\rbrack & 20\left\lbrack m^{2}\cdot s\right\rbrack \end{bmatrix}`); }); test('Variable scalar times variable matrix', async () => { @@ -294,7 +294,7 @@ test('Variable scalar times variable matrix', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); let content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 5\left\lbrack m\cdot sec\right\rbrack & 10\left\lbrack kg\cdot sec\right\rbrack \\ 15\left\lbrack sec\cdot rad\right\rbrack & 20\left\lbrack m^{2}\cdot sec\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 5\left\lbrack m\cdot s\right\rbrack & 10\left\lbrack kg\cdot s\right\rbrack \\ 15\left\lbrack s\cdot rad\right\rbrack & 20\left\lbrack m^{2}\cdot s\right\rbrack \end{bmatrix}`); // change order of scalar-matrix multiplication, should commute await page.setLatex(0, String.raw`A\cdot a=`); @@ -302,7 +302,7 @@ test('Variable scalar times variable matrix', async () => { await page.waitForSelector('text=Updating...', {state: 'detached'}); content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} 5\left\lbrack m\cdot sec\right\rbrack & 10\left\lbrack kg\cdot sec\right\rbrack \\ 15\left\lbrack sec\cdot rad\right\rbrack & 20\left\lbrack m^{2}\cdot sec\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} 5\left\lbrack m\cdot s\right\rbrack & 10\left\lbrack kg\cdot s\right\rbrack \\ 15\left\lbrack s\cdot rad\right\rbrack & 20\left\lbrack m^{2}\cdot s\right\rbrack \end{bmatrix}`); }); test('Cross product with column vectors and variable entries', async () => { @@ -329,7 +329,7 @@ test('Cross product with column vectors and numeric entries and units', async () await page.waitForSelector('text=Updating...', {state: 'detached'}); let content = await page.textContent(`#result-value-0`); - expect(content).toBe(String.raw`\begin{bmatrix} -3\left\lbrack kg\cdot sec\right\rbrack \\ 6\left\lbrack m\cdot sec\right\rbrack \\ -3\left\lbrack kg\cdot m\right\rbrack \end{bmatrix}`); + expect(content).toBe(String.raw`\begin{bmatrix} -3\left\lbrack kg\cdot s\right\rbrack \\ 6\left\lbrack m\cdot s\right\rbrack \\ -3\left\lbrack kg\cdot m\right\rbrack \end{bmatrix}`); }); test('Cross product with column vectors and numeric entries and incompatible units', async () => { diff --git a/tests/test_system_solve.spec.mjs b/tests/test_system_solve.spec.mjs index 7d2adcdf8..0953f37c8 100644 --- a/tests/test_system_solve.spec.mjs +++ b/tests/test_system_solve.spec.mjs @@ -115,7 +115,7 @@ test('Test equation solving', async () => { content = await page.textContent('#result-value-4'); expect(parseLatexFloat(content)).toBeCloseTo(-0.01, precision); content = await page.textContent('#result-units-4'); - expect(content).toBe('m^1*sec^-1'); + expect(content).toBe('m^1*s^-1'); content = await page.textContent('#result-value-5'); expect(parseLatexFloat(content)).toBeCloseTo(-0.022369362920544027, precision); @@ -130,7 +130,7 @@ test('Test equation solving', async () => { content = await page.textContent('#result-value-4'); expect(parseLatexFloat(content)).toBeCloseTo(0.01, precision); content = await page.textContent('#result-units-4'); - expect(content).toBe('m^1*sec^-1'); + expect(content).toBe('m^1*s^-1'); content = await page.textContent('#result-value-5'); expect(parseLatexFloat(content)).toBeCloseTo(0.022369362920544027, precision); @@ -161,7 +161,7 @@ test('test underdetermined system that has exact numerical solution', async () = let content = await page.textContent('#result-value-1'); expect(parseLatexFloat(content)).toBeCloseTo(-sqrt(2*9.81*10*12*25.4/1000), precision); content = await page.textContent('#result-units-1'); - expect(content).toBe('m^1*sec^-1'); + expect(content).toBe('m^1*s^-1'); // update previous example to use assignment instead of equality await page.setLatex(0, String.raw`h=\frac{1}{2\cdot g}\cdot v^{2}`, 2); @@ -174,7 +174,7 @@ test('test underdetermined system that has exact numerical solution', async () = content = await page.textContent('#result-value-1'); expect(parseLatexFloat(content)).toBeCloseTo(sqrt(2*9.81*10*12*25.4/1000), precision); content = await page.textContent('#result-units-1'); - expect(content).toBe('m^1*sec^-1'); + expect(content).toBe('m^1*s^-1'); // update previous example to use assignment with m on both sides // leave on second solution @@ -185,7 +185,7 @@ test('test underdetermined system that has exact numerical solution', async () = content = await page.textContent('#result-value-1'); expect(parseLatexFloat(content)).toBeCloseTo(sqrt(2*9.81*10*12*25.4/1000), precision); content = await page.textContent('#result-units-1'); - expect(content).toBe('m^1*sec^-1'); + expect(content).toBe('m^1*s^-1'); }); @@ -316,7 +316,7 @@ test('Test function notation with equation solving and combined function/assignm content = await page.textContent('#result-value-6'); expect(parseLatexFloat(content)).toBeCloseTo(sqrt(2*9.81*.003), precision); content = await page.textContent('#result-units-6'); - expect(content).toBe('m^1*sec^-1'); + expect(content).toBe('m^1*s^-1'); });