1. Такая вот жестокая расплата за то, что коэффициенты преобразования не были зашиты прямо в код. Физические константы все-таки достаточно постоянны, чтобы мучить пользователя вводом табличных значений прежде чем он наконец сможет переводить граммы в килограммы. Это я снова возвращаюсь к тому, что дизайн чрезмерно перегружен, он попросту неудобен. Если уж модель такая гибкая что позволяет вводить любую ерунду, то зачем это вывешивать на GUI? Мы действительно считаем что пользователь должен сам вводить все табличные значения (рискуя опечататься), прежде чем мы ему дадим что-то сконвертировать? Итого: я допускаю что можно оставить как есть, но только в качестве эксперимента, что дескать именно такую программу мы пишем, что пользователь САМ РУКАМИ сперва таблички вводит. Живым людям такие программы давать нельзя, я надеюсь это понятно.
2. По причине такого сурового дизайна в тесте теперь не поймешь где какая A из AAA. Я с третьего захода понял, почему там много дублирующегося кода (мы же должны **при каждом запуске сами руками ввести каждую физическую константу (точнее N^2 коэффициентов), которые никогда на свете не поменяют свое значение**). Предложение минимум - вынести повторяющиеся инициализации в отдельный метод тестового класса (например fillScaleTable), и просто его вызывать. Предложение максимум - наконец подумать о пользователях и пересмотреть дизайн.