ErrorsManager/Public/doc/es/manual/compact.w.md

2.6 KiB

language = es
title_i18n = errors_manager_title_compact
title_text = compact - ErrorsManager

compact

@ [Integer] ErrorsManager.compact(!Integer code)

@ [String] ErrorsManager.compact(!String code)

[[@ [Array] ErrorsManager.compact(!Array code)]]

El método compact es un método objeto que elimina los ceros a la izquierda del código de error en formao Array o String. Cuando a éste se le envía el formato Integer, éste retornará el mismo pues los valores numéricos enteros no tienen dicha propiedad.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from Assets.ErrorsManager import ErrorsManager

errors_manager:ErrorsManager = ErrorsManager()
value:int|str|list[int]

for i, value in enumerate((105, "pBAA", [41, 1, 0, 0])):

    compacted:int|str|list[int] = errors_manager.compact(value)

    print([
        "Prueba " + str(i), 
        value, 
        errors_manager.to_array_binary(value), 
        compacted, 
        errors_manager.to_array_binary(compacted)
    ])

"use strict";

/** @type {ErrorsManager} */
const errors_manager = new ErrorsManager();

[105, "pBAA", [41, 1, 0, 0]].forEach((value, i) => {

    /** @type {number|String|Array.<number>} */
    const compacted = errors_manager.compact(value);

    console.log([
        "Prueba " + i, 
        value, 
        errors_manager.to_array_binary(value), 
        compacted, 
        errors_manager.to_array_binary(compacted)
    ]);

});

El resultado de estas pruebas son los siguientes:

[| |= Prueba | Valor | Binario | Compactado | Binario compactado | 0 | 105 | ["101001", "000001"] | 105 | ["101001", "000001"] | 1 | "pBAA" | ["101001", "000001", "000000", "000000"] | "pB" | ["101001", "000001"] | 2 | [41, 1, 0, 0] | ["101001", "000001", "000000", "000000"] | [41, 1] | ["101001", "000001"] |]

[!!] Los binarios aquí representados están en base al método objeto de pruebas to_array_binary, y es posible que no se espere dicho binario del valor dado por su orden, pero es el método que se usa para hacer las comprobaciones pertinentes.

[!!] Los valores compactados lo único que hacen es simplificar el valor a la mínima unidad como valor, en el caso de los String como caracteres; y en el caso de los Array como enteros, motivo por el cual, cuando salen los binarios compactados salen con ceros a la izquierda en el último bloque binario, sin embargo, podemos ver que lo que son bloques completamente 0 se eliminarán.