clank-together/test/grouping.test.js
Saty 45aa216805 Work comes in coherent groups; unplaced functions are placed before porting
- "Next work" (td_claim_batch without arguments, and td_claim_task without
  an id) claims a group: the best open task's source file, else its class,
  else the run of neighbouring unplaced functions in the binary.
- The worker places unplaced functions where the binary makes it clear:
  between two functions of the same file, or with their class's other
  methods (6,745 of 22,572 on the live data); again every 30 minutes.
- td_place lets an agent organize a group of unplaced functions before
  porting them: a .cpp file each (validated path) and optionally a name
  (identifiers only). Later work on them then comes per file.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RNwtXPYqFu3oKaaXwYwNWW
2026-10-18 11:37:20 +02:00

12 lines
663 B
JavaScript

import { test } from 'node:test';
import assert from 'node:assert/strict';
import { className } from '../src/server/grouping.js';
test('className takes the part before the last top-level ::', () => {
assert.equal(className('CGUnit_C::UpdateDisplayInfo'), 'CGUnit_C');
assert.equal(className('Ns::Cls::Method'), 'Ns::Cls');
assert.equal(className('TSHashTable<UncachableNode,HASHKEY_STRI>::TSHashTable<UncachableNode,HASHKEY_STRI>'), 'TSHashTable<UncachableNode,HASHKEY_STRI>');
assert.equal(className('Foo<std::pair<int,int>>::Bar'), 'Foo<std::pair<int,int>>');
assert.equal(className('FreeFunction'), null);
assert.equal(className(null), null);
});