Files
akbasic/tests/reference/examples/bubblesort.bas
Andrew Kesterson eb5374d212 Check the reference corpus in, so the build stops needing the Go submodule
All 41 .bas/.txt pairs copied byte for byte from basicinterpreter@d76162c into
tests/reference/, plus the Commodore font into assets/fonts/ -- the two things
that tied the build to deps/basicinterpret. Both were verified cmp-identical
to the submodule copies.

This reverses a decision that was deliberate and correct at the time: the
corpus was driven in place because copying a submodule's corpus guarantees
drift. Overruled on purpose -- the Go dependency is being deprecated, and a
build that cannot run its acceptance suite without cloning the implementation
it replaced is not finished. tests/reference/README.md records what the drift
now costs and that those expectations are never edited.

Checked rather than assumed: both configurations configure, build and pass
from scratch with deps/basicinterpret moved out of the tree entirely.

The submodule is kept as the behavioural spec, which is a real use. The font
came with an open licence question; assets/fonts/PROVENANCE.md states it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 12:35:40 -04:00

30 lines
711 B
QBasic

10 DIM A#(5)
15 ITERATIONS# = 0
20 A#(0) = 5
21 A#(1) = 2
22 A#(2) = 4
23 A#(3) = 1
24 A#(4) = 3
25 PRINT "BEFORE SORTING: "
26 FOR I# = 0 TO 4
27 PRINT A#(I#)
28 NEXT I#
30 CHANGED# = 0
32 ITERATIONS# = ITERATIONS# + 1
35 FOR I# = 0 TO 3
45 J# = I#+1
46 REM PRINT "COMPARING INDEXES " + I# + " (" + A#(I#) + ") AND " + J# + "
50 IF A#(I#) <= A#(J#) THEN GOTO 100
55 REM PRINT "SWAPPING INDEXES " + I# + " AND " + J#
60 TMP# = A#(I#)
70 A#(I#) = A#(J#)
80 A#(J#) = TMP#
85 CHANGED# = CHANGED# + 1
100 NEXT I#
110 IF CHANGED# <> 0 THEN GOTO 30
115 PRINT "AFTER SORTING:"
120 FOR I# = 0 TO 4
130 PRINT A#(I#)
140 NEXT I#
145 PRINT "SORTED IN " + ITERATIONS# + " ITERATIONS"