Considérant :
Que la société X._ SA exploite une blanchisserie dans des locaux qui lui ont été remis à bail à Neuchâtel;
Que la bailleresse Z._ a résilié le contrat le 25 juin 2014 avec effet au 30 juin 2015;
Que la locataire a ouvert action contre la bailleresse;
Qu'elle a conclu principalement à l'annulation du congé et subsidiairement à la prolongation judiciaire du contrat pour une durée de six ans;
Que le Tribunal régional de l'arrondissement du Littoral et du Val-de-Travers s'est prononcé le 20 février 2018;
Qu'il a annulé le congé;
Que la défenderesse a appelé du jugement;
Que la Cour d'appel civile du Tribunal cantonal a statué le 11 octobre 2018;
Qu'elle a partiellement accueilli l'appel, constaté la validité du congé et renvoyé la cause au Tribunal régional pour instruction et décision sur les conclusions subsidiaires de la demande en justice, tendant à la prolongation du contrat;
Que le Tribunal régional a rendu un nouveau jugement le 8 août 2019;
Qu'il a rejeté les conclusions tendant à la prolongation du contrat;
Que la Cour d'appel civile a statué le 17 janvier 2020 sur l'appel de la demanderesse;
Qu'elle a rejeté cet appel, dans la mesure où il était recevable, et confirmé le jugement;
Que la demanderesse exerce le recours en matière civile contre les deux arrêts de la Cour d'appel;
Qu'elle articule des conclusions correspondant à celles de sa demande en justice;
Que la défenderesse conclut au rejet du recours;
Que du juge compétent, la demanderesse a obtenu le 27 mai 2020un sursis concordataire provisoire selon l'art. 293a LP;
Que le procès concernant la résiliation du contrat de bail à loyer et l'éventuelle prolongation de ce contrat ne porte pas sur une créance concordataire aux termes de l'art. 297 al. 5 LP (ATF 143 III 173);
Que le sursis n'entraîne donc pas la suspension de ce procès;
Que par lettre du 14 mai 2020, le conseil de la défenderesse a sommé la demanderesse de restituer les locaux au plus tard le 20 du même mois;
Que la demanderesse soumet au Tribunal fédéral une demande d'effet suspensif tendant à lui permettre de conserver l'usage des locaux jusqu'à droit connu sur le recours en matière civile;
Que le présent arrêt met fin à la cause;
Qu'il n'est donc pas nécessaire de statuer sur cette demande;
Que la Cour d'appel s'est référée aux principes juridiques topiques concernant la validité du congé, d'une part, et la prolongation du contrat, d'autre part;
Que ces principes lui conféraient un important pouvoir d'appréciation;
Qu'elle a motivé ses décisions de manière détaillée et concluante sur chacun de ces objets;
Que devant le Tribunal fédéral, la demanderesse reprend les éléments discutés et développe sa propre discussion;
Qu'elle discute notamment l'appréciation des preuves;
Qu'elle n'avance toutefois aucune critique propre à mettre en évidence une constatation manifestement inexacte des faits, aux termes de l'art. 97 al. 1 LTF;
Que pour le surplus, l'argumentation présentée ne révèle aucune erreur ni lacune dans les critères pris en considération;
Qu'elle ne met pas davantage en évidence un résultat manifestement injuste ni une iniquité choquante;
Que le Tribunal fédéral n'a donc pas lieu d'invalider l'une ou l'autre des appréciations des juges d'appel;
Qu'il s'impose au contraire de rejeter le recours;
Qu'il convient de renvoyer aux motifs des arrêts attaqués, ainsi que l'art. 109 al. 3 LTF l'autorise;
Qu'à titre de partie qui succombe, la demanderesse doit acquitter l'émolument à percevoir par le Tribunal fédéral et les dépens auxquels l'autre partie peut prétendre.
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
La demanderesse acquittera un émolument judiciaire de 2'000 francs.
3.
La demanderesse versera une indemnité de 2'500 fr. à la défenderesse, à titre de dépens.
4.
Le présent arrêt est communiqué aux parties et au Tribunal cantonal du canton de Neuchâtel.
Lausanne, le 1er juillet 2020
Au nom de la Ire Cour de droit civil
du Tribunal fédéral suisse
La présidente : Kiss
Le greffier : Thélin