package linthost

import "testing"

// TestEngineUseTabsEmitsRemainderSpaces verifies one tab followed by one
// space for an Indent of three with UseTabs and TabWidth two.
//
// Division of three configured columns by two leaves one complete tab
// and one remainder column. The literal newline-tab-space-x checks
// those generated bytes. An editor using a different tab-stop width
// can display a different column position; this fixture does not
// guarantee visual alignment across editor settings.
//
// @evidence contracts/testing.md#behavioral-verification Print must emit one tab and one space for a three-column indent with TabWidth two.
// @evidence contracts/testing.md#independent-expectations Independent division gives one complete two-column tab plus one remainder column, retaining x.
// @evidence contracts/testing.md#distinguishing-cases Nonmultiple indentation complements the whole-tab indentation case.
// @evidence contracts/testing.md#execution-ownership TestEngineUseTabsEmitsRemainderSpaces is one Go unit entry that renders a literal Indent of width 3 with Print under UseTabs and TabWidth 2 in-process; it parses no source and installs, builds and launches nothing.
func TestEngineUseTabsEmitsRemainderSpaces(t *testing.T) {
  doc := Indent(3, Hardline(), Text("x"))
  opts := DefaultPrintOptions()
  opts.UseTabs = true
  opts.TabWidth = 2
  got := Print(doc, opts)
  if got != "\n\t x" {
    t.Fatalf("useTabs remainder-spaces mismatch: %q", got)
  }
}
