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
como10
tiene un 1, para0.5
es 0.1, para0.50
es 0.01, etc. Para exponencial se realiza el mismo procedimiento, y luego se aplica el exponencial; por ejemplo800
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
- Temperaturas.
- 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
- Farmacológicas
- 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}