Fundamentos de Testing de Software: JUnit, DBUnit, Caja Negra y Blanca

JUnit

Estructura básica: @BeforeEach -> crear SUT. @Test -> Arrange (datos entrada + esperado), Act (ejecutar método), Assert (comprobar resultado). Nombre recomendado: C1_metodo_should_result_when_condicion().

Assertions principales

  • assertEquals(), assertTrue(), assertFalse(), assertNull(), assertNotNull(), assertSame(), assertNotSame(), assertArrayEquals(), assertAll(), assertThrows(), assertDoesNotThrow().

Uso avanzado:

Ejercicios de Programación en C: Manipulación de Vectores y Matrices

Ejercicios Prácticos de Programación en C: Vectores y Matrices

Cuestión 1: Inversión de un Vector de Enteros

Enunciado: Dado un vector de enteros de dimensión 5, cree otro que contenga los elementos invertidos del primero.

#include <stdio.h>

int main() {
    int vector[5];
    int i;
    for (i = 0; i < 5; i++) {
        printf("Deme un elemento del vector: ");
        scanf("%d", &vector[i]);
    }
    printf("El vector introducido es: ");
    for (i = 0; i < 5; i++) {
       Seguir leyendo “Ejercicios de Programación en C: Manipulación de Vectores y Matrices” »

Modelos Atómicos y Fundamentos de la Mecánica Cuántica

1. Experimento de Thomson

1.1 Ideas clave

  • Rayos catódicos: Se trata de un haz de electrones producido en un tubo con gas enrarecido y una diferencia de potencial entre electrodos.
  • Tubo de Crookes: Es un tubo de descarga a baja presión que permite observar el haz producido desde el cátodo hacia el ánodo.
  • Interacción con campos:

Principios de Mecánica de Rocas: Ensayos, Tensiones y Estabilidad

Ensayo indirecto de tracción brasileño

Es el ensayo más utilizado para medir la resistencia a tracción de una roca.

Dicho ensayo consiste en someter a un cilindro de roca, de longitud igual a su radio, a una compresión diametral. Esto provoca la rotura a lo largo de dicho diámetro como consecuencia de las tensiones de tracción que se generan en dirección perpendicular al mismo.

La tensión a lo largo del diámetro es uniforme.

Hay que tener en cuenta que también existen tensiones compresivas Seguir leyendo “Principios de Mecánica de Rocas: Ensayos, Tensiones y Estabilidad” »

Sistemas Empotrados y Arquitectura de Microcontroladores: De Periféricos a RTOS y Linux

Entrada/Salida en Paralelo (GPIO)

Los pines se agrupan en puertos y permiten la configuración de entrada/salida, contando en ocasiones con una resistencia de pull-up interna.

Problemas Resueltos de Teoría de la Medida y Funciones Medibles

 Enunciado: Explique por qué las medidas de Lebesgue-Stieltjes son medidas de Borel.

Una medida de Lebesgue-Stieltjes se define a partir de una función creciente y continua por la derecha F, asignando a cada intervalo (a,b] el valor F(b)-F(a). Esta premedida sobre el álgebra de uniones finitas de intervalos es σ-aditiva, y al aplicar el teorema de extensión de Carathéodory se obtiene una medida completa en la σ-álgebra de los conjuntos medibles. Como todo conjunto de Borel es medible para Seguir leyendo “Problemas Resueltos de Teoría de la Medida y Funciones Medibles” »

Arquitectura en AWS: Fundamentos de ECS, Lambda y Bases de Datos

1. Arquitectura general y balanceador

¿El balanceador es ALB o NLB? ¿Por qué?

En mi arquitectura monolítica uso un ALB (Application Load Balancer). Este se sitúa entre API Gateway y ECS. API Gateway redirige las peticiones HTTP hacia el ALB, y el ALB las distribuye al Target Group donde están registradas las Tasks de ECS que ejecutan la API Flask.

¿Qué sucede si se elimina el Load Balancer?

API Gateway perdería la ruta de comunicación hacia ECS. Aunque las Tasks podrían seguir existiendo, Seguir leyendo “Arquitectura en AWS: Fundamentos de ECS, Lambda y Bases de Datos” »

Conceptos Fundamentales de Machine Learning: Clasificación, Clustering y Validación

Regresión Logística

La regresión logística es un método de aprendizaje supervisado usado principalmente para clasificación. Aunque se llama regresión, no se usa para predecir valores continuos, sino para estimar la probabilidad de que una muestra pertenezca a una clase.

En clasificación binaria, primero calcula una combinación lineal de las variables:

z = w₀ + w₁x₁ + w₂x₂ + … + wₙxₙ

Después aplica la función sigmoide: σ(z) = 1 / (1 + e⁻ᶻ). La sigmoide transforma cualquier Seguir leyendo “Conceptos Fundamentales de Machine Learning: Clasificación, Clustering y Validación” »

Resolución de Sistemas Lineales, Optimización y Cálculo Diferencial

Sistemas de Ecuaciones Lineales

Empieza escribiendo la matriz ampliada y calcula el determinante de la matriz de coeficientes. Si el determinante es distinto de 0, ya sabes que el sistema es compatible determinado (SCD) y solo queda resolverlo por Gauss.

Si el determinante vale 0, no significa que no tenga solución. Debes aplicar el método de Gauss para calcular el rango de la matriz de coeficientes y el de la matriz ampliada (teorema de Rouché-Frobenius).

Cómo Entender y Balancear Ecuaciones Químicas: Paso a Paso

1. Definición y Conceptos Básicos

Las ecuaciones químicas son representaciones gráficas de las reacciones químicas usando símbolos y fórmulas. En una ecuación química hay tres partes fundamentales:

  • Reactivos: Todo lo que se encuentra antes de la flecha recibe el nombre de reactivo (las sustancias iniciales que van a reaccionar).
  • Productos: Todo lo que se encuentra después de la flecha recibe el nombre de producto.
  • La Flecha (→): Significa «produce» o «se transforma en».

Las sustancias o compuestos Seguir leyendo “Cómo Entender y Balancear Ecuaciones Químicas: Paso a Paso” »