pict icon indicating copy to clipboard operation
pict copied to clipboard

Missing Negative Cases When Using Submodels

Open napsta32 opened this issue 4 years ago • 2 comments

I found some weird situations in which all negative values of one submodel are ignored without any warning or error. This is the smallest model I found where this happens:

C1: 1, ~0
C2: 1, 2, 3, ~0

D1: ok, ~fail
D2: 1, ~0, ~-1
D3: 1, ~0, ~-1, ~-2, ~-3

{C1, C2} @ 2
{D1, D2, D3} @ 2

Current Behavior:

pict model /r:1222

C1      C2      D1      D2      D3
1       1       ok      1       1
1       3       ok      1       1
1       2       ok      1       1
1       1       ok      ~-1     1
1       2       ok      1       ~-3
1       1       ~fail   1       1
1       3       ok      1       ~-1
1       3       ok      ~0      1
1       2       ok      ~-1     1
1       2       ok      1       ~0
1       2       ok      ~0      1
1       3       ok      1       ~0
1       3       ok      ~-1     1
1       1       ok      ~0      1
1       1       ok      1       ~-3
1       2       ok      1       ~-1
1       3       ok      1       ~-3
1       1       ok      1       ~0
1       3       ~fail   1       1
1       1       ok      1       ~-1
1       1       ok      1       ~-2
1       2       ok      1       ~-2
1       3       ok      1       ~-2
1       2       ~fail   1       1

Expected Behavior:

  • Expected test cases with C1=~0
  • Expected test cases with C2=~0

napsta32 avatar Aug 09 '20 09:08 napsta32

Has there been any update on this sub-model+negative values bug?

We're also running into issues where negative values are ignored for some parameters but only if sub-models are used. If no sub-models are used then the negative values are correctly output for all parameters.

It seems like when the bug happens even explicitly defined combinations in the seed file are excluded from the output.

For example:

./pict test.pict /e:seed.txt /o:1

test.pict

D1: 1, ~0
D2: 1, ~0
D3: 1, ~0

C1: 1, 2, ~0
C2: 1, 2, ~0

# no issue if you comment out the sub-models below
{C1, C2}
{D1, D2, D3}

seed.txt

C1	C2
1	~0
~0	2

output with sub-models

D1      D2      D3      C1      C2
1       1       1       1       2
1       1       1       1       1
1       1       1       2       2
~0      1       1       2       1
1       1       ~0      2       1
1       ~0      1       2       1

output with sub-models commented out

D1      D2      D3      C1      C2
1       1       1       1       2
1       1       1       2       2
1       1       1       2       1
1       1       1       1       ~0
1       1       1       ~0      2
~0      1       1       2       1
1       1       ~0      2       1
1       ~0      1       2       1

WaveDashShine avatar Nov 27 '23 22:11 WaveDashShine

Strangely, if I remove the value 2 from the c parameters, then I get an error in the terminal:

./pict test.pict /e:seed.txt /o:1
pict: api/model.cpp:1153: void pictcore::Model::processExclusions(pictcore::ComboCollection&): Assertion `!iexcl->empty()' failed.
Aborted
expand here for updated input files

test.pict

D1: 1, ~0
D2: 1, ~0
D3: 1, ~0

C1: 1, ~0
C2: 1, ~0

{C1, C2}
{D1, D2, D3}

seed.txt

C1	C2
1	~0
~0	1

WaveDashShine avatar Nov 27 '23 22:11 WaveDashShine