import json import io import pathlib import struct import tempfile import unittest from unittest.mock import patch import numpy as np from pilot.analyze import (build_blocks, exact_pair, object_record, read_object, sample_object, sharing_groups) from pilot.tensors import decode, load_tensors, metrics class PilotTests(unittest.TestCase): def test_directional_replacement_error_and_scaling(self): x = np.array([1., 2., 3.]) m = metrics(x, 2 * x) self.assertAlmostEqual(m['cosine'], 1.) self.assertAlmostEqual(m['error_member_to_rep'], 1.) self.assertAlmostEqual(m['error_rep_to_member'], .5) self.assertAlmostEqual(m['scaled_error'], 0.) self.assertAlmostEqual(m['scale'], .5) def test_bfloat16(self): raw = np.array([0x3f80, 0xc000, 0x0000], dtype='