Módulo:Zona de pruebas/Eloy/Ciencia/doc

El objetivo del módulo es crear funciones para ser usadas en remplazos de {{Ficha de compuesto químico}}, {{Ficha de mineral}}, {{Ficha de elemento químico}}, etc.

Objeto test

El objeto test provee funciones que prueban a las demás. Idealmente debería escribirse primero el test (aunque sea incompleto) y luego las funciones.

  • Cuando se acumulen varias, se moverán a un submódulo (¿ /test ?)
  • Cuando se pueda, puede ser conveniente generar funciones de test más abstractas (para generar nuevos tests más rápida y eficazmente).

test.separaMagnitud(pat)

Tiene una serie de pruebas que realiza sobre la función separaMagnitud(valor,pat), y devuelve un texto con el resultado del test. Si se indica pat, se pasa a la función para que use ese patrón.

magnitud número unidad extra
1 1
2 ºC 2 ºC
2 g/mol {t=273.15 K} 2 g/mol t=273.15 K
-2.08e-2.30 g/mol {t=20 ºC} -0.010424694459447 g/mol t=20 ºC
-2,08e-2,30 g/mol {t=20 ºC} -0.010424694459447 g/mol t=20 ºC
-2.08 -2.08
-2,08e-2,3 g/mol {t=20 ºC} algo más que omite -0.010424694459447 g/mol t=20 ºC

Funciones

separaMagnitud(valor,pat)

Convierte un texto valor que representa una magnitud, en una tabla con los siguientes valores:

número
Es la parte numérica, puede ser flotante. Atención: A veces devuelve número, y otras en forma de texto.
unidad
Es un texto que representa la unidad indicada
extra
Es el texto que representa otros valores indicados. Está pensado para indicar condiciones del valor, notas, e incluso su referencia.
deltae
Todavía no implementado. Indica la precisión del valor, deducida de la forma en la que se expresó (y en sus mismas unidades). Por ejemplo, tanto 0 como 10 tiene un 1, para 0.5 es 0.1, para 0.50 es 0.01, etc. Para exponencial se realiza el mismo procedimiento, y luego se aplica el exponencial; por ejemplo 800 es 1, 8e2 es 1e2 (100), 8e-2 es 1e-2 (0.01), 8e-2.5 es 1e-2.5 (0,00316…), etc.

Para más información, vea los tests de esta función.

Hoja de ruta

En un orden aproximado, algunos de los siguientes pasos:

  • separaMagnitud()
    • test precisión
    • implementar precisión
  • función: separar los parámetros de "extra" de separaMagnitud()
  • función: símil separaMagnitud, pero procesando extra recursivamente según un árbol preestablecido
  • función imprimirMagnitud: convierte una tabla que representa la magnitud (por ejemplo, devuelta por separaMagnitud) en wikitexto (por ejemplo, enlazando a las unidades).
  • soportar comentarios: Un texto (--, //, y/u otro) que sirva para comentar hasta fin de línea.
  • función: conversión de unidades. Indistintamente de la unidad ingresada, devuelve el valor (en forma de array) en la unidad deseada (o un error). En un principio puede ser una simple tabla con una tabla por unidad de destino, con una función por unidad de entrada.
{['ºC']={['K']=function()…end},['K']={['ºC']=function()…end},['g/cm3'={['kg/m3']=function()…end}],['kg/m3']={['g/cm3']=function()…end},…}

Notas

Manejo de unidades de forma más armoniosa. Recibe una magnitud en una unidad, y la devuelve bien formada en varias.

  • Asume la precisión del valor para realizar la conversión
  • Propiedades que debe cubrir
    • Temperaturas.
      • Temperatura crítica
      • Punto de fusión¹
      • Punto de ebullición¹. Además, si es {desc=1} indica "Inalcanzable, se descompone antes."
      • Punto de descomposición¹
    • Presiones, a condiciones normales y otras
      • Presión crítica
      • Presión de vapor
    • Solubilidad¹. Transforma a molal. Acepta también en otros solventes.
    • No llevan unidad por ser índices, cocientes, etc.
      • Índice de refracción
      • pKa¹, pKb¹
      • kPS¹
      • Coeficiente de reparto
      • Exceción renal e intestinal (son %)
    • kJ/mol
      • Entalpía de formación, estado gaseoso, líquido y sólido
    • No llevan unidad por estar asumida
      • momento dipolar, en Debye
      • Semivida
  • Propiedades que son solo texto. Posiblemente son renombradas en la plantilla a una forma genérica. En algunos casos podrán ser incorporados luego al módulo.
    • Farmacológicas
      • Biodisp, Metabolismo, Embarazo
    • Bioquímica
      • familia,esencial,codón,isoelect
  • Propiedades que wikitexto por ser complejas. Posiblemente son renombradas en la plantilla a una forma genérica. En algunos casos podrán ser incorporados luego al módulo.
      • Exc: «R» para renal, «I» para intestinal, un texto cualquiera, o puede usar «ExcR» y «ExcI»

¹A condiciones normales y otras.

Formateo

Ejemplos

Entrada del usuario Salida en la ficha Detalles
0 C 0 ºC (273 K) asume precisión de 1 ºC
0.00 C 0.00 ºC (273.15 K) Asume precisión de 0.01 ºC
273 K 0 ºC (273 K) Asume precisión de 1 K
en Solubilidad: 35.9 35.9 g/100 mL H2O (m=6.15) La conversión a mol la hace solo si se ha indicado la masa molar

Condiciones

Las condiciones se indican entre corchetes. Por ejemplo:

pvapor=
  1 atm {t=100 °C}
  0,0231 atm {t=20 °C}
  0,00603 atm {t=273K}